diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-05-31 10:38:07 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-06-23 09:35:57 +0200 |
commit | 6aad465f080e4b0c5f7d1b0944bdd864e19d5783 (patch) | |
tree | 25a069579edd571e5ed7ebb7e9342b217fa4cc54 | |
parent | 6a0ab2e8aa0bcc2487ae895033b493a9e4d7704b (diff) | |
download | qtdeclarative-6aad465f080e4b0c5f7d1b0944bdd864e19d5783.tar.gz |
Introduce a sane resource path to qt_add_qml_module
Since "/qt" is reserved, we can use "/qt/qml" as the default path for
user QML modules.
[ChangeLog][QtQml] The AUTO_RESOURCE_PREFIX option was added to
qt_add_qml_module(). It places your QML modules in the otherwise
reserved resource directory /qt/qml. This directory is also added to the
default QML import path. By using it you don't have to specify custom
import paths anymore. Specifying neither AUTO_RESOURCE_PREFIX nor an
explicit RESOURCE_PREFIX will generate a warning now because such QML
modules are likely invisible in the resource file system.
Fixes: QTBUG-95145
Fixes: QTBUG-103452
Change-Id: Ie27dec5cbf34ea06258d55c659d202cdd61e54b2
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
27 files changed, 267 insertions, 201 deletions
diff --git a/src/qml/Qt6QmlMacros.cmake b/src/qml/Qt6QmlMacros.cmake index 7fe18a86a2..b6f95659a4 100644 --- a/src/qml/Qt6QmlMacros.cmake +++ b/src/qml/Qt6QmlMacros.cmake @@ -16,6 +16,7 @@ function(qt6_add_qml_module target) SHARED DESIGNER_SUPPORTED FOLLOW_FOREIGN_VERSIONING + AUTO_RESOURCE_PREFIX NO_PLUGIN NO_PLUGIN_OPTIONAL NO_CREATE_PLUGIN_TARGET @@ -440,7 +441,31 @@ function(qt6_add_qml_module target) endif() endforeach() - _qt_internal_canonicalize_resource_path("${arg_RESOURCE_PREFIX}" arg_RESOURCE_PREFIX) + if(arg_AUTO_RESOURCE_PREFIX) + if(arg_RESOURCE_PREFIX) + message(FATAL_ERROR + "Both RESOURCE_PREFIX and AUTO_RESOURCE_PREFIX are specified for ${target}. " + "You can only have one." + ) + else() + set(arg_RESOURCE_PREFIX "/qt/qml") + endif() + elseif(arg_RESOURCE_PREFIX) + _qt_internal_canonicalize_resource_path("${arg_RESOURCE_PREFIX}" arg_RESOURCE_PREFIX) + elseif(arg_NO_RESOURCE_TARGET_PATH) + # Suppress the warning if NO_RESOURCE_TARGET_PATH is given. + # In that case, we assume the user knows what they want. + set(arg_RESOURCE_PREFIX "/") + else() + message(WARNING + "Neither RESOURCE_PREFIX nor AUTO_RESOURCE_PREFIX are specified for ${target}. " + "The resource root directory, ':/', is used as prefix. If this is what you want, " + "specify '/' as RESOURCE_PREFIX. The recommended resource directory to be used as " + "prefix is ':/qt/qml/'. Specify AUTO_RESOURCE_PREFIX to use it." + ) + set(arg_RESOURCE_PREFIX "/") + endif() + if(arg_NO_RESOURCE_TARGET_PATH) set(qt_qml_module_resource_prefix "${arg_RESOURCE_PREFIX}") else() diff --git a/src/qml/doc/snippets/qmltc/CMakeLists.txt b/src/qml/doc/snippets/qmltc/CMakeLists.txt index aa5fa8e230..30c1e0db0e 100644 --- a/src/qml/doc/snippets/qmltc/CMakeLists.txt +++ b/src/qml/doc/snippets/qmltc/CMakeLists.txt @@ -44,6 +44,7 @@ target_compile_definitions(${application_name} PRIVATE qt6_add_qml_module(${application_name} VERSION 1.0 URI QmltcExample + AUTO_RESOURCE_PREFIX QML_FILES ${application_qml_files} # Compile qml files (listed in QML_FILES) to C++ using qmltc and add these diff --git a/src/qml/doc/snippets/qmltc/tst_qmltc_examples.cpp b/src/qml/doc/snippets/qmltc/tst_qmltc_examples.cpp index c933adfcaf..e74a9eec84 100644 --- a/src/qml/doc/snippets/qmltc/tst_qmltc_examples.cpp +++ b/src/qml/doc/snippets/qmltc/tst_qmltc_examples.cpp @@ -81,7 +81,8 @@ void tst_qmltc_examples::appComponent() QQuickWindow window; QQmlComponent component(&e); - component.loadUrl(QUrl(QStringLiteral("qrc:/QmltcExample/myApp.qml"))); + component.loadUrl( + QUrl(QStringLiteral("qrc:/qt/qml/QmltcExample/myApp.qml"))); //! [qqmlcomponent-app-code-0] QVERIFY2(!component.isError(), qPrintable(component.errorString())); diff --git a/src/qml/doc/src/cmake/qt_add_qml_module.qdoc b/src/qml/doc/src/cmake/qt_add_qml_module.qdoc index 8b3fdb29f8..375daa0b94 100644 --- a/src/qml/doc/src/cmake/qt_add_qml_module.qdoc +++ b/src/qml/doc/src/cmake/qt_add_qml_module.qdoc @@ -23,6 +23,7 @@ qt_add_qml_module( [STATIC | SHARED] [PLUGIN_TARGET plugin_target] [OUTPUT_DIRECTORY output_dir] + [AUTO_RESOURCE_PREFIX] [RESOURCE_PREFIX resource_prefix] [CLASS_NAME class_name] [TYPEINFO typeinfo] @@ -200,6 +201,13 @@ The resource path of each file is determined by its path relative to the current source directory (\c CMAKE_CURRENT_SOURCE_DIR). This resource path is appended to a prefix formed by concatenating the \l{RESOURCE_PREFIX} and the target path (but see \l NO_RESOURCE_TARGET_PATH for an exception to this). + +Since Qt 6.4, you can specify \l{AUTO_RESOURCE_PREFIX}. If +\l{AUTO_RESOURCE_PREFIX} is specified, \l{RESOURCE_PREFIX} is set to +\c{/qt/qml}. This way, your modules are automatically +placed in the default import path of the QML engine. If you don't do this, you +should set up a \l{QML Import Path} to point to your resource prefix. + Ordinarily, the project should aim to place \c{.qml} files in the same relative location as they would have in the resources. If the \c{.qml} file is in a different relative directory to its desired resource path, its diff --git a/src/qml/doc/src/qmllanguageref/syntax/imports.qdoc b/src/qml/doc/src/qmllanguageref/syntax/imports.qdoc index a6158b14af..8211d90037 100644 --- a/src/qml/doc/src/qmllanguageref/syntax/imports.qdoc +++ b/src/qml/doc/src/qmllanguageref/syntax/imports.qdoc @@ -277,6 +277,7 @@ default locations to be searched by the engine. By default, this list contains: \li The location specified by QLibraryInfo::QmlImportsPath \li Paths specified by the \c QML_IMPORT_PATH environment variable \li The qrc:/qt-project.org/imports path inside the resources. +\li The qrc:/qt/qml path inside the resources (since Qt 6.4). \endlist Additional import paths can be added through QQmlEngine::addImportPath() or the diff --git a/src/qml/doc/src/qtqml-writing-a-module.qdoc b/src/qml/doc/src/qtqml-writing-a-module.qdoc index e2fde8c9ed..6429afafd5 100644 --- a/src/qml/doc/src/qtqml-writing-a-module.qdoc +++ b/src/qml/doc/src/qtqml-writing-a-module.qdoc @@ -204,32 +204,37 @@ qt_add_qml_module( \section1 Eliminating Run Time File System Access If all QML modules are always loaded from the resource -file system, you can deploy the application as a single binary. Let's first -consider the simple case: +file system, you can deploy the application as a single binary. + +Generally, you should pass the \c AUTO_RESOURCE_PREFIX without arguments to +\l{qt_add_qml_module}. This way, your modules are placed in +\c{:/qt/qml/} in the resource file system. Since Qt 6.4, +this is part of the default \l{QML Import Path}, but not used by Qt itself. For +modules to be used within your application, this is the right place. + +If you have instead specified a custom \c RESOURCE_PREFIX, you have to add the +custom resource prefix to the \l{QML Import Path}. You can also add multiple +resource prefixes: \badcode QQmlEngine qmlEngine; -qmlEngine.addImportPath(QStringLiteral(":/")); +qmlEngine.addImportPath(QStringLiteral(":/my/resource/prefix")); +qmlEngine.addImportPath(QStringLiteral(":/other/resource/prefix")); // Use qmlEngine to load the main.qml file. \endcode -\note ":/" is used for simplicity here. See \l {Custom Directory Layouts} -for more complex cases. - -If all the modules are linked into the application and if you're following -the default resource directory structure, do not add any further import paths as -those might override the one you added. +This might be necessary when using third party libraries to avoid module name +conflicts. Using a custom resource prefix is discouraged in all other cases. -If you have specified a custom \c RESOURCE_PREFIX, you have to add the custom -resource prefix to the import path instead. You can also add multiple resource -prefixes. +The path \c :/qt-project.org/imports/ is also part of the default \l{QML Import +Path}. For modules that are heavily re-used across different projects or Qt +versions, \c :/qt-project.org/imports/ is acceptable as resource prefix. Qt's +own QML modules are placed there, though. You have to be careful not to +overwrite them. -The path \c :/qt-project.org/imports/ is part of the default QML import path. If -you use it, you don't have to specially add it. Qt's own QML modules are placed -there, though. You have to be careful not to overwrite them. For modules that are -heavily re-used across different projects \c :/qt-project.org/imports/ is -acceptable. By using it you can avoid forcing all the users to add custom -import paths. +Do not add any unnecessary import paths. The QML engine might find your modules +in the wrong place then. This can trigger problems which can only be reproduced +in specific environments. \section1 Integrating custom QML plugins diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp index a7af7cedd6..9711079d15 100644 --- a/src/qml/qml/qqmlimport.cpp +++ b/src/qml/qml/qqmlimport.cpp @@ -1539,7 +1539,14 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e) : engine(e) { filePluginPath << QLatin1String("."); - // Search order is applicationDirPath(), qrc:/qt-project.org/imports, $QML_IMPORT_PATH, $QML2_IMPORT_PATH, QLibraryInfo::QmlImportsPath + // Search order is: + // 1. android or macos specific bundle paths. + // 2. applicationDirPath() + // 3. qrc:/qt-project.org/imports + // 4. qrc:/qt/qml + // 5. $QML2_IMPORT_PATH + // 6. $QML_IMPORT_PATH + // 7. QLibraryInfo::QmlImportsPath QString installImportsPath = QLibraryInfo::path(QLibraryInfo::QmlImportsPath); addImportPath(installImportsPath); @@ -1556,6 +1563,7 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e) addEnvImportPath("QML_IMPORT_PATH"); addEnvImportPath("QML2_IMPORT_PATH"); + addImportPath(QStringLiteral("qrc:/qt/qml")); addImportPath(QStringLiteral("qrc:/qt-project.org/imports")); addImportPath(QCoreApplication::applicationDirPath()); diff --git a/tests/auto/qml/qmlbasicapp/BasicExtension/CMakeLists.txt b/tests/auto/qml/qmlbasicapp/BasicExtension/CMakeLists.txt index a08c71a294..1f3dd87dba 100644 --- a/tests/auto/qml/qmlbasicapp/BasicExtension/CMakeLists.txt +++ b/tests/auto/qml/qmlbasicapp/BasicExtension/CMakeLists.txt @@ -9,6 +9,7 @@ qt6_add_qml_module(additional_qml_module CLASS_NAME "BasicExtension" VERSION 1.0 URI "BasicExtension" + RESOURCE_PREFIX "/" QML_FILES Extension.qml More.ui.qml diff --git a/tests/auto/qml/qmlbasicapp/CMakeLists.txt b/tests/auto/qml/qmlbasicapp/CMakeLists.txt index 269cc35980..a8e9a2c0c6 100644 --- a/tests/auto/qml/qmlbasicapp/CMakeLists.txt +++ b/tests/auto/qml/qmlbasicapp/CMakeLists.txt @@ -9,6 +9,7 @@ qt_internal_add_test(tst_qmlbasicapp qt6_add_qml_module(tst_qmlbasicapp VERSION 1.0 URI "BasicApp" + RESOURCE_PREFIX "/" QML_FILES main.qml ) diff --git a/tests/auto/qml/qmlbasicapp/TimeExample/CMakeLists.txt b/tests/auto/qml/qmlbasicapp/TimeExample/CMakeLists.txt index 91bc6dc89e..6114bec093 100644 --- a/tests/auto/qml/qmlbasicapp/TimeExample/CMakeLists.txt +++ b/tests/auto/qml/qmlbasicapp/TimeExample/CMakeLists.txt @@ -3,6 +3,7 @@ qt_autogen_tools_initial_setup(qmlqtimeexample) qt6_add_qml_module(qmlqtimeexample VERSION 1.0 URI "TimeExample" + RESOURCE_PREFIX "/" SOURCES timemodel.cpp timemodel.h QML_FILES diff --git a/tests/auto/qml/qmlcachegen/CMakeLists.txt b/tests/auto/qml/qmlcachegen/CMakeLists.txt index 7f22c14f92..d4092d2a5e 100644 --- a/tests/auto/qml/qmlcachegen/CMakeLists.txt +++ b/tests/auto/qml/qmlcachegen/CMakeLists.txt @@ -25,6 +25,7 @@ qt_internal_add_test(tst_qmlcachegen qt6_add_qml_module(tst_qmlcachegen URI cachegentest VERSION 1.0 + RESOURCE_PREFIX "/" ) set(qmake_workerscripts_test_qml_files diff --git a/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt b/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt index ae2a172654..834978919e 100644 --- a/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt +++ b/tests/auto/qml/qmlcppcodegen/data/CMakeLists.txt @@ -170,6 +170,7 @@ qt6_add_qml_module(codegen_test_module VERSION 1.0 URI TestTypes IMPORT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/imports/" + AUTO_RESOURCE_PREFIX DEPENDENCIES QtQuick QtQuick.Templates diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp index 40b0fb78c2..8096ed872d 100644 --- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp +++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp @@ -128,7 +128,7 @@ private slots: void tst_QmlCppCodegen::simpleBinding() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/Test.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/Test.qml"_s)); QScopedPointer<QObject> object(component.create()); QVERIFY2(!object.isNull(), component.errorString().toUtf8().constData()); QCOMPARE(object->property("foo").toInt(), int(3)); @@ -149,7 +149,7 @@ void tst_QmlCppCodegen::simpleBinding() void tst_QmlCppCodegen::cppValueTypeList() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/Test.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/Test.qml"_s)); QScopedPointer<QObject> object(component.create()); QVERIFY2(!object.isNull(), component.errorString().toUtf8().constData()); QCOMPARE(object->property("a").toInt(), 16); @@ -164,7 +164,7 @@ void tst_QmlCppCodegen::cppValueTypeList() void tst_QmlCppCodegen::anchorsFill() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/anchorsFill.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/anchorsFill.qml"_s)); QScopedPointer<QObject> object(component.create()); QVERIFY2(!object.isNull(), component.errorString().toUtf8().constData()); @@ -186,7 +186,7 @@ void tst_QmlCppCodegen::anchorsFill() void tst_QmlCppCodegen::signalHandler() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/signal.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/signal.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -200,7 +200,7 @@ void tst_QmlCppCodegen::signalHandler() void tst_QmlCppCodegen::idAccess() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/idAccess.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/idAccess.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -232,7 +232,7 @@ void tst_QmlCppCodegen::globals() QQmlEngine engine; int exitCode = -1; QObject::connect(&engine, &QQmlEngine::exit, [&](int code) { exitCode = code; }); - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/globals.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/globals.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); const QByteArray message = QByteArray("Start 2 ") + arg1(); @@ -267,7 +267,7 @@ void tst_QmlCppCodegen::multiLookup() { // Multiple lookups of singletons (Qt in this case) don't clash with one another. QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/immediateQuit.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/immediateQuit.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); const QByteArray message = QByteArray("End: ") + arg1(); @@ -283,10 +283,10 @@ void tst_QmlCppCodegen::enums() { QQmlEngine engine; { - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/Enums.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/Enums.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/Enums.qml:4:1: " + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/Enums.qml:4:1: " "QML Enums: Layout must be attached to Item elements"); QScopedPointer<QObject> object(component.create()); @@ -303,7 +303,7 @@ void tst_QmlCppCodegen::enums() const auto func = qmlAttachedPropertiesFunction( object.data(), QMetaType::fromName("QQuickLayout*").metaObject()); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/enumsInOtherObject.qml:4:25: " + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/enumsInOtherObject.qml:4:25: " "QML Enums: Layout must be attached to Item elements"); QObject *attached = qmlAttachedPropertiesObject(object.data(), func); @@ -312,7 +312,7 @@ void tst_QmlCppCodegen::enums() QCOMPARE(qvariant_cast<Qt::Alignment>(prop), Qt::AlignCenter); } { - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/enumsInOtherObject.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/enumsInOtherObject.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -324,7 +324,7 @@ void tst_QmlCppCodegen::enums() void tst_QmlCppCodegen::funcWithParams() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/funcWithParams.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/funcWithParams.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -334,7 +334,7 @@ void tst_QmlCppCodegen::funcWithParams() void tst_QmlCppCodegen::intOverflow() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/intOverflow.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/intOverflow.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -345,7 +345,7 @@ void tst_QmlCppCodegen::intOverflow() void tst_QmlCppCodegen::stringLength() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/stringLength.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/stringLength.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -355,7 +355,7 @@ void tst_QmlCppCodegen::stringLength() void tst_QmlCppCodegen::scopeVsObject() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/scopeVsObject.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/scopeVsObject.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -365,7 +365,7 @@ void tst_QmlCppCodegen::scopeVsObject() void tst_QmlCppCodegen::compositeTypeMethod() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/compositeTypeMethod.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/compositeTypeMethod.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -376,7 +376,7 @@ void tst_QmlCppCodegen::compositeTypeMethod() void tst_QmlCppCodegen::excessiveParameters() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/excessiveParameters.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/excessiveParameters.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -387,7 +387,7 @@ void tst_QmlCppCodegen::excessiveParameters() void tst_QmlCppCodegen::jsImport() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/jsimport.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/jsimport.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -397,7 +397,7 @@ void tst_QmlCppCodegen::jsImport() void tst_QmlCppCodegen::jsmoduleImport() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/jsmoduleimport.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/jsmoduleimport.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -413,7 +413,7 @@ void tst_QmlCppCodegen::jsmoduleImport() void tst_QmlCppCodegen::methods() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/methods.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/methods.qml"_s)); QVERIFY(component.isReady()); QTest::ignoreMessage(QtDebugMsg, "The Bar"); @@ -472,7 +472,7 @@ void tst_QmlCppCodegen::methods() void tst_QmlCppCodegen::math() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/math.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/math.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -483,7 +483,7 @@ void tst_QmlCppCodegen::math() void tst_QmlCppCodegen::unknownParameter() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/unknownParameter.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/unknownParameter.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -493,7 +493,7 @@ void tst_QmlCppCodegen::unknownParameter() void tst_QmlCppCodegen::array() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/array.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/array.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -512,7 +512,7 @@ void tst_QmlCppCodegen::array() void tst_QmlCppCodegen::equalsUndefined() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/equalsUndefined.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/equalsUndefined.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -524,10 +524,10 @@ void tst_QmlCppCodegen::equalsUndefined() void tst_QmlCppCodegen::conversions() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/conversions.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/conversions.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/conversions.qml:42: TypeError: Type error"); + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/conversions.qml:42: TypeError: Type error"); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -677,7 +677,7 @@ void tst_QmlCppCodegen::interestingFiles() QFETCH(bool, isValid); QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/%1"_s.arg(file))); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/%1"_s.arg(file))); if (isValid) { QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> object(component.create()); @@ -690,7 +690,7 @@ void tst_QmlCppCodegen::interestingFiles() void tst_QmlCppCodegen::extendedTypes() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/extendedTypes.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/extendedTypes.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QTest::ignoreMessage(QtDebugMsg, "6 QSizeF(10, 20) 30"); @@ -708,7 +708,7 @@ void tst_QmlCppCodegen::extendedTypes() void tst_QmlCppCodegen::construct() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/construct.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/construct.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -718,7 +718,7 @@ void tst_QmlCppCodegen::construct() QCOMPARE(v.toString(), u"Error: bar"_s); QCOMPARE(object->property("aaa").toInt(), 12); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/construct.qml:9: Error: ouch"); + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/construct.qml:9: Error: ouch"); object->metaObject()->invokeMethod(object.data(), "ouch"); QCOMPARE(object->property("aaa").toInt(), 13); } @@ -734,7 +734,7 @@ void tst_QmlCppCodegen::contextParam() m.insert(u"foo"_s, 10); engine.rootContext()->setContextProperty(u"contextParam"_s, m); - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/contextParam.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/contextParam.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -745,7 +745,7 @@ void tst_QmlCppCodegen::contextParam() void tst_QmlCppCodegen::attachedType() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/text.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/text.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -762,7 +762,7 @@ void tst_QmlCppCodegen::attachedType() void tst_QmlCppCodegen::componentReturnType() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/componentReturnType.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/componentReturnType.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -773,7 +773,7 @@ void tst_QmlCppCodegen::componentReturnType() void tst_QmlCppCodegen::onAssignment() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/pressAndHoldButton.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/pressAndHoldButton.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -790,7 +790,7 @@ void tst_QmlCppCodegen::onAssignment() } namespace QmlCacheGeneratedCode { -namespace _0x5f_TestTypes_failures_qml { +namespace _qt_qml_TestTypes_failures_qml { extern const QQmlPrivate::AOTCompiledFunction aotBuiltFunctions[]; } } @@ -798,7 +798,7 @@ extern const QQmlPrivate::AOTCompiledFunction aotBuiltFunctions[]; void tst_QmlCppCodegen::failures() { const auto &aotFailure - = QmlCacheGeneratedCode::_0x5f_TestTypes_failures_qml::aotBuiltFunctions[0]; + = QmlCacheGeneratedCode::_qt_qml_TestTypes_failures_qml::aotBuiltFunctions[0]; QVERIFY(aotFailure.argumentTypes.isEmpty()); QVERIFY(!aotFailure.functionPtr); QCOMPARE(aotFailure.extraData, 0); @@ -807,7 +807,7 @@ void tst_QmlCppCodegen::failures() void tst_QmlCppCodegen::enumScope() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/enumScope.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/enumScope.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QCOMPARE(object->property("flow").toInt(), 1); @@ -816,7 +816,7 @@ void tst_QmlCppCodegen::enumScope() void tst_QmlCppCodegen::unusedAttached() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/unusedAttached.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/unusedAttached.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -834,7 +834,7 @@ void tst_QmlCppCodegen::unusedAttached() void tst_QmlCppCodegen::attachedBaseEnum() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/attachedBaseEnum.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/attachedBaseEnum.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -850,17 +850,17 @@ void tst_QmlCppCodegen::attachedBaseEnum() void tst_QmlCppCodegen::nullAccess() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/nullAccess.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/nullAccess.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QTest::ignoreMessage(QtWarningMsg, - "qrc:/TestTypes/nullAccess.qml:4:5: TypeError: " + "qrc:/qt/qml/TestTypes/nullAccess.qml:4:5: TypeError: " "Cannot read property 'width' of null"); QTest::ignoreMessage(QtWarningMsg, - "qrc:/TestTypes/nullAccess.qml:5:5: TypeError: " + "qrc:/qt/qml/TestTypes/nullAccess.qml:5:5: TypeError: " "Cannot read property 'height' of null"); QTest::ignoreMessage(QtWarningMsg, - "qrc:/TestTypes/nullAccess.qml:6: TypeError: Value is null and " + "qrc:/qt/qml/TestTypes/nullAccess.qml:6: TypeError: Value is null and " "could not be converted to an object"); QScopedPointer<QObject> object(component.create()); @@ -871,7 +871,7 @@ void tst_QmlCppCodegen::nullAccess() void tst_QmlCppCodegen::interceptor() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/interceptor.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/interceptor.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -892,7 +892,7 @@ void tst_QmlCppCodegen::interceptor() void tst_QmlCppCodegen::nonNotifyable() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/nonNotifyable.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/nonNotifyable.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -906,19 +906,19 @@ void tst_QmlCppCodegen::nonNotifyable() void tst_QmlCppCodegen::importsFromImportPath() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/importsFromImportPath.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/importsFromImportPath.qml"_s)); // We might propagate the import path, eventually, but for now instantiating is not important. // If the compiler accepts the file, it's probably fine. QVERIFY(component.isError()); QCOMPARE(component.errorString(), - u"qrc:/TestTypes/importsFromImportPath.qml:1 module \"Module\" is not installed\n"_s); + u"qrc:/qt/qml/TestTypes/importsFromImportPath.qml:1 module \"Module\" is not installed\n"_s); } void tst_QmlCppCodegen::aliasLookup() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/aliasLookup.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/aliasLookup.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -931,7 +931,7 @@ void tst_QmlCppCodegen::aliasLookup() void tst_QmlCppCodegen::outOfBoundsArray() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/outOfBounds.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/outOfBounds.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QTest::ignoreMessage(QtDebugMsg, "oob undefined"); @@ -947,8 +947,8 @@ void tst_QmlCppCodegen::outOfBoundsArray() void tst_QmlCppCodegen::compositeSingleton() { QQmlEngine engine; - engine.addImportPath(u":/TestTypes/imports/"_s); - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/compositesingleton.qml"_s)); + engine.addImportPath(u":/qt/qml/TestTypes/imports/"_s); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/compositesingleton.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> o(component.create()); QCOMPARE(o->property("x").toDouble(), 4.5); @@ -959,7 +959,7 @@ void tst_QmlCppCodegen::compositeSingleton() void tst_QmlCppCodegen::lotsOfRegisters() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/page.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/page.qml"_s)); QVERIFY2(!component.isError(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -995,7 +995,7 @@ void tst_QmlCppCodegen::lotsOfRegisters() void tst_QmlCppCodegen::inPlaceDecrement() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/dialog.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/dialog.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1021,7 +1021,7 @@ void tst_QmlCppCodegen::inPlaceDecrement() void tst_QmlCppCodegen::shifts() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/shifts.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/shifts.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1036,7 +1036,7 @@ void tst_QmlCppCodegen::shifts() void tst_QmlCppCodegen::valueTypeProperty() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/valueTypeProperty.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/valueTypeProperty.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -1050,7 +1050,7 @@ void tst_QmlCppCodegen::valueTypeProperty() void tst_QmlCppCodegen::propertyOfParent() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/RootWithoutId.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/RootWithoutId.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -1079,7 +1079,7 @@ void tst_QmlCppCodegen::propertyOfParent() void tst_QmlCppCodegen::accessModelMethodFromOutSide() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/AccessModelMethodsFromOutside.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/AccessModelMethodsFromOutside.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QTest::ignoreMessage(QtDebugMsg, "3"); @@ -1095,7 +1095,7 @@ void tst_QmlCppCodegen::accessModelMethodFromOutSide() void tst_QmlCppCodegen::functionArguments() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/Dummy.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/Dummy.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -1127,7 +1127,7 @@ void tst_QmlCppCodegen::functionArguments() void tst_QmlCppCodegen::bindingExpression() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/BindingExpression.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/BindingExpression.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); @@ -1169,7 +1169,7 @@ void tst_QmlCppCodegen::bindingExpression() void tst_QmlCppCodegen::voidFunction() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/voidfunction.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/voidfunction.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1181,7 +1181,7 @@ void tst_QmlCppCodegen::voidFunction() void tst_QmlCppCodegen::overriddenProperty() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/childobject.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/childobject.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1221,7 +1221,7 @@ void tst_QmlCppCodegen::overriddenProperty() void tst_QmlCppCodegen::listLength() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/listlength.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/listlength.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1231,7 +1231,7 @@ void tst_QmlCppCodegen::listLength() void tst_QmlCppCodegen::parentProperty() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/parentProp.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/parentProp.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1261,7 +1261,7 @@ void tst_QmlCppCodegen::parentProperty() QCOMPARE(object->property("i").toInt(), 886); { - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/specificParent.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/specificParent.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1274,7 +1274,7 @@ void tst_QmlCppCodegen::parentProperty() void tst_QmlCppCodegen::registerElimination() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/registerelimination.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/registerelimination.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -1292,7 +1292,7 @@ void tst_QmlCppCodegen::registerElimination() void tst_QmlCppCodegen::asCast() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/asCast.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/asCast.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); QScopedPointer<QObject> root(component.create()); QVERIFY(!root.isNull()); @@ -1327,10 +1327,10 @@ void tst_QmlCppCodegen::asCast() void tst_QmlCppCodegen::noQQmlData() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/noQQmlData.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/noQQmlData.qml"_s)); QVERIFY2(component.isReady(), component.errorString().toUtf8()); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/noQQmlData.qml:7: TypeError: " + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/noQQmlData.qml:7: TypeError: " "Cannot read property 'name' of null"); QScopedPointer<QObject> root(component.create()); QVERIFY(!root.isNull()); @@ -1347,7 +1347,7 @@ void tst_QmlCppCodegen::noQQmlData() host1->setName(u"Marge"_s); QCOMPARE(party->property("n").toString(), u"Marge in da house!"_s); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/noQQmlData.qml:7: TypeError: " + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/noQQmlData.qml:7: TypeError: " "Cannot read property 'name' of null"); // Doesn't crash @@ -1379,7 +1379,7 @@ void tst_QmlCppCodegen::scopeObjectDestruction() #endif QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/fileDialog.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/fileDialog.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1426,21 +1426,21 @@ static void checkColorProperties(QQmlComponent *component) void tst_QmlCppCodegen::colorAsVariant() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/colorAsVariant.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/colorAsVariant.qml"_s)); checkColorProperties(&component); } void tst_QmlCppCodegen::bindToValueType() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/bindToValueType.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/bindToValueType.qml"_s)); checkColorProperties(&component); } void tst_QmlCppCodegen::undefinedResets() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/undefinedResets.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/undefinedResets.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1464,7 +1464,7 @@ void tst_QmlCppCodegen::undefinedResets() void tst_QmlCppCodegen::innerObjectNonShadowable() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/ownProperty.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/ownProperty.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1476,7 +1476,7 @@ void tst_QmlCppCodegen::innerObjectNonShadowable() void tst_QmlCppCodegen::ownPropertiesNonShadowable() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/overriddenMember.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/overriddenMember.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1490,7 +1490,7 @@ void tst_QmlCppCodegen::ownPropertiesNonShadowable() void tst_QmlCppCodegen::modulePrefix() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/modulePrefix.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/modulePrefix.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1504,7 +1504,7 @@ void tst_QmlCppCodegen::modulePrefix() void tst_QmlCppCodegen::colorString() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/colorString.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/colorString.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1518,7 +1518,7 @@ void tst_QmlCppCodegen::colorString() void tst_QmlCppCodegen::urlString() { QQmlEngine engine; - QQmlComponent component(&engine, QUrl(u"qrc:/TestTypes/urlString.qml"_s)); + QQmlComponent component(&engine, QUrl(u"qrc:/qt/qml/TestTypes/urlString.qml"_s)); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> rootObject(component.create()); @@ -1533,7 +1533,7 @@ void tst_QmlCppCodegen::urlString() void tst_QmlCppCodegen::callContextPropertyLookupResult() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/callContextPropertyLookupResult.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/callContextPropertyLookupResult.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1544,9 +1544,9 @@ void tst_QmlCppCodegen::callContextPropertyLookupResult() void tst_QmlCppCodegen::deadShoeSize() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/deadShoeSize.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/deadShoeSize.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/deadShoeSize.qml:5: Error: ouch"); + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/deadShoeSize.qml:5: Error: ouch"); QScopedPointer<QObject> o(c.create()); QVERIFY(o); QCOMPARE(o->property("shoeSize").toInt(), 0); @@ -1555,7 +1555,7 @@ void tst_QmlCppCodegen::deadShoeSize() void tst_QmlCppCodegen::listIndices() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/listIndices.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/listIndices.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1574,7 +1574,7 @@ void tst_QmlCppCodegen::listIndices() void tst_QmlCppCodegen::jsMathObject() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/jsMathObject.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/jsMathObject.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1630,7 +1630,7 @@ void tst_QmlCppCodegen::intEnumCompare() { QQmlEngine engine; { - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/intEnumCompare.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/intEnumCompare.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1642,7 +1642,7 @@ void tst_QmlCppCodegen::intEnumCompare() { // We cannot use Qt.red in QML because it's lower case. - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/enumInvalid.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/enumInvalid.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1654,7 +1654,7 @@ void tst_QmlCppCodegen::intEnumCompare() void tst_QmlCppCodegen::attachedSelf() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/SelectionRectangle.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/SelectionRectangle.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1667,7 +1667,7 @@ void tst_QmlCppCodegen::attachedSelf() void tst_QmlCppCodegen::functionReturningVoid() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/functionReturningVoid.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/functionReturningVoid.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1684,7 +1684,7 @@ void tst_QmlCppCodegen::functionCallOnNamespaced() { QQmlEngine engine; { - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/themergood.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/themergood.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1692,7 +1692,7 @@ void tst_QmlCppCodegen::functionCallOnNamespaced() } { - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/themerbad.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/themerbad.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1703,7 +1703,7 @@ void tst_QmlCppCodegen::functionCallOnNamespaced() void tst_QmlCppCodegen::flushBeforeCapture() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/noBindingLoop.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/noBindingLoop.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1716,14 +1716,14 @@ void tst_QmlCppCodegen::flushBeforeCapture() void tst_QmlCppCodegen::unknownAttached() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/unknownAttached.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/unknownAttached.qml"_s)); QVERIFY(c.isError()); } void tst_QmlCppCodegen::variantlist() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/variantlist.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/variantlist.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1737,7 +1737,7 @@ void tst_QmlCppCodegen::variantlist() void tst_QmlCppCodegen::popContextAfterRet() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/popContextAfterRet.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/popContextAfterRet.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1754,7 +1754,7 @@ void tst_QmlCppCodegen::popContextAfterRet() void tst_QmlCppCodegen::revisions() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/revisions.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/revisions.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1766,7 +1766,7 @@ void tst_QmlCppCodegen::revisions() void tst_QmlCppCodegen::invisibleBase() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/invisibleBase.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/invisibleBase.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1776,7 +1776,7 @@ void tst_QmlCppCodegen::invisibleBase() void tst_QmlCppCodegen::notEqualsInt() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/notEqualsInt.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/notEqualsInt.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1790,7 +1790,7 @@ void tst_QmlCppCodegen::notEqualsInt() void tst_QmlCppCodegen::infinities() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/infinities.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/infinities.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1812,7 +1812,7 @@ void tst_QmlCppCodegen::infinities() void tst_QmlCppCodegen::blockComments() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/blockComments.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/blockComments.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1822,7 +1822,7 @@ void tst_QmlCppCodegen::blockComments() void tst_QmlCppCodegen::functionLookup() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/functionLookup.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/functionLookup.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1838,7 +1838,7 @@ void tst_QmlCppCodegen::functionLookup() void tst_QmlCppCodegen::objectInVar() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/objectInVar.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/objectInVar.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(o); @@ -1856,7 +1856,7 @@ void tst_QmlCppCodegen::objectInVar() void tst_QmlCppCodegen::functionTakingVar() { QQmlEngine engine; - const QUrl document(u"qrc:/TestTypes/functionTakingVar.qml"_s); + const QUrl document(u"qrc:/qt/qml/TestTypes/functionTakingVar.qml"_s); QQmlComponent c(&engine, document); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -1876,7 +1876,7 @@ void tst_QmlCppCodegen::functionTakingVar() void tst_QmlCppCodegen::testIsnan() { QQmlEngine engine; - const QUrl document(u"qrc:/TestTypes/isnan.qml"_s); + const QUrl document(u"qrc:/qt/qml/TestTypes/isnan.qml"_s); QQmlComponent c(&engine, document); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -1897,7 +1897,7 @@ void tst_QmlCppCodegen::testIsnan() void tst_QmlCppCodegen::fallbackLookups() { QQmlEngine engine; - const QUrl document(u"qrc:/TestTypes/fallbacklookups.qml"_s); + const QUrl document(u"qrc:/qt/qml/TestTypes/fallbacklookups.qml"_s); QQmlComponent c(&engine, document); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -1930,7 +1930,7 @@ void tst_QmlCppCodegen::fallbackLookups() void tst_QmlCppCodegen::typedArray() { QQmlEngine engine; - const QUrl document(u"qrc:/TestTypes/typedArray.qml"_s); + const QUrl document(u"qrc:/qt/qml/TestTypes/typedArray.qml"_s); QQmlComponent c(&engine, document); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -1982,7 +1982,7 @@ void tst_QmlCppCodegen::prefixedType() // import TestTypes. That is because the TestTypes module is in a subdirectory "data". engine.addImportPath(u":/"_s); - const QUrl document(u"qrc:/TestTypes/prefixedMetaType.qml"_s); + const QUrl document(u"qrc:/qt/qml/TestTypes/prefixedMetaType.qml"_s); QQmlComponent c(&engine, document); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -2013,13 +2013,13 @@ void tst_QmlCppCodegen::evadingAmbiguity() // import TestTypes. That is because the TestTypes module is in a subdirectory "data". engine.addImportPath(u":/"_s); - QQmlComponent c1(&engine, QUrl(u"qrc:/TestTypes/ambiguous1/Ambiguous.qml"_s)); + QQmlComponent c1(&engine, QUrl(u"qrc:/qt/qml/TestTypes/ambiguous1/Ambiguous.qml"_s)); QVERIFY2(c1.isReady(), qPrintable(c1.errorString())); QScopedPointer<QObject> o1(c1.create()); QCOMPARE(o1->objectName(), QStringLiteral("Ambiguous")); QCOMPARE(o1->property("i").toString(), QStringLiteral("Ambiguous1")); - QQmlComponent c2(&engine, QUrl(u"qrc:/TestTypes/ambiguous2/Ambiguous.qml"_s)); + QQmlComponent c2(&engine, QUrl(u"qrc:/qt/qml/TestTypes/ambiguous2/Ambiguous.qml"_s)); QVERIFY2(c2.isReady(), qPrintable(c2.errorString())); QScopedPointer<QObject> o2(c2.create()); QCOMPARE(o2->objectName(), QStringLiteral("Ambiguous")); @@ -2029,7 +2029,7 @@ void tst_QmlCppCodegen::evadingAmbiguity() void tst_QmlCppCodegen::fromBoolValue() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/fromBoolValue.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/fromBoolValue.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QCOMPARE(o->property("a").toBool(), true); @@ -2052,7 +2052,7 @@ void tst_QmlCppCodegen::fromBoolValue() void tst_QmlCppCodegen::invisibleTypes() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/invisibleTypes.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/invisibleTypes.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -2103,7 +2103,7 @@ void tst_QmlCppCodegen::invalidPropertyType() qmlRegisterType<MyCppType>("App", 1, 0, "MyCppType"); QQmlEngine engine; - QQmlComponent okComponent(&engine, QUrl(u"qrc:/TestTypes/OkType.qml"_s)); + QQmlComponent okComponent(&engine, QUrl(u"qrc:/qt/qml/TestTypes/OkType.qml"_s)); QVERIFY2(okComponent.isReady(), qPrintable(okComponent.errorString())); QScopedPointer<QObject> picker(okComponent.create()); QVERIFY2(!picker.isNull(), qPrintable(okComponent.errorString())); @@ -2113,7 +2113,7 @@ void tst_QmlCppCodegen::invalidPropertyType() QVERIFY(myCppType); QVERIFY(!myCppType->useListDelegate()); - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/BadType.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/BadType.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.createWithInitialProperties( QVariantMap {{u"picker"_s, QVariant::fromValue(picker.data())}})); @@ -2127,7 +2127,7 @@ void tst_QmlCppCodegen::invalidPropertyType() void tst_QmlCppCodegen::valueTypeLists() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/valueTypeLists.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/valueTypeLists.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -2151,7 +2151,7 @@ void tst_QmlCppCodegen::valueTypeLists() void tst_QmlCppCodegen::boundComponents() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/boundComponents.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/boundComponents.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); @@ -2175,7 +2175,7 @@ void tst_QmlCppCodegen::invisibleListElementType() { qmlRegisterType<InvisibleListElementType>("Invisible", 1, 0, "InvisibleListElement"); QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/invisibleListElementType.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/invisibleListElementType.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(!o.isNull()); @@ -2194,7 +2194,7 @@ void tst_QmlCppCodegen::typePropertyClash() { QQmlEngine engine; engine.rootContext()->setContextProperty(u"size"_s, 5); - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/typePropertyClash.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/typePropertyClash.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); QVERIFY(!o.isNull()); @@ -2204,10 +2204,10 @@ void tst_QmlCppCodegen::typePropertyClash() void tst_QmlCppCodegen::objectToString() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/toString.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/toString.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/toString.qml:6: no"); + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/toString.qml:6: no"); QScopedPointer<QObject> o(c.create()); QVERIFY(!o.isNull()); @@ -2218,10 +2218,10 @@ void tst_QmlCppCodegen::objectToString() void tst_QmlCppCodegen::throwObjectName() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/throwObjectName.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/throwObjectName.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); - QTest::ignoreMessage(QtWarningMsg, "qrc:/TestTypes/throwObjectName.qml:5:5: ouch"); + QTest::ignoreMessage(QtWarningMsg, "qrc:/qt/qml/TestTypes/throwObjectName.qml:5:5: ouch"); QScopedPointer<QObject> o(c.create()); QVERIFY(!o.isNull()); QVERIFY(o->objectName().isEmpty()); @@ -2230,7 +2230,7 @@ void tst_QmlCppCodegen::throwObjectName() void tst_QmlCppCodegen::javaScriptArgument() { QQmlEngine engine; - QQmlComponent c(&engine, QUrl(u"qrc:/TestTypes/javaScriptArgument.qml"_s)); + QQmlComponent c(&engine, QUrl(u"qrc:/qt/qml/TestTypes/javaScriptArgument.qml"_s)); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer<QObject> o(c.create()); diff --git a/tests/auto/qml/qmlsplitlib/CMakeLists.txt b/tests/auto/qml/qmlsplitlib/CMakeLists.txt index f65b2bc7de..97bdfd3ee5 100644 --- a/tests/auto/qml/qmlsplitlib/CMakeLists.txt +++ b/tests/auto/qml/qmlsplitlib/CMakeLists.txt @@ -24,6 +24,7 @@ qt6_generate_foreign_qml_types(tst_qmlsplitlib_library tst_qmlsplitlib) qt6_add_qml_module(tst_qmlsplitlib VERSION 1.0 URI "SplitLib" + AUTO_RESOURCE_PREFIX QML_FILES main.qml ) diff --git a/tests/auto/qml/qmlsplitlib/tst_qmlsplitlib.cpp b/tests/auto/qml/qmlsplitlib/tst_qmlsplitlib.cpp index 38a6141c5a..893ed77ff7 100644 --- a/tests/auto/qml/qmlsplitlib/tst_qmlsplitlib.cpp +++ b/tests/auto/qml/qmlsplitlib/tst_qmlsplitlib.cpp @@ -17,7 +17,7 @@ private slots: void tst_splitlib::verifyComponent() { QQmlEngine engine; - QQmlComponent c(&engine, QStringLiteral("qrc:/SplitLib/main.qml")); + QQmlComponent c(&engine, QStringLiteral("qrc:/qt/qml/SplitLib/main.qml")); QVERIFY2(c.isReady(), qPrintable(c.errorString())); QScopedPointer o(c.create()); QVERIFY(!o.isNull()); diff --git a/tests/auto/qml/qmltc/QmltcTests/CMakeLists.txt b/tests/auto/qml/qmltc/QmltcTests/CMakeLists.txt index f9877f29bc..a188be8901 100644 --- a/tests/auto/qml/qmltc/QmltcTests/CMakeLists.txt +++ b/tests/auto/qml/qmltc/QmltcTests/CMakeLists.txt @@ -125,6 +125,7 @@ target_link_libraries(qmltc_test_module PUBLIC ${common_libraries}) qt6_add_qml_module(qmltc_test_module VERSION 1.0 URI QmltcTests + AUTO_RESOURCE_PREFIX SOURCES ${cpp_sources} QML_FILES diff --git a/tests/auto/qml/qmltc/tst_qmltc.cpp b/tests/auto/qml/qmltc/tst_qmltc.cpp index 0de055d0ca..2a6b7e12a7 100644 --- a/tests/auto/qml/qmltc/tst_qmltc.cpp +++ b/tests/auto/qml/qmltc/tst_qmltc.cpp @@ -108,59 +108,59 @@ void tst_qmltc::initTestCase() // Note: just check whether the QML code is valid. QQmlComponent is good for // it. also, we can use qrc to make sure the file is in the resource system. QUrl urls[] = { - QUrl("qrc:/QmltcTests/NameConflict.qml"), - QUrl("qrc:/QmltcTests/HelloWorld.qml"), - QUrl("qrc:/QmltcTests/simpleQtQuickTypes.qml"), - QUrl("qrc:/QmltcTests/typeWithEnums.qml"), - QUrl("qrc:/QmltcTests/methods.qml"), - QUrl("qrc:/QmltcTests/properties.qml"), - QUrl("qrc:/QmltcTests/ObjectWithId.qml"), - QUrl("qrc:/QmltcTests/documentWithIds.qml"), - QUrl("qrc:/QmltcTests/importNamespace.qml"), - QUrl("qrc:/QmltcTests/deferredProperties.qml"), - QUrl("qrc:/QmltcTests/deferredProperties_group.qml"), - QUrl("qrc:/QmltcTests/deferredProperties_attached.qml"), - QUrl("qrc:/QmltcTests/deferredProperties_complex.qml"), - QUrl("qrc:/QmltcTests/extensionTypeBindings.qml"), - - QUrl("qrc:/QmltcTests/signalHandlers.qml"), - QUrl("qrc:/QmltcTests/javaScriptFunctions.qml"), - QUrl("qrc:/QmltcTests/changingBindings.qml"), - QUrl("qrc:/QmltcTests/propertyAlias.qml"), - QUrl("qrc:/QmltcTests/propertyAlias_external.qml"), - QUrl("qrc:/QmltcTests/complexAliases.qml"), - QUrl("qrc:/QmltcTests/propertyChangeHandler.qml"), - QUrl("qrc:/QmltcTests/NestedHelloWorld.qml"), - QUrl("qrc:/QmltcTests/ComponentHelloWorld.qml"), - QUrl("qrc:/QmltcTests/propertyReturningFunction.qml"), - QUrl("qrc:/QmltcTests/listProperty.qml"), - QUrl("qrc:/QmltcTests/listPropertySameName.qml"), - QUrl("qrc:/QmltcTests/defaultProperty.qml"), - QUrl("qrc:/QmltcTests/defaultPropertyCorrectSelection.qml"), - QUrl("qrc:/QmltcTests/AttachedProperty.qml"), - QUrl("qrc:/QmltcTests/attachedPropertyDerived.qml"), - QUrl("qrc:/QmltcTests/groupedProperty.qml"), - QUrl("qrc:/QmltcTests/groupedProperty_qquicktext.qml"), - QUrl("qrc:/QmltcTests/localImport.qml"), - QUrl("qrc:/QmltcTests/newPropertyBoundToOld.qml"), - QUrl("qrc:/QmltcTests/oldPropertyBoundToNew.qml"), - QUrl("qrc:/QmltcTests/nonLocalQmlPropertyBoundToAny.qml"), - QUrl("qrc:/QmltcTests/justAnimation.qml"), - QUrl("qrc:/QmltcTests/justAnimationOnAlias.qml"), - QUrl("qrc:/QmltcTests/behaviorAndAnimation.qml"), - QUrl("qrc:/QmltcTests/behaviorAndAnimationOnAlias.qml"), - QUrl("qrc:/QmltcTests/bindingsThroughIds.qml"), - QUrl("qrc:/QmltcTests/localImport_context.qml"), - QUrl("qrc:/QmltcTests/neighbors_context.qml"), - QUrl("qrc:/QmltcTests/delegate_context.qml"), - QUrl("qrc:/QmltcTests/nontrivial_context.qml"), - QUrl("qrc:/QmltcTests/javascriptCaller.qml"), - QUrl("qrc:/QmltcTests/listView.qml"), - QUrl("qrc:/QmltcTests/bindingOnValueType.qml"), - QUrl("qrc:/QmltcTests/keyEvents.qml"), - QUrl("qrc:/QmltcTests/PrivateProperty.qml"), - QUrl("qrc:/QmltcTests/privatePropertySubclass.qml"), - QUrl("qrc:/QmltcTests/calqlatrBits.qml"), + QUrl("qrc:/qt/qml/QmltcTests/NameConflict.qml"), + QUrl("qrc:/qt/qml/QmltcTests/HelloWorld.qml"), + QUrl("qrc:/qt/qml/QmltcTests/simpleQtQuickTypes.qml"), + QUrl("qrc:/qt/qml/QmltcTests/typeWithEnums.qml"), + QUrl("qrc:/qt/qml/QmltcTests/methods.qml"), + QUrl("qrc:/qt/qml/QmltcTests/properties.qml"), + QUrl("qrc:/qt/qml/QmltcTests/ObjectWithId.qml"), + QUrl("qrc:/qt/qml/QmltcTests/documentWithIds.qml"), + QUrl("qrc:/qt/qml/QmltcTests/importNamespace.qml"), + QUrl("qrc:/qt/qml/QmltcTests/deferredProperties.qml"), + QUrl("qrc:/qt/qml/QmltcTests/deferredProperties_group.qml"), + QUrl("qrc:/qt/qml/QmltcTests/deferredProperties_attached.qml"), + QUrl("qrc:/qt/qml/QmltcTests/deferredProperties_complex.qml"), + QUrl("qrc:/qt/qml/QmltcTests/extensionTypeBindings.qml"), + + QUrl("qrc:/qt/qml/QmltcTests/signalHandlers.qml"), + QUrl("qrc:/qt/qml/QmltcTests/javaScriptFunctions.qml"), + QUrl("qrc:/qt/qml/QmltcTests/changingBindings.qml"), + QUrl("qrc:/qt/qml/QmltcTests/propertyAlias.qml"), + QUrl("qrc:/qt/qml/QmltcTests/propertyAlias_external.qml"), + QUrl("qrc:/qt/qml/QmltcTests/complexAliases.qml"), + QUrl("qrc:/qt/qml/QmltcTests/propertyChangeHandler.qml"), + QUrl("qrc:/qt/qml/QmltcTests/NestedHelloWorld.qml"), + QUrl("qrc:/qt/qml/QmltcTests/ComponentHelloWorld.qml"), + QUrl("qrc:/qt/qml/QmltcTests/propertyReturningFunction.qml"), + QUrl("qrc:/qt/qml/QmltcTests/listProperty.qml"), + QUrl("qrc:/qt/qml/QmltcTests/listPropertySameName.qml"), + QUrl("qrc:/qt/qml/QmltcTests/defaultProperty.qml"), + QUrl("qrc:/qt/qml/QmltcTests/defaultPropertyCorrectSelection.qml"), + QUrl("qrc:/qt/qml/QmltcTests/AttachedProperty.qml"), + QUrl("qrc:/qt/qml/QmltcTests/attachedPropertyDerived.qml"), + QUrl("qrc:/qt/qml/QmltcTests/groupedProperty.qml"), + QUrl("qrc:/qt/qml/QmltcTests/groupedProperty_qquicktext.qml"), + QUrl("qrc:/qt/qml/QmltcTests/localImport.qml"), + QUrl("qrc:/qt/qml/QmltcTests/newPropertyBoundToOld.qml"), + QUrl("qrc:/qt/qml/QmltcTests/oldPropertyBoundToNew.qml"), + QUrl("qrc:/qt/qml/QmltcTests/nonLocalQmlPropertyBoundToAny.qml"), + QUrl("qrc:/qt/qml/QmltcTests/justAnimation.qml"), + QUrl("qrc:/qt/qml/QmltcTests/justAnimationOnAlias.qml"), + QUrl("qrc:/qt/qml/QmltcTests/behaviorAndAnimation.qml"), + QUrl("qrc:/qt/qml/QmltcTests/behaviorAndAnimationOnAlias.qml"), + QUrl("qrc:/qt/qml/QmltcTests/bindingsThroughIds.qml"), + QUrl("qrc:/qt/qml/QmltcTests/localImport_context.qml"), + QUrl("qrc:/qt/qml/QmltcTests/neighbors_context.qml"), + QUrl("qrc:/qt/qml/QmltcTests/delegate_context.qml"), + QUrl("qrc:/qt/qml/QmltcTests/nontrivial_context.qml"), + QUrl("qrc:/qt/qml/QmltcTests/javascriptCaller.qml"), + QUrl("qrc:/qt/qml/QmltcTests/listView.qml"), + QUrl("qrc:/qt/qml/QmltcTests/bindingOnValueType.qml"), + QUrl("qrc:/qt/qml/QmltcTests/keyEvents.qml"), + QUrl("qrc:/qt/qml/QmltcTests/PrivateProperty.qml"), + QUrl("qrc:/qt/qml/QmltcTests/privatePropertySubclass.qml"), + QUrl("qrc:/qt/qml/QmltcTests/calqlatrBits.qml"), }; QQmlEngine e; @@ -768,7 +768,7 @@ void tst_qmltc::extensionTypeBindings() { QQmlEngine e; QQmlComponent component(&e); - component.loadUrl(QUrl("qrc:/QmltcTests/extensionTypeBindings.qml")); + component.loadUrl(QUrl("qrc:/qt/qml/QmltcTests/extensionTypeBindings.qml")); QVERIFY2(component.isReady(), qPrintable(component.errorString())); QScopedPointer<QObject> root(component.create()); QVERIFY2(root, qPrintable(component.errorString())); @@ -1186,7 +1186,7 @@ void tst_qmltc::propertyChangeHandler() { QQmlEngine e; QQmlComponent c(&e); - c.loadUrl(QUrl("qrc:/QmltcTests/propertyChangeHandler.qml")); + c.loadUrl(QUrl("qrc:/qt/qml/QmltcTests/propertyChangeHandler.qml")); QScopedPointer<QObject> root(c.create()); QVERIFY2(root, qPrintable(c.errorString())); QCOMPARE(root->property("watcher").toInt(), 42); @@ -1725,7 +1725,7 @@ void tst_qmltc::contextHierarchy_rootBaseIsQml() { QQmlEngine e; QQmlComponent c(&e); - c.loadUrl(QUrl("qrc:/QmltcTests/localImport_context.qml")); + c.loadUrl(QUrl("qrc:/qt/qml/QmltcTests/localImport_context.qml")); QScopedPointer<QObject> root(c.create()); QVERIFY2(root, qPrintable(c.errorString())); // sanity @@ -1824,7 +1824,7 @@ void tst_qmltc::contextHierarchy_delegate() { QQmlEngine e; QQmlComponent c(&e); - c.loadUrl(QUrl("qrc:/QmltcTests/delegate_context.qml")); + c.loadUrl(QUrl("qrc:/qt/qml/QmltcTests/delegate_context.qml")); QScopedPointer<QObject> root(c.create()); QVERIFY2(root, qPrintable(c.errorString())); QQmlListReference data(root.get(), "data"); diff --git a/tests/auto/qml/qmltc_manual/CMakeLists.txt b/tests/auto/qml/qmltc_manual/CMakeLists.txt index beaa318496..ff7ac5ba96 100644 --- a/tests/auto/qml/qmltc_manual/CMakeLists.txt +++ b/tests/auto/qml/qmltc_manual/CMakeLists.txt @@ -19,6 +19,7 @@ qt_internal_add_test(tst_qmltc_manual qt6_add_qml_module(tst_qmltc_manual VERSION 1.0 URI "QmltcManualTests" + AUTO_RESOURCE_PREFIX QML_FILES ${test_data} ) diff --git a/tests/auto/qml/qmltc_manual/tst_qmltc_manual.cpp b/tests/auto/qml/qmltc_manual/tst_qmltc_manual.cpp index a23eeb4842..ca8e0895d7 100644 --- a/tests/auto/qml/qmltc_manual/tst_qmltc_manual.cpp +++ b/tests/auto/qml/qmltc_manual/tst_qmltc_manual.cpp @@ -124,7 +124,8 @@ void tst_qmltc_manual::signalHandlers() void tst_qmltc_manual::signalHandlers_qmlcachegen() { // use qmlcachegen's compilation unit - signalHandlers_impl(QUrl("qrc:/QmltcManualTests/data/signalHandlers.qml")); + signalHandlers_impl( + QUrl("qrc:/qt/qml/QmltcManualTests/data/signalHandlers.qml")); } void tst_qmltc_manual::jsFunctions() diff --git a/tests/auto/qml/qmltc_qprocess/CMakeLists.txt b/tests/auto/qml/qmltc_qprocess/CMakeLists.txt index bd70d2fae7..2142e192b8 100644 --- a/tests/auto/qml/qmltc_qprocess/CMakeLists.txt +++ b/tests/auto/qml/qmltc_qprocess/CMakeLists.txt @@ -9,6 +9,7 @@ qt_internal_add_test(tst_qmltc_qprocess qt6_add_qml_module(tst_qmltc_qprocess VERSION 1.0 URI QmltcQProcessTests + AUTO_RESOURCE_PREFIX QML_FILES data/dummy.qml data/inlineComponent.qml diff --git a/tests/auto/qml/qmltyperegistrar/CMakeLists.txt b/tests/auto/qml/qmltyperegistrar/CMakeLists.txt index 0d815486b5..9135da1149 100644 --- a/tests/auto/qml/qmltyperegistrar/CMakeLists.txt +++ b/tests/auto/qml/qmltyperegistrar/CMakeLists.txt @@ -70,6 +70,7 @@ qt_enable_autogen_tool(tst-qmltyperegistrar-with-dashes "moc" ON) qt_add_qml_module(tst-qmltyperegistrar-with-dashes URI Module-With-Dashes VERSION 1.0 + AUTO_RESOURCE_PREFIX SOURCES foo.cpp foo.h ) diff --git a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp index 4460dd7de5..f9a0c45753 100644 --- a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp +++ b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp @@ -218,6 +218,7 @@ void tst_QQmlImport::importPathOrder() #endif expectedImportPaths << appDirPath << QLatin1String("qrc:/qt-project.org/imports") + << QLatin1String("qrc:/qt/qml") << qml2Imports; QQmlEngine engine; QCOMPARE(engine.importPathList(), expectedImportPaths); diff --git a/tests/auto/qml/qqmljsscope/QQmlJSScopeTests/CMakeLists.txt b/tests/auto/qml/qqmljsscope/QQmlJSScopeTests/CMakeLists.txt index 83d509c45a..f7539d41bf 100644 --- a/tests/auto/qml/qqmljsscope/QQmlJSScopeTests/CMakeLists.txt +++ b/tests/auto/qml/qqmljsscope/QQmlJSScopeTests/CMakeLists.txt @@ -8,6 +8,7 @@ target_link_libraries(qqmljsscope_test_module PUBLIC Qt::Core Qt::Qml Qt::Gui) qt6_add_qml_module(qqmljsscope_test_module VERSION 1.0 URI QQmlJSScopeTests + AUTO_RESOURCE_PREFIX SOURCES singleton.h singleton.cpp extensiontypes.h diff --git a/tests/auto/quick/qquickitemrhiintegration/CMakeLists.txt b/tests/auto/quick/qquickitemrhiintegration/CMakeLists.txt index 3521bd8111..0a1d2ea92e 100644 --- a/tests/auto/quick/qquickitemrhiintegration/CMakeLists.txt +++ b/tests/auto/quick/qquickitemrhiintegration/CMakeLists.txt @@ -40,4 +40,5 @@ qt_internal_add_shaders(tst_qquickitemrhiintegration "shaders" qt_add_qml_module(tst_qquickitemrhiintegration URI TestQquickitemrhiintegration VERSION 1.0 + AUTO_RESOURCE_PREFIX ) diff --git a/tests/auto/quick/qquicklistview2/CMakeLists.txt b/tests/auto/quick/qquicklistview2/CMakeLists.txt index 4bf6a57b4b..2918a6051b 100644 --- a/tests/auto/quick/qquicklistview2/CMakeLists.txt +++ b/tests/auto/quick/qquicklistview2/CMakeLists.txt @@ -23,6 +23,7 @@ qt_internal_add_test(tst_qquicklistview2 qt6_add_qml_module(tst_qquicklistview2 URI Test VERSION 1.0 + AUTO_RESOURCE_PREFIX ) qt_internal_extend_target(tst_qquicklistview2 CONDITION ANDROID OR IOS diff --git a/tools/qml/CMakeLists.txt b/tools/qml/CMakeLists.txt index 6cc772de9c..9045b65c1f 100644 --- a/tools/qml/CMakeLists.txt +++ b/tools/qml/CMakeLists.txt @@ -42,6 +42,7 @@ qt_internal_add_resource(qml qml # Turn the tool into its own self-contained qml module qt6_add_qml_module(qml + RESOURCE_PREFIX "/qt-project.org" URI QmlRuntime.Config VERSION 1.0 ) diff --git a/tools/qmltime/CMakeLists.txt b/tools/qmltime/CMakeLists.txt index 7f896b7639..a9e472f4dc 100644 --- a/tools/qmltime/CMakeLists.txt +++ b/tools/qmltime/CMakeLists.txt @@ -19,7 +19,8 @@ qt_internal_add_tool(${target_name} qt_internal_return_unless_building_tools() # Turn the tool into its own self-contained qml module -qt6_add_qml_module(${target_name} +qt_internal_add_qml_module(${target_name} URI QmlTime VERSION 1.0 + NO_PLUGIN ) |