diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/controls/controls.pri | 2 | ||||
-rw-r--r-- | src/controls/qquickpluginutils.cpp | 66 | ||||
-rw-r--r-- | src/controls/qquickpluginutils_p.h | 66 | ||||
-rw-r--r-- | src/imports/controls/qtquickcontrolsplugin.cpp | 6 |
4 files changed, 136 insertions, 4 deletions
diff --git a/src/controls/controls.pri b/src/controls/controls.pri index a0c82fce..dc1920fb 100644 --- a/src/controls/controls.pri +++ b/src/controls/controls.pri @@ -1,5 +1,6 @@ HEADERS += \ $$PWD/qquickcolorimageprovider_p.h \ + $$PWD/qquickpluginutils_p.h \ $$PWD/qquickproxytheme_p.h \ $$PWD/qquickstyle.h \ $$PWD/qquickstyleattached_p.h \ @@ -9,6 +10,7 @@ HEADERS += \ SOURCES += \ $$PWD/qquickcolorimageprovider.cpp \ + $$PWD/qquickpluginutils.cpp \ $$PWD/qquickproxytheme.cpp \ $$PWD/qquickstyle.cpp \ $$PWD/qquickstyleattached.cpp \ diff --git a/src/controls/qquickpluginutils.cpp b/src/controls/qquickpluginutils.cpp new file mode 100644 index 00000000..d08840a9 --- /dev/null +++ b/src/controls/qquickpluginutils.cpp @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Labs Controls module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** 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 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 +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qquickpluginutils_p.h" + +#include "qquickstyle.h" + +QT_BEGIN_NAMESPACE + +/* + Returns either a file system path if Qt was built as shared libraries, + or a QRC path if Qt was built statically. +*/ +QString QQuickPluginUtils::pluginBasePath(const QQmlExtensionPlugin &plugin) +{ +#ifdef QT_STATIC + Q_UNUSED(plugin); + return QLatin1String("qrc:/qt-project.org/imports/Qt/labs/controls"); +#else + return plugin.baseUrl().toString(); +#endif +} + +/* + Returns either a file system URL if Qt was built as shared libraries, + or a QRC URL if Qt was built statically. +*/ +QUrl QQuickPluginUtils::pluginBaseUrl(const QQmlExtensionPlugin &plugin) +{ + return QUrl(pluginBasePath(plugin)); +} + +QT_END_NAMESPACE diff --git a/src/controls/qquickpluginutils_p.h b/src/controls/qquickpluginutils_p.h new file mode 100644 index 00000000..01a25ea5 --- /dev/null +++ b/src/controls/qquickpluginutils_p.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Labs Controls module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** 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 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 +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QQUICKPLUGINUTILS_H +#define QQUICKPLUGINUTILS_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtCore/qurl.h> +#include <QtCore/qstring.h> +#include <QtQml/qqmlextensionplugin.h> +#include "qtquickcontrolsglobal_p.h" + +QT_BEGIN_NAMESPACE + +namespace QQuickPluginUtils +{ + Q_QUICKCONTROLS_PRIVATE_EXPORT QString pluginBasePath(const QQmlExtensionPlugin &plugin); + Q_QUICKCONTROLS_PRIVATE_EXPORT QUrl pluginBaseUrl(const QQmlExtensionPlugin &plugin); +} + +QT_END_NAMESPACE + +#endif // QQUICKPLUGINUTILS_H diff --git a/src/imports/controls/qtquickcontrolsplugin.cpp b/src/imports/controls/qtquickcontrolsplugin.cpp index 83ceab73..076ba57b 100644 --- a/src/imports/controls/qtquickcontrolsplugin.cpp +++ b/src/imports/controls/qtquickcontrolsplugin.cpp @@ -46,6 +46,7 @@ #include <QtQuickTemplates/private/qquickcontainer_p.h> #include <QtQuickTemplates/private/qquickcontrol_p.h> #include <QtQuickTemplates/private/qquickpopup_p.h> +#include <QtQuickControls/private/qquickpluginutils_p.h> #include <QtQuickControls/private/qquickstyleselector_p.h> #include "qquickbusyindicatorring_p.h" @@ -86,10 +87,7 @@ void QtQuickControlsPlugin::registerTypes(const char *uri) qmlRegisterType<QQuickControl>(uri, 1, 0, "Control"); QQuickStyleSelector selector; - if (QFile::exists(QLatin1String(":/qt-project.org/imports/Qt/labs/controls/ApplicationWindow.qml"))) - selector.setBaseUrl(QUrl(QLatin1String("qrc:/qt-project.org/imports/Qt/labs/controls"))); - else - selector.setBaseUrl(baseUrl()); + selector.setBaseUrl(QQuickPluginUtils::pluginBaseUrl(*this)); const QString style = QQuickStyle::name(); if (!style.isEmpty()) |