diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-10 10:08:39 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-27 19:08:29 -0800 |
commit | e9de9c39bdd543e9be4cc28a059d9f2a72730f99 (patch) | |
tree | bd5b68457d5b2d98fc6a5286a2f3f1d417b841ab /src/qml/qml | |
parent | dd75ee4fce0e254d9db9aba93d002125355d914b (diff) |
QQmlPluginImporter: stop using QPair
At least in the API. This obeys the rule of use of QPair/std::pair:
NEVER.
There are still some more uses in the code.
Change-Id: I5e52dc5b093c43a3b678fffd16b641ab95d8eb00
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlpluginimporter.cpp | 15 | ||||
-rw-r--r-- | src/qml/qml/qqmlpluginimporter_p.h | 12 |
2 files changed, 15 insertions, 12 deletions
diff --git a/src/qml/qml/qqmlpluginimporter.cpp b/src/qml/qml/qqmlpluginimporter.cpp index c29ff76c8e..1a1eff5f7f 100644 --- a/src/qml/qml/qqmlpluginimporter.cpp +++ b/src/qml/qml/qqmlpluginimporter.cpp @@ -498,8 +498,7 @@ QString QQmlPluginImporter::resolvePlugin(const QString &qmldirPluginPath, const \a versionUris, which is a list of all possible versioned URI combinations - see versionUriList() above. */ -bool QQmlPluginImporter::populatePluginPairVector( - QVector<StaticPluginPair> &result, const QStringList &versionUris) +bool QQmlPluginImporter::populatePluginDataVector(QVector<StaticPluginData> &result, const QStringList &versionUris) { static const QVector<QStaticPlugin> plugins = makePlugins(); for (const QStaticPlugin &plugin : plugins) { @@ -526,7 +525,7 @@ bool QQmlPluginImporter::populatePluginPairVector( // A plugin can be set up to handle multiple URIs, so go through the list: for (const QJsonValueRef metaTagUri : metaTagsUriList) { if (versionUris.contains(metaTagUri.toString())) { - result.append(qMakePair(plugin, metaTagsUriList)); + result.append({ plugin, metaTagsUriList }); break; } } @@ -581,16 +580,16 @@ QTypeRevision QQmlPluginImporter::importPlugins() { // If a module has several plugins, they must all have the same version. Start by // populating pluginPairs with relevant plugins to cut the list short early on: const QStringList versionUris = versionUriList(uri, importVersion); - QVector<StaticPluginPair> pluginPairs; - if (!populatePluginPairVector(pluginPairs, versionUris)) + QVector<StaticPluginData> pluginPairs; + if (!populatePluginDataVector(pluginPairs, versionUris)) return QTypeRevision(); for (const QString &versionUri : versionUris) { - for (const StaticPluginPair &pair : qAsConst(pluginPairs)) { - for (const QJsonValueRef metaTagUri : pair.second) { + for (const StaticPluginData &pair : qAsConst(pluginPairs)) { + for (const QJsonValueRef metaTagUri : pair.uriList) { if (versionUri == metaTagUri.toString()) { staticPluginsFound++; - QObject *instance = pair.first.instance(); + QObject *instance = pair.plugin.instance(); importVersion = importStaticPlugin( instance, canUseUris ? uri : QString::asprintf("%p", instance)); diff --git a/src/qml/qml/qqmlpluginimporter_p.h b/src/qml/qml/qqmlpluginimporter_p.h index bf9f22d397..524a072c8e 100644 --- a/src/qml/qml/qqmlpluginimporter_p.h +++ b/src/qml/qml/qqmlpluginimporter_p.h @@ -55,8 +55,9 @@ #include <private/qqmlimport_p.h> #include <private/qqmltypeloaderqmldircontent_p.h> -#include <QtCore/qversionnumber.h> +#include <QtCore/qjsonarray.h> #include <QtCore/qplugin.h> +#include <QtCore/qversionnumber.h> QT_BEGIN_NAMESPACE @@ -65,8 +66,6 @@ class QQmlPluginImporter Q_DISABLE_COPY_MOVE(QQmlPluginImporter) public: - using StaticPluginPair = QPair<QStaticPlugin, QJsonArray>; - QQmlPluginImporter(const QString &uri, QTypeRevision version, QQmlImportDatabase *database, const QQmlTypeLoaderQmldirContent *qmldir, QQmlTypeLoader *typeLoader, QList<QQmlError> *errors) @@ -90,8 +89,13 @@ public: static QStringList plugins(); private: + struct StaticPluginData { + QStaticPlugin plugin; + QJsonArray uriList; + }; + static QString truncateToDirectory(const QString &qmldirFilePath); - bool populatePluginPairVector(QVector<StaticPluginPair> &result, + bool populatePluginDataVector(QVector<StaticPluginData> &result, const QStringList &versionUris); QString resolvePlugin(const QString &qmldirPluginPath, const QString &baseName); |