Remove QFactoryInterface from style plugins
authorLars Knoll <lars.knoll@nokia.com>
Sun, 27 May 2012 05:41:02 +0000 (07:41 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 8 Jun 2012 19:34:45 +0000 (21:34 +0200)
Change-Id: I5c41f1c8b91b5e1117b9163c137de4bf5f51099c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/widgets/styles/qstylefactory.cpp
src/widgets/styles/qstyleplugin.cpp
src/widgets/styles/qstyleplugin.h

index ec29ae7..479cc1a 100644 (file)
@@ -182,7 +182,7 @@ QStyle *QStyleFactory::create(const QString& key)
     { } // Keep these here - they make the #ifdefery above work
 #if !defined(QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS)
     if (!ret)
-        ret = qLoadPlugin<QStyle, QStyleFactoryInterface>(loader(), style);
+        ret = qLoadPlugin<QStyle, QStylePlugin>(loader(), style);
 #endif
     if(ret)
         ret->setObjectName(style);
index b36ffcf..be3ea3c 100644 (file)
@@ -56,22 +56,18 @@ QT_BEGIN_NAMESPACE
     applications using the QStyleFactory class.
 
     Writing a style plugin is achieved by subclassing this base class,
-    reimplementing the pure virtual keys() and create() functions, and
-    exporting the class using the Q_EXPORT_PLUGIN2() macro. See \l
+    reimplementing the pure virtual create() function, and
+    exporting the class using the Q_PLUGIN_METADATA() macro. See \l
     {How to Create Qt Plugins} for details.
 
-    \sa QStyleFactory, QStyle
-*/
-
-/*!
-    \fn QStringList QStylePlugin::keys() const
-
-    Returns the list of style keys this plugin supports.
+    The json metadata file for the plugin needs to contain information
+    about the names of the styles the plugins supports as follows:
 
-    These keys are usually the class names of the custom styles that
-    are implemented in the plugin.
+    \code
+    { "Keys": [ "mystyle" ] }
+    \endcode
 
-    \sa create()
+    \sa QStyleFactory, QStyle
 */
 
 /*!
index 883952e..2393080 100644 (file)
@@ -52,24 +52,15 @@ QT_BEGIN_NAMESPACE
 
 class QStyle;
 
-struct Q_WIDGETS_EXPORT QStyleFactoryInterface : public QFactoryInterface
-{
-    virtual QStyle *create(const QString &key) = 0;
-};
-
 #define QStyleFactoryInterface_iid "org.qt-project.Qt.QStyleFactoryInterface"
 
-Q_DECLARE_INTERFACE(QStyleFactoryInterface, QStyleFactoryInterface_iid)
-
-class Q_WIDGETS_EXPORT QStylePlugin : public QObject, public QStyleFactoryInterface
+class Q_WIDGETS_EXPORT QStylePlugin : public QObject
 {
     Q_OBJECT
-    Q_INTERFACES(QStyleFactoryInterface:QFactoryInterface)
 public:
     explicit QStylePlugin(QObject *parent = 0);
     ~QStylePlugin();
 
-    virtual QStringList keys() const = 0;
     virtual QStyle *create(const QString &key) = 0;
 };