aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2021-11-10 10:08:39 -0800
committerThiago Macieira <thiago.macieira@intel.com>2021-11-27 19:08:29 -0800
commite9de9c39bdd543e9be4cc28a059d9f2a72730f99 (patch)
treebd5b68457d5b2d98fc6a5286a2f3f1d417b841ab /src/qml/qml
parentdd75ee4fce0e254d9db9aba93d002125355d914b (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.cpp15
-rw-r--r--src/qml/qml/qqmlpluginimporter_p.h12
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);