diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-04-08 23:43:12 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-04-08 23:43:12 +0200 |
commit | 34fbd06f1b678375817badf33e87a43705c8d8f7 (patch) | |
tree | 78e2980e23950e2bec9869c3ea54045399bbebf3 /src/dialogs | |
parent | 0b18f262816a165a900da6b764261c5c0553fa1e (diff) | |
parent | 4b77b044b3e0a27f9f7501e6a78121afc270619c (diff) | |
download | qtquickcontrols-34fbd06f1b678375817badf33e87a43705c8d8f7.tar.gz |
Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I8e90cb522fc01dd647ba0a66f2192d0713cd378d
Diffstat (limited to 'src/dialogs')
-rw-r--r-- | src/dialogs/Private/dialogsprivateplugin.cpp | 8 | ||||
-rw-r--r-- | src/dialogs/dialogs.pro | 49 | ||||
-rw-r--r-- | src/dialogs/images/checkers.png | bin | 149 -> 80 bytes | |||
-rw-r--r-- | src/dialogs/images/window_border.png | bin | 588 -> 371 bytes | |||
-rw-r--r-- | src/dialogs/plugin.cpp | 36 | ||||
-rw-r--r-- | src/dialogs/qmldir | 1 |
6 files changed, 65 insertions, 29 deletions
diff --git a/src/dialogs/Private/dialogsprivateplugin.cpp b/src/dialogs/Private/dialogsprivateplugin.cpp index 769dc892..e9b39e05 100644 --- a/src/dialogs/Private/dialogsprivateplugin.cpp +++ b/src/dialogs/Private/dialogsprivateplugin.cpp @@ -42,6 +42,13 @@ #include "qquickwritingsystemlistmodel_p.h" #include "qquickfontlistmodel_p.h" +static void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_QtQuick_Dialogs_Private); +#endif +} + QT_BEGIN_NAMESPACE class QtQuick2DialogsPrivatePlugin : public QQmlExtensionPlugin @@ -50,6 +57,7 @@ class QtQuick2DialogsPrivatePlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtQuick2DialogsPrivatePlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); } virtual void registerTypes(const char *uri) { Q_ASSERT(QLatin1String(uri) == QLatin1String("QtQuick.Dialogs.Private")); diff --git a/src/dialogs/dialogs.pro b/src/dialogs/dialogs.pro index 9daaa6e6..f19283f2 100644 --- a/src/dialogs/dialogs.pro +++ b/src/dialogs/dialogs.pro @@ -80,29 +80,32 @@ ios|android|blackberry|winrt { QT += quick-private gui gui-private core core-private qml qml-private -# Create the resource file -GENERATED_RESOURCE_FILE = $$OUT_PWD/dialogs.qrc - -RESOURCE_CONTENT = \ - "<RCC>" \ - "<qresource prefix=\"/QtQuick/Dialogs\">" - -for(resourcefile, DIALOGS_QML_FILES) { - resourcefileabsolutepath = $$absolute_path($$resourcefile) - relativepath_in = $$relative_path($$resourcefileabsolutepath, $$_PRO_FILE_PWD_) - relativepath_out = $$relative_path($$resourcefileabsolutepath, $$OUT_PWD) - RESOURCE_CONTENT += "<file alias=\"$$relativepath_in\">$$relativepath_out</file>" +!static { + # Create the resource file + GENERATED_RESOURCE_FILE = $$OUT_PWD/dialogs.qrc + + RESOURCE_CONTENT = \ + "<RCC>" \ + "<qresource prefix=\"/QtQuick/Dialogs\">" + + for(resourcefile, DIALOGS_QML_FILES) { + resourcefileabsolutepath = $$absolute_path($$resourcefile) + relativepath_in = $$relative_path($$resourcefileabsolutepath, $$_PRO_FILE_PWD_) + relativepath_out = $$relative_path($$resourcefileabsolutepath, $$OUT_PWD) + RESOURCE_CONTENT += "<file alias=\"$$relativepath_in\">$$relativepath_out</file>" + } + + RESOURCE_CONTENT += \ + "</qresource>" \ + "</RCC>" + + write_file($$GENERATED_RESOURCE_FILE, RESOURCE_CONTENT)|error("Aborting.") + + RESOURCES += $$GENERATED_RESOURCE_FILE + # In case of a debug build, deploy the QML files too + !qtquickcompiler:CONFIG(debug, debug|release): QML_FILES += $$DIALOGS_QML_FILES +} else { + QML_FILES += $$DIALOGS_QML_FILES } -RESOURCE_CONTENT += \ - "</qresource>" \ - "</RCC>" - -write_file($$GENERATED_RESOURCE_FILE, RESOURCE_CONTENT)|error("Aborting.") - -RESOURCES += $$GENERATED_RESOURCE_FILE - -# In case of a debug build, deploy the QML files too -!qtquickcompiler:CONFIG(debug, debug|release): QML_FILES += $$DIALOGS_QML_FILES - load(qml_plugin) diff --git a/src/dialogs/images/checkers.png b/src/dialogs/images/checkers.png Binary files differindex 458d33de..72cb9f03 100644 --- a/src/dialogs/images/checkers.png +++ b/src/dialogs/images/checkers.png diff --git a/src/dialogs/images/window_border.png b/src/dialogs/images/window_border.png Binary files differindex 431af854..23c011d0 100644 --- a/src/dialogs/images/window_border.png +++ b/src/dialogs/images/window_border.png diff --git a/src/dialogs/plugin.cpp b/src/dialogs/plugin.cpp index e6ce5a6f..1ab6b581 100644 --- a/src/dialogs/plugin.cpp +++ b/src/dialogs/plugin.cpp @@ -64,7 +64,11 @@ Q_LOGGING_CATEGORY(lcRegistration, "qt.quick.dialogs.registration") static void initResources() { +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_QtQuick_Dialogs); +#else Q_INIT_RESOURCE(dialogs); +#endif } QT_BEGIN_NAMESPACE @@ -90,7 +94,7 @@ class QtQuick2DialogsPlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: - QtQuick2DialogsPlugin() : QQmlExtensionPlugin(), m_useResources(true) { } + QtQuick2DialogsPlugin() : QQmlExtensionPlugin(), m_useResources(true) { initResources(); } virtual void initializeEngine(QQmlEngine *engine, const char * uri) { qCDebug(lcRegistration) << uri << m_decorationComponentUrl; @@ -99,16 +103,18 @@ public: } virtual void registerTypes(const char *uri) { - initResources(); - Q_ASSERT(QLatin1String(uri) == QLatin1String("QtQuick.Dialogs")); bool hasTopLevelWindows = QGuiApplicationPrivate::platformIntegration()-> hasCapability(QPlatformIntegration::MultipleWindows); qCDebug(lcRegistration) << uri << "can use top-level windows?" << hasTopLevelWindows; QDir qmlDir(baseUrl().toLocalFile()); QDir widgetsDir(baseUrl().toLocalFile()); +#ifndef QT_STATIC widgetsDir.cd("../PrivateWidgets"); - +#endif +#ifdef QT_STATIC + m_useResources = false; +#else #ifndef ALWAYS_LOAD_FROM_RESOURCES // If at least one file was actually installed, then use installed qml files instead of resources. // This makes debugging and incremental development easier, whereas the "normal" installation @@ -116,10 +122,14 @@ public: if (qmlDir.exists(QString("DefaultFileDialog.qml"))) m_useResources = false; #endif +#endif m_decorationComponentUrl = m_useResources ? QUrl("qrc:/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml") : +#ifndef QT_STATIC QUrl::fromLocalFile(qmlDir.filePath(QString("qml/DefaultWindowDecoration.qml"))); - +#else + QUrl("qrc:/qt-project.org/imports/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml"); +#endif // Prefer the QPA dialog helpers if the platform supports them. // Else if there is a QWidget-based implementation, check whether it's // possible to instantiate it from Qt Quick. @@ -170,7 +180,11 @@ public: qmlRegisterType<QQuickDialog>(uri, 1, 2, "AbstractDialog"); // implementation wrapper QUrl dialogQmlPath = m_useResources ? QUrl("qrc:/QtQuick/Dialogs/DefaultDialogWrapper.qml") : +#ifndef QT_STATIC QUrl::fromLocalFile(qmlDir.filePath("DefaultDialogWrapper.qml")); +#else + QUrl("qrc:/qt-project.org/imports/QtQuick/Dialogs/DefaultDialogWrapper.qml"); +#endif qCDebug(lcRegistration) << " registering" << dialogQmlPath << "as Dialog"; qmlRegisterType(dialogQmlPath, uri, 1, 2, "Dialog"); } @@ -217,7 +231,12 @@ protected: QCoreApplication::instance()->inherits("QApplication")) { QUrl dialogQmlPath = m_useResources ? QUrl(QString("qrc:/QtQuick/Dialogs/Widget%1.qml").arg(qmlName)) : - QUrl::fromLocalFile(qmlDir.filePath(QString("Widget%1.qml").arg(qmlName))); +#ifndef QT_STATIC + QUrl::fromLocalFile(qmlDir.filePath(QString("Widget%1.qml").arg(qmlName))); +#else + QUrl(QString("qrc:/qt-project.org/imports/QtQuick/Dialogs/Widget%1.qml").arg(qmlName)); + Q_UNUSED(qmlDir); +#endif if (qmlRegisterType(dialogQmlPath, uri, versionMajor, versionMinor, qmlName) >= 0) { qCDebug(lcRegistration) << " registering" << qmlName << " as " << dialogQmlPath; return true; @@ -235,7 +254,12 @@ protected: qmlRegisterType<WrapperType>(uri, versionMajor, versionMinor, abstractTypeName); QUrl dialogQmlPath = m_useResources ? QUrl(QString("qrc:/QtQuick/Dialogs/Default%1.qml").arg(qmlName)) : +#ifndef QT_STATIC QUrl::fromLocalFile(qmlDir.filePath(QString("Default%1.qml").arg(qmlName))); +#else + QUrl(QString("qrc:/qt-project.org/imports/QtQuick/Dialogs/Default%1.qml").arg(qmlName)); + Q_UNUSED(qmlDir); +#endif qCDebug(lcRegistration) << " registering" << qmlName << " as " << dialogQmlPath; qmlRegisterType(dialogQmlPath, uri, versionMajor, versionMinor, qmlName); } diff --git a/src/dialogs/qmldir b/src/dialogs/qmldir index 03186563..e94f11dd 100644 --- a/src/dialogs/qmldir +++ b/src/dialogs/qmldir @@ -6,3 +6,4 @@ depends Qt.labs.folderlistmodel 1.0 depends Qt.labs.settings 1.0 depends QtQuick.Dialogs.Private 1.0 depends QtQuick.Controls 1.3 +depends QtQuick.PrivateWidgets 1.1 |