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