29 #include "libqutim_version.h" 31 #include <QtCore/QtPlugin> 32 #include <QtCore/QObject> 33 #include <QtCore/QSharedDataPointer> 35 #define PLUGIN_VERSION(major, minor, secminor, patch) QUTIM_MAKE_VERSION(major, minor, secminor, patch) 56 const LocalizedString &description = LocalizedString(),
62 PluginInfo &addAuthor(const QString &ocsUsername);
63 PluginInfo &addAuthor(const LocalizedString &name, const LocalizedString &task,
64 const QString &email = QString(), const QString &web = QString());
65 PluginInfo &setName(const LocalizedString &name);
66 PluginInfo &setDescription(const LocalizedString &description);
67 PluginInfo &setIcon(const ExtensionIcon &icon);
69 Capabilities capabilities() const;
70 PluginInfo &setCapabilities(Capabilities capabilities);
72 LocalizedString name() const;
73 LocalizedString description() const;
74 quint32 version() const;
75 ExtensionIcon icon() const;
77 QString fileName()
const;
79 QSharedDataPointer<PluginInfoData> d;
81 typedef PluginInfoData Data;
86 class CommandArgumentPrivate;
98 Q_DECLARE_FLAGS(Types,
Type)
100 CommandArgument(const QString &name, const QString &desc = QString(), Types types = NoValue,
int group = -1);
105 QString name() const;
106 QString description() const;
109 void setAliases(const QStringList &aliases);
110 void addAlias(const QStringList &alias);
111 QStringList aliases() const;
114 QSharedPointer<CommandArgumentPrivate> d;
120 virtual ~CommandArgumentsHandler();
122 virtual QStringList commands() = 0;
123 virtual QList<CommandArgument> commandOptions(
const QString &name) = 0;
127 typedef void ( *ModuleInit)();
146 virtual
void init() = 0;
147 virtual
bool load() = 0;
148 virtual
bool unload() = 0;
152 const QString &email = QString(), const QString &web = QString());
153 void addAuthor(const QString &ocsUsername);
156 void setCapabilities(Capabilities capabilities);
158 const
ObjectGenerator *generator, ExtensionIcon icon = ExtensionIcon());
161 ExtensionIcon icon = ExtensionIcon())
163 template<
typename T,
typename I0>
167 template<
typename T,
typename I0,
typename I1>
173 QScopedPointer<PluginPrivate> p;
183 virtual QList<Plugin*> loadPlugins() = 0;
189 Q_DECLARE_OPERATORS_FOR_FLAGS(qutim_sdk_0_3::PluginInfo::Capabilities)
190 Q_DECLARE_OPERATORS_FOR_FLAGS(qutim_sdk_0_3::Plugin::Capabilities)
192 #ifdef QUTIM_STATIC_PLUGIN 194 # define QUTIM_DEBUG_ID_CONVERT_HELPER(A) 0x ## A ## ULL 195 # define QUTIM_DEBUG_ID_CONVERT(A) QUTIM_DEBUG_ID_CONVERT_HELPER(A) 196 # define QUTIM_PLUGIN_INSTANCE_BODY(IMPLEMENTATION) \ 198 static QT_PREPEND_NAMESPACE(QPointer)<QT_PREPEND_NAMESPACE(QObject)> _instance; \ 200 _instance = new IMPLEMENTATION; \ 201 debugAddPluginId(QUTIM_DEBUG_ID_CONVERT(QUTIM_PLUGIN_ID), &IMPLEMENTATION::staticMetaObject);\ 205 # define QUTIM_EXPORT_PLUGIN_HELPER(PluginInstance, Class) \ 206 QT_PREPEND_NAMESPACE(QObject) \ 208 QUTIM_PLUGIN_INSTANCE_BODY(Class) 209 # undef QUTIM_DEBUG_ID_CONVERT_HELPER 210 # undef QUTIM_DEBUG_ID_CONVERT 212 # define QUTIM_EXPORT_PLUGIN(Class) \ 213 QUTIM_EXPORT_PLUGIN_HELPER(QUTIM_PLUGIN_INSTANCE_BODY, Class) 214 # define QUTIM_EXPORT_PLUGIN2(Plugin,Class) \ 215 QUTIM_EXPORT_PLUGIN(Class) 217 # define QUTIM_EXPORT_STRING_HELPER(ID) #ID 218 # define QUTIM_EXPORT_STRING(ID) QUTIM_EXPORT_STRING_HELPER(ID) 219 # define QUTIM_EXPORT_PLUGIN2(Plugin,Class) \ 220 Q_EXPORT_PLUGIN2(Plugin,Class) \ 221 static const char *qutim_plugin_verification_data = \ 222 "pattern=""QUTIM_PLUGIN_VERIFICATION_DATA""\n" \ 223 "debugid=" QUTIM_EXPORT_STRING(QUTIM_PLUGIN_ID)"\n" \ 224 "libqutim=" QUTIM_VERSION_STRING"\0"; \ 225 Q_EXTERN_C Q_DECL_EXPORT \ 226 const char * Q_STANDARD_CALL qutim_plugin_query_verification_data() \ 227 { return qutim_plugin_verification_data; } 229 #define QUTIM_EXPORT_PLUGIN(Plugin) \ 230 QUTIM_EXPORT_PLUGIN2(Plugin, Plugin) Definition: objectgenerator.h:238
PersonInfo is container of information about person.
Definition: personinfo.h:51
#define LIBQUTIM_EXPORT
Definition: libqutim_global.h:45
Definition: abstractsearchrequest.h:33
Q_DECL_IMPORT void debugAddPluginId(quint64, const QMetaObject *meta)
Q_DECLARE_INTERFACE(qutim_sdk_0_3::GroupChatManager, "org.qutim.core.GroupChatManager")
virtual ~PluginFactory()
Definition: plugin.h:181
ObjectGenerator is general type for object initiatizations.
Definition: objectgenerator.h:70
Definition: extensionicon.h:38
Definition: localizedstring.h:49
Type
Definition: plugin.h:91
void addExtension(const LocalizedString &name, const LocalizedString &description, ExtensionIcon icon=ExtensionIcon())
Definition: plugin.h:168
QList< ExtensionInfo > ExtensionInfoList
Definition: extensioninfo.h:64
Capability
Definition: plugin.h:49
Q_DECL_IMPORT QList< QPointer< Plugin > > pluginsList()
ModuleManager class used to manage plug-ins and extensions/ ModuleManagerImpl inherit this class and ...
Definition: modulemanager.h:43
Capability
Definition: plugin.h:137
void addExtension(const LocalizedString &name, const LocalizedString &description, ExtensionIcon icon=ExtensionIcon())
Definition: plugin.h:164