From 6cbd098190ce4fc624f8f6427d9caa460109f324 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 4 Jan 2016 18:15:33 +0100 Subject: Support static builds Change-Id: I17bb9131603da912597777b2ec0b9be3894ed858 Reviewed-by: Mitch Curtis --- .gitignore | 2 ++ src/imports/calendar/qtlabscalendarplugin.cpp | 13 +++++++++++++ src/imports/controls/ComboBox.qml | 1 + src/imports/controls/material/CheckBox.qml | 1 + src/imports/controls/material/ComboBox.qml | 1 + src/imports/controls/material/ItemDelegate.qml | 1 + src/imports/controls/material/MenuItem.qml | 1 + src/imports/controls/material/RadioButton.qml | 1 + src/imports/controls/material/RangeSlider.qml | 1 + src/imports/controls/material/Slider.qml | 1 + src/imports/controls/material/Switch.qml | 1 + .../controls/material/qtlabsmaterialstyleplugin.cpp | 14 +++++++++++--- src/imports/controls/qtlabscontrolsplugin.cpp | 10 +++++++++- src/imports/controls/universal/ComboBox.qml | 1 + .../controls/universal/qtlabsuniversalstyleplugin.cpp | 10 +++++++++- src/imports/templates/qtlabstemplatesplugin.cpp | 13 +++++++++++++ tests/auto/pressandhold/data/dependencies.qml | 4 ++++ tests/auto/sanity/data/dependencies.qml | 4 ++++ tests/auto/sanity/tst_sanity.cpp | 18 +++++++++++------- tests/auto/snippets/data/dependencies.qml | 6 ++++++ tests/auto/styles/data/dependencies.qml | 7 +++++++ tests/benchmarks/creationtime/data/dependencies.qml | 7 +++++++ tests/benchmarks/creationtime/tst_creationtime.cpp | 16 ++++++++++------ tests/benchmarks/objectcount/data/dependencies.qml | 7 +++++++ tests/benchmarks/objectcount/tst_objectcount.cpp | 18 +++++++++++------- 25 files changed, 134 insertions(+), 25 deletions(-) create mode 100644 tests/auto/pressandhold/data/dependencies.qml create mode 100644 tests/auto/sanity/data/dependencies.qml create mode 100644 tests/auto/snippets/data/dependencies.qml create mode 100644 tests/auto/styles/data/dependencies.qml create mode 100644 tests/benchmarks/creationtime/data/dependencies.qml create mode 100644 tests/benchmarks/objectcount/data/dependencies.qml diff --git a/.gitignore b/.gitignore index 93854f17..99905f17 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,5 @@ app_process qtc-debugging-helper android-*.so-deployment-settings.json *.directory +*_plugin_import.cpp +*_wrapper.sh diff --git a/src/imports/calendar/qtlabscalendarplugin.cpp b/src/imports/calendar/qtlabscalendarplugin.cpp index 8d7d563d..a0b52718 100644 --- a/src/imports/calendar/qtlabscalendarplugin.cpp +++ b/src/imports/calendar/qtlabscalendarplugin.cpp @@ -42,6 +42,13 @@ #include "qquickcalendarmodel_p.h" #include "qquickcalendar_p.h" +static inline void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_calendar); +#endif +} + QT_BEGIN_NAMESPACE class QtLabsCalendarPlugin: public QQmlExtensionPlugin @@ -50,9 +57,15 @@ class QtLabsCalendarPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsCalendarPlugin(QObject *parent = Q_NULLPTR); void registerTypes(const char *uri); }; +QtLabsCalendarPlugin::QtLabsCalendarPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + static QObject *calendarSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) { Q_UNUSED(engine); diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml index e06372e7..5be26304 100644 --- a/src/imports/controls/ComboBox.qml +++ b/src/imports/controls/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T T.ComboBox { diff --git a/src/imports/controls/material/CheckBox.qml b/src/imports/controls/material/CheckBox.qml index 939d5a31..a4af00c7 100644 --- a/src/imports/controls/material/CheckBox.qml +++ b/src/imports/controls/material/CheckBox.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.CheckBox { id: control diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml index 93494a60..4b154182 100644 --- a/src/imports/controls/material/ComboBox.qml +++ b/src/imports/controls/material/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 import QtGraphicalEffects 1.0 diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml index 8cd53e88..b955c6d9 100644 --- a/src/imports/controls/material/ItemDelegate.qml +++ b/src/imports/controls/material/ItemDelegate.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.ItemDelegate { id: control diff --git a/src/imports/controls/material/MenuItem.qml b/src/imports/controls/material/MenuItem.qml index f9c69291..15ef6065 100644 --- a/src/imports/controls/material/MenuItem.qml +++ b/src/imports/controls/material/MenuItem.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.MenuItem { id: control diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml index 96605311..40761be6 100644 --- a/src/imports/controls/material/RadioButton.qml +++ b/src/imports/controls/material/RadioButton.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.RadioButton { id: control diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml index bf8c16ef..617f9ac7 100644 --- a/src/imports/controls/material/RangeSlider.qml +++ b/src/imports/controls/material/RangeSlider.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.RangeSlider { id: control diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml index 139c9151..c121c10b 100644 --- a/src/imports/controls/material/Slider.qml +++ b/src/imports/controls/material/Slider.qml @@ -37,6 +37,7 @@ import QtQuick 2.6 import Qt.labs.templates 1.0 as T import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 T.Slider { id: control diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml index d2658de6..36e2d4a8 100644 --- a/src/imports/controls/material/Switch.qml +++ b/src/imports/controls/material/Switch.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import Qt.labs.controls.material 1.0 +import Qt.labs.controls.material.impl 1.0 import Qt.labs.templates 1.0 as T import QtGraphicalEffects 1.0 diff --git a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp index 975e5db6..06c84aa1 100644 --- a/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp +++ b/src/imports/controls/material/qtlabsmaterialstyleplugin.cpp @@ -46,6 +46,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabsmaterialstyleplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls_material); +#endif } QT_BEGIN_NAMESPACE @@ -56,6 +59,7 @@ class QtLabsMaterialStylePlugin : public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsMaterialStylePlugin(QObject *parent = Q_NULLPTR); ~QtLabsMaterialStylePlugin(); void registerTypes(const char *uri) Q_DECL_OVERRIDE; void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE; @@ -64,6 +68,11 @@ private: QQuickProxyTheme *theme; }; +QtLabsMaterialStylePlugin::QtLabsMaterialStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + QtLabsMaterialStylePlugin::~QtLabsMaterialStylePlugin() { if (theme) { @@ -81,7 +90,6 @@ void QtLabsMaterialStylePlugin::registerTypes(const char *uri) void QtLabsMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri) { Q_UNUSED(engine); - Q_UNUSED(uri); QQuickStyleSelector selector; if (selector.style() == QStringLiteral("material")) { @@ -94,11 +102,11 @@ void QtLabsMaterialStylePlugin::initializeEngine(QQmlEngine *engine, const char } } - initResources(); - QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType(import, 1, 0, "ProgressRing"); qmlRegisterType(import, 1, 0, "RingAnimator"); + qmlRegisterType(QUrl(baseUrl().toString() + QStringLiteral("/Ripple.qml")), import, 1, 0, "Ripple"); + qmlRegisterType(QUrl(baseUrl().toString() + QStringLiteral("/SliderHandle.qml")), import, 1, 0, "SliderHandle"); } QT_END_NAMESPACE diff --git a/src/imports/controls/qtlabscontrolsplugin.cpp b/src/imports/controls/qtlabscontrolsplugin.cpp index b56df31a..e075898c 100644 --- a/src/imports/controls/qtlabscontrolsplugin.cpp +++ b/src/imports/controls/qtlabscontrolsplugin.cpp @@ -51,6 +51,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabscontrolsplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls); +#endif } QT_BEGIN_NAMESPACE @@ -61,10 +64,16 @@ class QtLabsControlsPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsControlsPlugin(QObject *parent = Q_NULLPTR); void registerTypes(const char *uri); void initializeEngine(QQmlEngine *engine, const char *uri); }; +QtLabsControlsPlugin::QtLabsControlsPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + void QtLabsControlsPlugin::registerTypes(const char *uri) { qmlRegisterType(uri, 1, 0, "AbstractButton"); @@ -115,7 +124,6 @@ void QtLabsControlsPlugin::initializeEngine(QQmlEngine *engine, const char *uri) { Q_UNUSED(engine); Q_UNUSED(uri); - initResources(); const QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType(import, 1, 0, "BusyRing"); diff --git a/src/imports/controls/universal/ComboBox.qml b/src/imports/controls/universal/ComboBox.qml index 4e73321e..56d7a983 100644 --- a/src/imports/controls/universal/ComboBox.qml +++ b/src/imports/controls/universal/ComboBox.qml @@ -36,6 +36,7 @@ import QtQuick 2.6 import QtQuick.Window 2.2 +import Qt.labs.controls 1.0 import Qt.labs.templates 1.0 as T import Qt.labs.controls.universal 1.0 diff --git a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp index 703da011..605c06e5 100644 --- a/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp +++ b/src/imports/controls/universal/qtlabsuniversalstyleplugin.cpp @@ -48,6 +48,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabsuniversalstyleplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls_universal); +#endif } QT_BEGIN_NAMESPACE @@ -58,6 +61,7 @@ class QtLabsUniversalStylePlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsUniversalStylePlugin(QObject *parent = Q_NULLPTR); ~QtLabsUniversalStylePlugin(); void registerTypes(const char *uri) Q_DECL_OVERRIDE; void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE; @@ -66,6 +70,11 @@ private: QQuickProxyTheme *theme; }; +QtLabsUniversalStylePlugin::QtLabsUniversalStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + QtLabsUniversalStylePlugin::~QtLabsUniversalStylePlugin() { if (theme) { @@ -93,7 +102,6 @@ void QtLabsUniversalStylePlugin::initializeEngine(QQmlEngine *engine, const char } } - initResources(); engine->addImageProvider(QStringLiteral("universal"), new QQuickUniversalImageProvider); QByteArray import = QByteArray(uri) + ".impl"; diff --git a/src/imports/templates/qtlabstemplatesplugin.cpp b/src/imports/templates/qtlabstemplatesplugin.cpp index 76698b90..4e38d1a6 100644 --- a/src/imports/templates/qtlabstemplatesplugin.cpp +++ b/src/imports/templates/qtlabstemplatesplugin.cpp @@ -74,6 +74,13 @@ #include #include +static inline void initResources() +{ +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_templates); +#endif +} + QT_BEGIN_NAMESPACE class QtLabsTemplatesPlugin: public QQmlExtensionPlugin @@ -82,9 +89,15 @@ class QtLabsTemplatesPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsTemplatesPlugin(QObject *parent = Q_NULLPTR); void registerTypes(const char *uri); }; +QtLabsTemplatesPlugin::QtLabsTemplatesPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + void QtLabsTemplatesPlugin::registerTypes(const char *uri) { qmlRegisterType(uri, 1, 0, "AbstractButton"); diff --git a/tests/auto/pressandhold/data/dependencies.qml b/tests/auto/pressandhold/data/dependencies.qml new file mode 100644 index 00000000..13690bbc --- /dev/null +++ b/tests/auto/pressandhold/data/dependencies.qml @@ -0,0 +1,4 @@ +import QtQuick 2.6 +import Qt.labs.controls 1.0 + +Control { } diff --git a/tests/auto/sanity/data/dependencies.qml b/tests/auto/sanity/data/dependencies.qml new file mode 100644 index 00000000..13690bbc --- /dev/null +++ b/tests/auto/sanity/data/dependencies.qml @@ -0,0 +1,4 @@ +import QtQuick 2.6 +import Qt.labs.controls 1.0 + +Control { } diff --git a/tests/auto/sanity/tst_sanity.cpp b/tests/auto/sanity/tst_sanity.cpp index bc114d62..7f438721 100644 --- a/tests/auto/sanity/tst_sanity.cpp +++ b/tests/auto/sanity/tst_sanity.cpp @@ -267,14 +267,18 @@ static void addTestRows(QQmlEngine *engine, const QString &targetPath, const QSt // the engine's import path. This way we can use QQmlComponent to load each QML file // for benchmarking. - QFileInfoList entries = QDir(QQC2_IMPORT_PATH + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); + QFileInfoList entries = QDir(QQC2_IMPORT_PATH "/" + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); foreach (const QFileInfo &entry, entries) { QString name = entry.baseName(); if (!skiplist.contains(name)) { foreach (const QString &importPath, engine->importPathList()) { - QString filePath = QDir(importPath + "/Qt/labs/" + targetPath).absoluteFilePath(entry.fileName()); + QString name = entry.dir().dirName() + "/" + entry.fileName(); + QString filePath = importPath + "/Qt/labs/" + targetPath + "/" + entry.fileName(); if (QFile::exists(filePath)) { - QTest::newRow(qPrintable(entry.dir().dirName() + "/" + entry.fileName())) << QUrl::fromLocalFile(filePath); + QTest::newRow(qPrintable(name)) << QUrl::fromLocalFile(filePath); + break; + } else if (QFile::exists(QQmlFile::urlToLocalFileOrQrc(filePath))) { + QTest::newRow(qPrintable(name)) << QUrl(filePath); break; } } @@ -305,10 +309,10 @@ void tst_Sanity::attachedObjects() void tst_Sanity::attachedObjects_data() { QTest::addColumn("url"); - addTestRows(&engine, "/calendar"); - addTestRows(&engine, "/controls"); - addTestRows(&engine, "/controls/material", QStringList() << "Ripple" << "SliderHandle"); - addTestRows(&engine, "/controls/universal"); + addTestRows(&engine, "calendar"); + addTestRows(&engine, "controls"); + addTestRows(&engine, "controls/material", QStringList() << "Ripple" << "SliderHandle"); + addTestRows(&engine, "controls/universal"); } QTEST_MAIN(tst_Sanity) diff --git a/tests/auto/snippets/data/dependencies.qml b/tests/auto/snippets/data/dependencies.qml new file mode 100644 index 00000000..15fa1a9a --- /dev/null +++ b/tests/auto/snippets/data/dependencies.qml @@ -0,0 +1,6 @@ +import QtQuick 2.6 +import QtQuick.Layouts 1.3 +import Qt.labs.controls 1.0 +import Qt.labs.calendar 1.0 + +Control { } diff --git a/tests/auto/styles/data/dependencies.qml b/tests/auto/styles/data/dependencies.qml new file mode 100644 index 00000000..310fbf40 --- /dev/null +++ b/tests/auto/styles/data/dependencies.qml @@ -0,0 +1,7 @@ +import QtTest 1.0 +import QtQuick 2.6 +import Qt.labs.controls 1.0 +import Qt.labs.controls.material 1.0 +import Qt.labs.controls.universal 1.0 + +Control { } diff --git a/tests/benchmarks/creationtime/data/dependencies.qml b/tests/benchmarks/creationtime/data/dependencies.qml new file mode 100644 index 00000000..65fb0414 --- /dev/null +++ b/tests/benchmarks/creationtime/data/dependencies.qml @@ -0,0 +1,7 @@ +import QtQuick 2.6 +import Qt.labs.controls 1.0 +import Qt.labs.controls.material 1.0 +import Qt.labs.controls.universal 1.0 +import Qt.labs.calendar 1.0 + +Control { } diff --git a/tests/benchmarks/creationtime/tst_creationtime.cpp b/tests/benchmarks/creationtime/tst_creationtime.cpp index 2a61b0ea..927dd17d 100644 --- a/tests/benchmarks/creationtime/tst_creationtime.cpp +++ b/tests/benchmarks/creationtime/tst_creationtime.cpp @@ -78,15 +78,19 @@ static void addTestRows(QQmlEngine *engine, const QString &targetPath, const QSt // the engine's import path. This way we can use QQmlComponent to load each QML file // for benchmarking. - QFileInfoList entries = QDir(QQC2_IMPORT_PATH + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); + QFileInfoList entries = QDir(QQC2_IMPORT_PATH "/" + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); foreach (const QFileInfo &entry, entries) { QString name = entry.baseName(); if (!skiplist.contains(name)) { foreach (const QString &importPath, engine->importPathList()) { - QString filePath = QDir(importPath + "/Qt/labs/" + targetPath).absoluteFilePath(entry.fileName()); + QString name = entry.dir().dirName() + "/" + entry.fileName(); + QString filePath = importPath + "/Qt/labs/" + targetPath + "/" + entry.fileName(); if (QFile::exists(filePath)) { QTest::newRow(qPrintable(name)) << QUrl::fromLocalFile(filePath); break; + } else if (QFile::exists(QQmlFile::urlToLocalFileOrQrc(filePath))) { + QTest::newRow(qPrintable(name)) << QUrl(filePath); + break; } } } @@ -117,7 +121,7 @@ void tst_CreationTime::controls() void tst_CreationTime::controls_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls"); + addTestRows(&engine, "controls"); } void tst_CreationTime::material() @@ -129,7 +133,7 @@ void tst_CreationTime::material() void tst_CreationTime::material_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls/material", QStringList() << "Ripple" << "SliderHandle"); + addTestRows(&engine, "controls/material", QStringList() << "Ripple" << "SliderHandle"); } void tst_CreationTime::universal() @@ -141,7 +145,7 @@ void tst_CreationTime::universal() void tst_CreationTime::universal_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls/universal"); + addTestRows(&engine, "controls/universal"); } void tst_CreationTime::calendar() @@ -153,7 +157,7 @@ void tst_CreationTime::calendar() void tst_CreationTime::calendar_data() { QTest::addColumn("url"); - addTestRows(&engine, "/calendar"); + addTestRows(&engine, "calendar"); } QTEST_MAIN(tst_CreationTime) diff --git a/tests/benchmarks/objectcount/data/dependencies.qml b/tests/benchmarks/objectcount/data/dependencies.qml new file mode 100644 index 00000000..65fb0414 --- /dev/null +++ b/tests/benchmarks/objectcount/data/dependencies.qml @@ -0,0 +1,7 @@ +import QtQuick 2.6 +import Qt.labs.controls 1.0 +import Qt.labs.controls.material 1.0 +import Qt.labs.controls.universal 1.0 +import Qt.labs.calendar 1.0 + +Control { } diff --git a/tests/benchmarks/objectcount/tst_objectcount.cpp b/tests/benchmarks/objectcount/tst_objectcount.cpp index b479b0e2..51a968d0 100644 --- a/tests/benchmarks/objectcount/tst_objectcount.cpp +++ b/tests/benchmarks/objectcount/tst_objectcount.cpp @@ -84,7 +84,7 @@ void tst_ObjectCount::init() // warmup QQmlComponent component(&engine); - component.setData("import QtQuick 2.0; import QtQuick.Controls 1.3 as C1; import Qt.labs.controls 1.0 as C2; Row { C1.Button {} C2.Button {} }", QUrl()); + component.setData("import QtQuick 2.0; import Qt.labs.controls 1.0; Item { Button {} }", QUrl()); delete component.create(); } @@ -118,15 +118,19 @@ static void addTestRows(QQmlEngine *engine, const QString &targetPath, const QSt // the engine's import path. This way we can use QQmlComponent to load each QML file // for benchmarking. - QFileInfoList entries = QDir(QQC2_IMPORT_PATH + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); + QFileInfoList entries = QDir(QQC2_IMPORT_PATH "/" + targetPath).entryInfoList(QStringList("*.qml"), QDir::Files); foreach (const QFileInfo &entry, entries) { QString name = entry.baseName(); if (!skiplist.contains(name)) { foreach (const QString &importPath, engine->importPathList()) { - QString filePath = QDir(importPath + "/Qt/labs/" + targetPath).absoluteFilePath(entry.fileName()); + QString name = entry.dir().dirName() + "/" + entry.fileName(); + QString filePath = importPath + "/Qt/labs/" + targetPath + "/" + entry.fileName(); if (QFile::exists(filePath)) { QTest::newRow(qPrintable(name)) << QUrl::fromLocalFile(filePath); break; + } else if (QFile::exists(QQmlFile::urlToLocalFileOrQrc(filePath))) { + QTest::newRow(qPrintable(name)) << QUrl(filePath); + break; } } } @@ -161,7 +165,7 @@ void tst_ObjectCount::calendar() void tst_ObjectCount::calendar_data() { QTest::addColumn("url"); - addTestRows(&engine, "/calendar"); + addTestRows(&engine, "calendar"); } void tst_ObjectCount::controls() @@ -173,7 +177,7 @@ void tst_ObjectCount::controls() void tst_ObjectCount::controls_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls"); + addTestRows(&engine, "controls"); } void tst_ObjectCount::material() @@ -185,7 +189,7 @@ void tst_ObjectCount::material() void tst_ObjectCount::material_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls/material", QStringList() << "Ripple" << "SliderHandle"); + addTestRows(&engine, "controls/material", QStringList() << "Ripple" << "SliderHandle"); } void tst_ObjectCount::universal() @@ -197,7 +201,7 @@ void tst_ObjectCount::universal() void tst_ObjectCount::universal_data() { QTest::addColumn("url"); - addTestRows(&engine, "/controls/universal"); + addTestRows(&engine, "controls/universal"); } QTEST_MAIN(tst_ObjectCount) -- cgit v1.2.3