Update of the plugin documentation
authorLars Knoll <lars.knoll@nokia.com>
Sun, 27 May 2012 01:04:44 +0000 (03:04 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 6 Jun 2012 00:02:46 +0000 (02:02 +0200)
Moved the plugin overview from qtdoc to qtbase. Updated
the docs to describe the new plugin mechanism.

Change-Id: I1b92d5099aeaa3a166c1f7698176d811d47c3392
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/doc/snippets/code/doc_src_qplugin.cpp
src/corelib/plugin/qplugin.qdoc

index 1577b2f..e07d888 100644 (file)
@@ -49,7 +49,10 @@ Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
 
 
 //! [1]
-Q_EXPORT_PLUGIN2(pnp_extrafilters, ExtraFiltersPlugin)
+class MyInstance : public QObject
+{
+    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
+};
 //! [1]
 
 
index 001b0d5..f671a5f 100644 (file)
 
 /*!
     \headerfile <QtPlugin>
-    \title Macros for Defining Plugins
+    \title Defining Plugins
+    \ingroup plugins
 
-    \brief The <QtPlugin> header files defines macros for defining plugins.
+    \brief The <QtPlugin> header file defines macros for defining plugins.
 
     \sa {How to Create Qt Plugins}
 */
     is not inside a namespace though. For example:
     \snippet code/doc_src_qplugin.cpp 0
 
-    \sa Q_INTERFACES(), Q_EXPORT_PLUGIN2(), {How to Create Qt Plugins}
+    \sa Q_INTERFACES(), {How to Create Qt Plugins}
 */
 
 /*!
-    \macro Q_EXPORT_PLUGIN(ClassName)
+    \macro Q_PLUGIN_METADATA(...)
     \relates <QtPlugin>
-    \obsolete
+    \since 5.0
 
-    Use Q_EXPORT_PLUGIN2() instead. This macro is equivalent to
-    Q_EXPORT_PLUGIN2(\a ClassName, \a ClassName).
-*/
-
-/*!
-    \macro Q_EXPORT_PLUGIN2(PluginName, ClassName)
-    \relates <QtPlugin>
-    \since 4.1
-    \keyword Q_EXPORT_PLUGIN2
+    This macro is being used to declare meta data that is part of a plugin
+    that instantiates this object.
 
-    This macro exports the plugin class \a ClassName for the plugin specified
-    by \a PluginName. The value of \a PluginName should correspond to the
-    \l{qmake Variable Reference#TARGET}{TARGET} specified in the plugin's
-    project file.
+    The macro needs to declare the IID of the interface implemented through
+    the object, and reference a file containing the meta data for the plugin.
 
     There should be exactly one occurrence of this macro in the source code
-    for a Qt plugin, and it should be used where the implementation is written
-    rather than in a header file.
+    for a Qt plugin.
 
     Example:
 
 
     \sa {Static Plugins}, {How to Create Qt Plugins}, {Using qmake}
 */
-
-/*!
-    \macro Q_EXPORT_STATIC_PLUGIN(ClassName)
-    \relates <QtPlugin>
-    \internal
-*/