diff options
Diffstat (limited to 'src/corelib/plugin/qfactoryloader.cpp')
-rw-r--r-- | src/corelib/plugin/qfactoryloader.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index bd5032dcc0..cc5aa1394a 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. ** @@ -10,9 +10,9 @@ ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser @@ -23,8 +23,8 @@ ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ @@ -54,6 +54,16 @@ Q_GLOBAL_STATIC(QList<QFactoryLoader *>, qt_factory_loaders) Q_GLOBAL_STATIC_WITH_ARGS(QMutex, qt_factoryloader_mutex, (QMutex::Recursive)) +namespace { + +// avoid duplicate QStringLiteral data: +inline QString iidKeyLiteral() { return QStringLiteral("IID"); } +inline QString versionKeyLiteral() { return QStringLiteral("version"); } +inline QString metaDataKeyLiteral() { return QStringLiteral("MetaData"); } +inline QString keysKeyLiteral() { return QStringLiteral("Keys"); } + +} + class QFactoryLoaderPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QFactoryLoader) @@ -162,12 +172,12 @@ void QFactoryLoader::update() QStringList keys; bool metaDataOk = false; - QString iid = library->metaData.value(QLatin1String("IID")).toString(); + QString iid = library->metaData.value(iidKeyLiteral()).toString(); if (iid == QLatin1String(d->iid.constData(), d->iid.size())) { - QJsonObject object = library->metaData.value(QLatin1String("MetaData")).toObject(); + QJsonObject object = library->metaData.value(metaDataKeyLiteral()).toObject(); metaDataOk = true; - QJsonArray k = object.value(QLatin1String("Keys")).toArray(); + QJsonArray k = object.value(keysKeyLiteral()).toArray(); for (int i = 0; i < k.size(); ++i) keys += d->cs ? k.at(i).toString() : k.at(i).toString().toLower(); } @@ -190,9 +200,9 @@ void QFactoryLoader::update() QLibraryPrivate *previous = d->keyMap.value(key); int prev_qt_version = 0; if (previous) { - prev_qt_version = (int)previous->metaData.value(QLatin1String("version")).toDouble(); + prev_qt_version = (int)previous->metaData.value(versionKeyLiteral()).toDouble(); } - int qt_version = (int)library->metaData.value(QLatin1String("version")).toDouble(); + int qt_version = (int)library->metaData.value(versionKeyLiteral()).toDouble(); if (!previous || (prev_qt_version > QT_VERSION && qt_version <= QT_VERSION)) { d->keyMap[key] = library; ++keyUsageCount; @@ -229,7 +239,7 @@ QList<QJsonObject> QFactoryLoader::metaData() const foreach (const QStaticPlugin &plugin, QPluginLoader::staticPlugins()) { const QJsonObject object = plugin.metaData(); - if (object.value(QLatin1String("IID")) != QLatin1String(d->iid.constData(), d->iid.size())) + if (object.value(iidKeyLiteral()) != QLatin1String(d->iid.constData(), d->iid.size())) continue; metaData.append(object); } @@ -261,7 +271,7 @@ QObject *QFactoryLoader::instance(int index) const QVector<QStaticPlugin> staticPlugins = QPluginLoader::staticPlugins(); for (int i = 0; i < staticPlugins.count(); ++i) { const QJsonObject object = staticPlugins.at(i).metaData(); - if (object.value(QLatin1String("IID")) != QLatin1String(d->iid.constData(), d->iid.size())) + if (object.value(iidKeyLiteral()) != QLatin1String(d->iid.constData(), d->iid.size())) continue; if (index == 0) @@ -290,10 +300,6 @@ void QFactoryLoader::refreshAll() } } -// avoid duplicate QStringLiteral data: -static inline QString metaDataKeyLiteral() { return QStringLiteral("MetaData"); } -static inline QString keysKeyLiteral() { return QStringLiteral("Keys"); } - QMultiMap<int, QString> QFactoryLoader::keyMap() const { QMultiMap<int, QString> result; |