22 class IProtocolPlugin;
238Q_DECLARE_OPERATORS_FOR_FLAGS (
LC::Azoth::
IProtocol::ProtocolFeatures)
240 "org.Deviant.LeechCraft.Azoth.
IProtocol/1.0")
virtual QList< QWidget * > GetAccountRegistrationWidgets(AccountAddOptions options)=0
Returns the widgets used for account addition.
virtual QIcon GetProtocolIcon() const =0
Returns the icon of this protocol.
virtual void RemoveAccount(QObject *account)=0
Removes the given account.
virtual void RegisterAccount(const QString &name, const QList< QWidget * > &widgets)=0
Adds an account with the given name and widgets.
virtual void accountRemoved(QObject *account)=0
Notifies about an account having been removed.
virtual QByteArray GetProtocolID() const =0
Returns the protocol ID, which must be unique among all the protocols.
virtual QString GetProtocolName() const =0
Returns the human-readable name of this protocol, like "Jabber" or "ICQ".
virtual QObject * GetQObject()=0
Returns the protocol object as a QObject.
virtual void accountAdded(QObject *account)=0
Notifies about new account.
virtual QObject * GetParentProtocolPlugin() const =0
Returns the pointer to the parent protocol plugin that this protocol belongs to.
virtual QList< QObject * > GetRegisteredAccounts()=0
Returns the accounts within this protocol.
virtual ProtocolFeatures GetFeatures() const =0
@ PFSupportsInBandRegistration
@ PFNoAccountRegistration