diff options
author | Richard Moe Gustavsen <richard.gustavsen@digia.com> | 2013-08-22 13:16:34 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-04 09:38:35 +0200 |
commit | 8b7a8efe66afecde87b45adf1c6e850f63670f86 (patch) | |
tree | e0396d4777bc53c912a29b84baa6d47ad75d1c01 /src/corelib/plugin/qfactoryloader.cpp | |
parent | 500deb9a08242d177fdad9a8b5a57b560e754db1 (diff) |
QPluginLoader: add 'staticPlugins' function
Currently there is no API to extract the meta data
from static plugins. This is needed in e.g QtDeclarative
for loading static module plugins.
This patch moves the 'staticPlugins' function from
QLibraryPrivate into QPluginLoader, and makes it public.
As such, we now also export QStaticPlugin.
Since an application developer cannot do much with raw
metadata, we add a new function
QStaticPlugin::metaData() that returns the QJsonObject
for the plugin. The old metaData function is
renamed 'rawMetaData'.
Change-Id: Idb0bf9ad8ebb13340565512e1998b26e762a357e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/plugin/qfactoryloader.cpp')
-rw-r--r-- | src/corelib/plugin/qfactoryloader.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 3c8e00519b..a3e809a266 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -235,13 +235,10 @@ QList<QJsonObject> QFactoryLoader::metaData() const for (int i = 0; i < d->libraryList.size(); ++i) metaData.append(d->libraryList.at(i)->metaData); - QVector<QStaticPlugin> staticPlugins = QLibraryPrivate::staticPlugins(); - for (int i = 0; i < staticPlugins.count(); ++i) { - const char *rawMetaData = staticPlugins.at(i).metaData(); - QJsonObject object = QLibraryPrivate::fromRawMetaData(rawMetaData).object(); + foreach (const QStaticPlugin &plugin, QPluginLoader::staticPlugins()) { + const QJsonObject object = plugin.metaData(); if (object.value(QLatin1String("IID")) != QLatin1String(d->iid.constData(), d->iid.size())) continue; - metaData.append(object); } return metaData; @@ -269,10 +266,9 @@ QObject *QFactoryLoader::instance(int index) const } index -= d->libraryList.size(); - QVector<QStaticPlugin> staticPlugins = QLibraryPrivate::staticPlugins(); + QVector<QStaticPlugin> staticPlugins = QPluginLoader::staticPlugins(); for (int i = 0; i < staticPlugins.count(); ++i) { - const char *rawMetaData = staticPlugins.at(i).metaData(); - QJsonObject object = QLibraryPrivate::fromRawMetaData(rawMetaData).object(); + const QJsonObject object = staticPlugins.at(i).metaData(); if (object.value(QLatin1String("IID")) != QLatin1String(d->iid.constData(), d->iid.size())) continue; |