aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* QtQml: Move ResolvedTypeReference into base CUUlf Hermann2024-01-138-78/+101
| | | | | Change-Id: I25063457aad3a6d29a8c2a5b236f9a51b56a2f51 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Move BindingPropertyData into the base CUUlf Hermann2024-01-136-16/+25
| | | | | Change-Id: I2edcb2c324919a1131ae490bee9c9b1140097b09 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Move inlineComponentData and icRootName into base CUUlf Hermann2024-01-139-58/+81
| | | | | | Change-Id: I89e44644b083681f069d1d7a385bec68b4bfd80b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Don't run automoc on *_qmlcache_loader.cpp generated filesDavid Faure2024-01-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Without this, CMake would warn: Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files. Run "cmake --help-policy CMP0071" for policy details. Use the cmake_policy command to set the policy and suppress this warning. For compatibility, CMake is excluding the GENERATED source file(s): "<builddir>/.rcc/qmlcache/myfile_qmlcache_loader.cpp" from processing by AUTOMOC. If any of the files should be processed, set CMP0071 to NEW. If any of the files should not be processed, explicitly exclude them by setting the source file property SKIP_AUTOMOC: set_property(SOURCE file.h PROPERTY SKIP_AUTOMOC ON) Pick-to: 6.7 Change-Id: Ifd1bad613ab21f5e2de2c42281e8c3261e2cfb03 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove the use of Q_QML_PRIVATE_EXPORTAlexey Edelev2024-01-1192-267/+267
| | | | | | Task-number: QTBUG-117983 Change-Id: I5790f01d614cd70c7fcc9bd817ec6ace3f3e3730 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove the use of GENERATE_PRIVATE_CPP_EXPORTSAlexey Edelev2024-01-111-2/+1
| | | | | | | Task-number: QTBUG-117983 Change-Id: I584116bfd4d47deca914910b712c2ea3295f3e7f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add doc for gc()Tasuku Suzuki2024-01-113-2/+14
| | | | | Change-Id: I920acf76846bece462b518239fc4c068a0fad8c1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Put the QML plugins to the non-config directoryAlexey Edelev2024-01-111-0/+31
| | | | | | | | | | | | | | | | | | | | The generated qmldir files that are used by QML engine specify the relative path to the QML plugins that are build within modules. So it's usually expected that plugins are located on the same level as the qmldir files. In Multi-Config builds all libraries are located in the build-specific directories by default. In this case QML engine is unable to locate the plugin and the application cannot be run without extra manual steps. This fixes this issue, by using the top-level plugin OUTPUT_DIRECTORY for the "default"(first) config as RUNTIME/LIBRARY_OUTPUT_DIRECTORY. In Windows platforms we need to make the same for non-static backing libraries, since we cannot rely on RPATH there. Task-number: QTBUG-99061 Pick-to: 6.2 6.5 6.6 6.7 Change-Id: I51a8864743b87fd6ec4ba7179e13f311c5bee403 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Extend the Q_IMPORT_QML_PLUGIN documentationAlexey Edelev2024-01-111-2/+14
| | | | | | | | | | | Add the explanation what is PluginName and how it's computed when using the modern QML API. Fixes: QTBUG-119372 Pick-to: 6.2 6.5 6.6 6.7 Change-Id: I7346f7b7f82c717ee79b07f4dcec0c0d1dc733b2 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* QtQml: Clear stale compilation units more thoroughlyUlf Hermann2024-01-114-18/+57
| | | | | | | | | There are various places where we can still hold references. Clean them up when asked to do so. Also, free unused types and caches outside the type loader mutex, and only once on engine shutdown. Change-Id: Iae77cd6f50ad847d29a7eae4ac5c7c1c2524065d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Move creation of ExecutableCompilationUnit into engineUlf Hermann2024-01-118-24/+39
| | | | | | | This is in preparation for letting the engine cache the executable CUs. Change-Id: Ideac10d8dda0784b41304b58f9b9fbd106173ea6 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Remove QQmlTypeLoader from QQmlImportUlf Hermann2024-01-1121-147/+210
| | | | | | | | | The type loader belongs to the engine and we must not store it in engine-independent data structures. We do want the import cache to be stored in the type registry, though (in a separate change). Change-Id: I2828f5098b27bf1fc96852fc2bd160db44b109e7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Do detour through the CU for building property cachesUlf Hermann2024-01-111-1/+8
| | | | | | | | | | | | | This partially reverts commit bf2258e6f44f1279eee5e9c2dd595c5dd2020784. When building property caches we have to take the possibility into account that the QQmlType we have at hand is from a different QML engine. We therefore have to double check with our own QML engine. Pick-to: 6.7 Fixes: QTBUG-120189 Change-Id: If3b53a14b767f464318a61ed15d62077efd6bf61 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QtQml: When clearing the type loader, also clear any pending eventsUlf Hermann2024-01-103-0/+23
| | | | | | | | | | The events typically hold references to the data blobs they want to notify about. Those will prevent such blobs from getting cleaned up. Since we are explicitly asked to clear everything, we should also clear those. Change-Id: I476b071d78555a561396181128f2e915df13aeee Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Get rid of the module mutexUlf Hermann2024-01-1010-85/+129
| | | | | | | | | | | | | It only exists so that the type loader can query pre-compiled and native modules from the loader thread. However, the type loader already has a mutex of its own. We can use that to inject a "native" blob into its script cache for the same effect. We need to get rid of the mutex so that we can use the module map for other compilation units, too. Change-Id: I5a9c266ea36b50f5ea69214110def644f7501674 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Always link executable CU on creationUlf Hermann2024-01-1017-206/+243
| | | | | | | | | | | | | | | We don't want floating unlinked executable CUs. They should always be tied to an engine, and the engine should not change. This gives us one definite point where to register them with the engine (to be done in subsequent change). Unfortunately, due to the refcounting, we need to remove the engine from any still-referenced CUs when the engine itself is destructed. We will be able to drop the refcounting and make the engine fully own its executable CUs once we can hold base CUs in most places. Change-Id: I9a53e83d5c4746c2b2bca896b51baa4fe7fee757 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Make base CU a member of ExecutableCompilationUnitUlf Hermann2024-01-1018-111/+153
| | | | | | | | | | | | We want to re-use the base compilation unit across engines. For that to work it cannot be a slice of the engine-specific ExecutableCompilationUnit. Since CompiledData::CompilationUnit is refcounted on its own now, make it unmovable. Change-Id: I8418c9754d7a07e5210c1e7a7fc69355e1d57807 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Clean up QIntrusiveListUlf Hermann2024-01-091-183/+102
| | | | | | | | | Allow const iteration and move all the functions inline so that it becomes more readable. Change-Id: I0c7c9f6607519f842c86476dd6d7dfba65a38575 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Compiler: Guard against null dereference when ignoring function returnOlivier De Cannière2024-01-091-7/+9
| | | | | | | | | | | | | | | | | | | When a function is called, two arrays with the necessary information are passed to the engine: argv: [return address, prameter 1 address, parameter 2 address, ...] types: [return type, parameter 1 type, parameter 2 type, ...] When the result of the call is ignored, the return type is set to void and the return address to null. A check for this null value was missing leading to a null derefence. Amends: 4f1b9156a48e44cf1f127a4563d0ac69ab436f12 Fixes: QTBUG-120336 Pick-to: 6.7 Change-Id: I4a21779f3276b0143087b41b0d16c0cd3ba0e7db Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove the use of Q_QML_COMPILER_PRIVATE_EXPORTAlexey Edelev2024-01-097-17/+15
| | | | | | Task-number: QTBUG-117983 Change-Id: I717bf43032e72ec743f238ac48935a3019f1879d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use base stack pointer directly returned from VxWorksKrzysztof Sommerfeld2024-01-091-7/+0
| | | | | | | | | Remove the `decrementIterator` function usage to calculate the base stack pointer, because it calculates invalid base stack pointer for VxWorks - VxWorks provides valid base stack pointer which doesn't need additional calculation. Task-number: QTBUG-115777 Change-Id: Ib9d133bb0a3e10c0f0a11f8831ea540741c935c7 Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* ExecutableAllocator: Use non-recursive mutex againFabian Kosmale2024-01-081-1/+1
| | | | | | | | | | | Amends/parially reverts 4bac72aa13e6818460f6b71127d3af5bd7e00ca5, which replaced recursive Qt5 mutexes with QRecursiveMutex – but ExecutableAllocator used QMutex::NonRecursive, so this instance was misguided. Pick-to: 6.7 6.6 Change-Id: I33fd9e903b8861a7907bc8bde7632045198ef5c7 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtQml: Move engine-specific data out of base compilation unitUlf Hermann2024-01-087-68/+54
| | | | | | | | | | We want to re-use the base compilation unit for different engines. To do that, we cannot have data in there that belongs to a specific engine. Pick-to: 6.7 Task-number: QTBUG-120189 Change-Id: I8e43e7ec6c1cd33249dc4ed15fec16babc6d06fb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qv4codegen: Do not call functions on null objects inside optional chainsOlivier De Cannière2024-01-081-1/+1
| | | | | | | | | Amends: 86c48761dc7ba5bcac7dc6740e94efbfb8678403 Fixes: QTBUG-120504 Pick-to: 6.7 Change-Id: Id77236a07d7c1a16e2f60238909eff245c5c354a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Make QQmlNullableValue somewhat saferUlf Hermann2024-01-082-14/+67
| | | | | | | | We need it movable, and you shouldn't be able to poke its internals. Change-Id: Ia9fbde26ef525837402d9214aa534eeec0221e2f Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QtQml: Pass Codegen::Reference as referenceUlf Hermann2024-01-082-2/+2
| | | | | | | | | Despite its name, it's really large. Coverity-Id: 434159 Change-Id: I7ccdfbdf0582edd13011d89dbb50a17ea1455637 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Doc: Fix linking issues and missing QDoc commandsTopi Reinio2024-01-0610-25/+26
| | | | | | | | | | | | | | | Fix multiple incorrect \l (link) command arguments that were not captured by documentation testing in CI. Add missing \endqml and \endcode commands to code snippets. Convert \sa commands that are meant to be related to specific \section commands into manual 'See also' paragraphs. Otherwise, they are listed at the bottom of the page. Pick-to: 6.7 Change-Id: Icf2a97f63b8b8cdec2d9398448d28759dabdb06b Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
* doc: add read-only-property warning in qmllint warningsSami Shalayel2023-12-291-8/+20
| | | | | | | | Add description of the warning and an example on how to fix it. Task-number: QTBUG-111137 Change-Id: I7ec0f77ac21d8fb6146a38f43977de0ef604af7c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* doc: add signal-handler-parameters warning in qmllint warningsSami Shalayel2023-12-291-3/+237
| | | | | | | | Add description of the warnings and examples on how to fix them. Task-number: QTBUG-111137 Change-Id: I7a1423a077929c3036ada8581b7c0a37f496d7ab Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qqmljs.g: use canonical form for recovery optionsSami Shalayel2023-12-291-12/+12
| | | | | | | Rename the properties to control recovery to use the canonical namings. Change-Id: I7f05a3ad95baa54d7a374391ae2bfb1d48db4789 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmlls: adapt parser for attached/grouped properties completionSami Shalayel2023-12-291-0/+21
| | | | | | | | | | | | | | | Add a recovery mode to the parser to accept bindings that are not completely written out, and create an empty statement for that. This mode is called enableIncompleteBindings and is only enabled for qmlls. Also adapt qqmldomastcreator to those empty statements, and qmllsutils. Pick-to: 6.7 Fixes: QTBUG-120169 Task-number: QTBUG-92876 Change-Id: Ic24cbb61e3be08368027371e377bf75ce87fafb1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix build with -no-feature-networkTasuku Suzuki2023-12-261-1/+1
| | | | | Change-Id: Ib21012301da6afb5458f707b39a9a8079d93eb93 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Revert "Revert "Add the explicit CMake dependencies between QML module targets""Alexey Edelev2023-12-221-2/+39
| | | | | | | | | | This reverts commit dae1f74d8ac83b31fea500c99573dbd0af6d8907. Reason for revert: Fixed the issues in qt submodules. Change-Id: I972b5825e12cdbf919c193ec5726836ca618fe38 Reviewed-by: Kai Köhne <kai.koehne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Revert "Add the explicit CMake dependencies between QML module targets"Kai Köhne2023-12-201-39/+2
| | | | | | | | | | | | This reverts commit 8a238c0ab8a8c6ad3851315193c118e859b6da7a, as it caused configure issues in qtcharts, qtquick3d that need to be figured out first. Change-Id: I0544d57f15e0c8613300edacc97c3505a986dc69 Pick-to: 6.7 Fixes: QTBUG-120279 Fixes: QTBUG-120282 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QtQml: Do not poison the type registry with unfinished enumsUlf Hermann2023-12-203-124/+88
| | | | | | | | | | | | If a composite type is not ready, yet, and we request its enums, we should not cache the result. To facilitate this, deduplicate the surrounding code and centralize the call to initEnums(). Pick-to: 6.7 Fixes: QTBUG-120084 Change-Id: I8386a3b44010a39470e886e93c5c64bfedac0b95 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Do optional chain finalization also on string-y element lookupUlf Hermann2023-12-201-0/+1
| | | | | | | | | | Amends commit 86c48761dc7ba5bcac7dc6740e94efbfb8678403. Pick-to: 6.7 Fixes: QTBUG-120168 Change-Id: I5848d8394498bafb1e897eca865d405224eaf997 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* qmlls: add option to disable cmake-callsSami Shalayel2023-12-201-1/+1
| | | | | | | | | | | | | | | | Add option to disable cmake calls via commandline arguments, environment variable and settings file. Also fix the qmlls.ini generation script to include a line with no-cmake-calls=false. Picking back to 6.7 because the cmake call feature introduced in 6.7 might break stuff, so it should be easily disableable. Pick-to: 6.7 Fixes: QTBUG-119953 Fixes: QTBUG-119565 Change-Id: Ic3f2e369172aef430c52a98c1713e46b598a4f21 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Long live incremental garbage collection in QML!Fabian Kosmale2023-12-2018-125/+646
| | | | | | | | | | | | | | | | | The design of the garbage collector is described in src/qml/memory/design.md. The gc and gcdone test helpers are adjusted to drive the gc to completion, even when in incremental mode. Parts of tst_qv4mm and tst_qqmlqt need to run with the incremental gc disabled, as they call gc inside QML and assumes that the GC finishes before returning. Initial-patch-by: Rafal Chomentowski <rafal.chomentowski@ge.com> Task-number: QTBUG-119274 Change-Id: I1d94f41bc7a434fad67de0fd46454b6db285f2eb Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add the explicit CMake dependencies between QML module targetsAlexey Edelev2023-12-191-2/+39
| | | | | | | | | | | | | If QML modules are built in the same build tree, and one depends on another according to the DEPENDENCIES argument, we need to add the explicit CMake depdencies between their targets. This is required since the targets that use those QML modules not necessarly have explicit dependencies on their QML DEPENDENCIES. Pick-to: 6.5 6.6 6.7 Change-Id: Ibaf07c63a44b5e3a9f0b73136b5b0c00cd3352b3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QJSValue: convert more aggressively to QVariantFabian Kosmale2023-12-193-18/+38
| | | | | | | | | | | | | | | | | | | | | | | Normally, we don't want to convert aggressively between JS objects and QVariant, as that is prone to losing information. However, QJSValue::toVariant is documented to attempt lossy conversions. Restore the behavior of Qt < 6.5.3 for it. This is done by replacing the boolean indicating we should wrap JS objects into QJSValue with an enum instead. That enum introduces a third state ("Aggressive"), which is only used for QJSValue::toVariant. All other users of QJSEngine::toVariant behave as before (post 6.5.3). Function objects are still not converted, as we know that this would be a futile attempt, and more importantly, to keep the behavior that existed before Qt 6.5.3. Amends 43077556550c6b17226a7d393ec844b605c9c678 which introduced the regression and afe96c4d633146df477012975824b8ab65034239 which fixed the issue only partially. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-119963 Change-Id: I07d9901437812579ac5b873a4dff4de60c8f617e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QJSValue: document that isUrl only returns true for JS URL objectsVolker Hilsheimer2023-12-181-1/+4
| | | | | | | | | | | | It does not return true for a QJSValue that carries a QVariant with a QUrl. However, on the C++ side the caller will want the URL value anyway as a QUrl, and in both cases, going through the QVariant works for that. Fixes: QTBUG-119794 Pick-to: 6.7 6.6 6.5 Change-Id: I90fd4a1a27d4dd4758b1060205ce2aeec730eb72 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Remove superfluous curly bracketPaul Wicking2023-12-181-1/+1
| | | | | | | Fixes: QTBUG-119640 Pick-to: 6.6 6.7 Change-Id: I88256e47b835154aae3974d3d717e6468b8497ba Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* CMake: Add a way to pass additional arguments to win/macdeployqtJoerg Bornemann2023-12-172-0/+5
| | | | | | | | | | | | | [ChangeLog][CMake] Added the DEPLOY_TOOL_OPTIONS argument to the function qt_generate_deploy_qml_app_script. It doesn't make sense to map every option of the deployment tools to arguments in our CMake deployment API. Allow the user to specify extra arguments to windeployqt or macdeployqt. Task-number: QTBUG-116551 Change-Id: Ib2589548492fdfb4b44ed7241275567c4bd48f2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix the all_qmllint* targets for VS generators, take IIJoerg Bornemann2023-12-151-26/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the VS generator, the foo_qmllint targets were run on every build, which is neither expected nor wanted. The reason for this is a pecularity in MSBuild and as a reaction to this, special behavior of CMake: add_dependencies(A B) will enable B in the default build of the solution - even if B is not triggered by the ALL target. See upstream CMake issue #16668 for details. We now work around this problem by building foo_qmllint with "cmake --build" in the COMMANDs of all_qmllint. As a consequence, we must create all_qmllint, all_qmllint_json, and all_qmllint_module at the end of the project directory scope. Since we now require cmake_language(DEFER CALL), users who generate VS projects with CMake versions older than 3.19 will see a warning that the all_qmllint* targets cannot be created. The VS installation comes with a recent enough CMake version (on my machine it's 3.26.4), so this should not be a problem. [ChangeLog][CMake] When using CMake's Visual Studio project generator, the creation of the targets all_qmllint, all_qmllint_json and all_qmllint_module requires now CMake 3.19 or newer. A warning is printed for older CMake versions. This warning can be disabled by setting QT_NO_QMLLINT_CREATION_WARNING. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-115166 Task-number: QTBUG-115166 Change-Id: I0bd704caa3f36cfda739425c2126a0ec7ac4f85e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QtQml: Hide warning about cyclic dependencies between singletonsUlf Hermann2023-12-151-3/+3
| | | | | | | | | | Those are wrong most of the time. Since our dependency tracking is too coarse we cannot properly tell if this is an actual cycle. Pick-to: 6.7 Fixes: QTBUG-117827 Change-Id: Ib6779d6e1b04137119009ded5452157c09cfadc1 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* qmllint: Add response file supportAlexandru Croitor2023-12-141-12/+58
| | | | | | | | | | | | | Adapt CMake code to use a response file instead of a long string of arguments when calling the various qmllint targets. Avoids long command line errors on Windows. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-119675 Change-Id: I49041ffff2724fb36b8127b2a08127a9b740db7d Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QML: Don't crash when calling coerceAndCall() with null thisObjectUlf Hermann2023-12-081-2/+5
| | | | | | | | Pick-to: 6.6 6.5 Fixes: QTBUG-119395 Change-Id: I5877beef9a53d358a6f58f9ce5029688bd9dcedb Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Fix description on how to load the extending-qml sourcesKai Köhne2023-12-081-10/+11
| | | | | | | | | | | | | The tutorial is not a qdoc 'example' anymore , and therefore also do not show up in the Qt Creator welcome screen. While at it, also remove the version from the QML import snippet. Task-number: QTBUG-119663 Pick-to: 6.6 Change-Id: Ib32b6fc9a4c80001f6ab30d8f38bce129e5209a0 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Use QtDeployTargets.cmake for deploying QML pluginsJoerg Bornemann2023-12-071-15/+22
| | | | | | | | | | If QtDeployTargets.cmake contains information for a QML plugin, use it to deploy the correct file. Fall back to the old file name heuristics if the information is missing. Change-Id: If3820cf10530b1944dc00b1724a3ea276b25131e Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Deploy runtime dependencies of QML pluginsJoerg Bornemann2023-12-071-0/+10
| | | | | | | | | | | | | | | On Windows, we only deployed the Fooplugin.dll of a QML module Foo. The backing library was missing. The reason was the file path heuristics we employ that looks for '/Fooplugin.*\.dll'. That doesn't take into account the backing library. Now, we use the QtDeployTargets.cmake information that is generated on project configuration and deploy the DLLs that are used at runtime. Pick-to: 6.5 6.6 Fixes: QTBUG-117948 Change-Id: I6d26405814ca2bc66bfa308cf4d23e42cbbfeb7f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>