aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
Commit message (Collapse)AuthorAgeFilesLines
* QAnimationGroupJob: Don't call virtual functions from dtorUlf Hermann2021-01-222-23/+42
| | | | | | | | | | | | | The subclasses are already dead at that point. We don't need to notify them anymore. Rather, refactor the code so that we can clean up QAnimationGroupJob itself without virtual calls. Task-number: QTBUG-90401 Change-Id: I6917bf299ceb1383b9d29687e5bf53ae36803ecf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> (cherry picked from commit 75437f824d4c3a608af9eb1afddcb4d8c1a25944) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QQmlComponent: Avoid crash when setting initial properties in JS moduleFabian Kosmale2021-01-151-1/+2
| | | | | | | | | | | In a JS module, we lack a qml context. Thus, we have to check whether qmlContext is null. In that case we use the engine's scriptContext('s ExecutionContext) instead. Fixes: QTBUG-90245 Change-Id: I337e9c7cade472f52fc81c93d1152ff59f8018a5 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit e68b498424f63c1cb6151e4fc6bbc50bac584909)
* Doc: Fix broken QDoc markupPaul Wicking2021-01-051-2/+2
| | | | | | | | | | \code must be closed with \endcode. Fixes: QTBUG-89738 Change-Id: I0cadb14b6726a6fdc6c3fb773155066d30490e74 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 357e426d9849a048d3063030f2a1355f22c259e0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* JIT: When making memory writable, include the exception handlerUlf Hermann2020-12-183-6/+22
| | | | | | | | | | | | | makeWritable() rounds the memory down to the next page boundary. Usually we include the exception handler this way, unless the offset from the page boundary is less than the exception handler size. Make it explicit that we do want the exception handler to be writable, too. Fixes: QTBUG-89513 Change-Id: I2fb8fb0e1dcc3450b036924463dc1b40d2020c46 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 86a595b126bc6794380dc00af80ec4802f7d058c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QML: Fix proxy iterationFabian Kosmale2020-12-171-2/+6
| | | | | | | | | | | | If the target of a proxy was extensible, we did not set the iteratorTarget to its correct value, and thus the ForInIteratorObject would not be usable. Fixes: QTBUG-86323 Change-Id: Id1924ac4087bab38c006b8eba92b619b79d36b7a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit dd740d6b3469448dc1fd31c1742781e923e9f274) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QV4 Engine: Remove MSVC special casingFabian Kosmale2020-12-153-18/+2
| | | | | | | | | | | This patch removes a workaround for old versions of MSVC; we should be able to rely on the standard library nowadays. Original-patch-by: Alexander Neumann Fixes: QTBUG-89203 Change-Id: I8047565000fc7e4e3b8ac28584ff4a479b648274 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit fb4de27768935393744cbd67e9789d325e70e742)
* CMake: Disable static plugin imports for qml static pluginsAlexandru Croitor2020-12-101-0/+3
| | | | | | | | | | | | | There is no point in generating cpp files containing Q_IMPORT_PLUGIN() macro calls for qml static plugins. It causes unnecessary compiling of 10+ files for each such plugin. In a static Qt build, plugin imports should only be done for executables, tools and applications. Change-Id: I9d02ca9272a0765e2620cd8860afadd8546e3c37 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 4e7ee1279cad0f49483895c3237fd86a6359aedd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix occurrences of \Q_OBJECT in code snippetsTopi Reinio2020-12-086-73/+260
| | | | | | | | | | | | | | | 'Q_OBJECT', even in a comment, interferes with automoc. Prefixing it with a backslash solves the automoc issue, but documentation looks wrong as content inside \code is taken verbatim. Move code snippets to doc/snippets and refer to them with \snippet commands. Change-Id: Ied7fdf87ef5edd2b237498b91b162c19bf7bc636 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit ed6f55ca126c80514e886b3b400a22ba5d443589) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove unused functionVolker Hilsheimer2020-12-041-3/+0
| | | | | | | Change-Id: I7ee5187b4e17f2aba2788adfb47325f7a7020d69 Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit 628af504fced03c41269749634b830775412410d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qdoc warning, document macro parameterVolker Hilsheimer2020-12-041-1/+1
| | | | | | | | Change-Id: I60c3d9cc34bc658d5317da951cc1975990f27a9b Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> (cherry picked from commit e070e571d184b4f6eb1f065009aac0779d004f29)
* qmlfunctions.qdoc: Add QML_IMPLEMENTS_INTERFACESMaximilian Goldstein2020-12-041-1/+16
| | | | | | | Change-Id: I4ff76b49bd5f40eb58c9f44669bb4836dd9e48be Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 7b89ae6ef4158dcbd1940e088c84eba747c166bc) Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML engine: Fix binding setupFabian Kosmale2020-12-031-2/+2
| | | | | | | | | | | | We set QProperty bindings up in the wrong way: Parent components would overwrite their child component's binding. This patch reverses the order, fixing the bug. Task-number: QTBUG-87153 Change-Id: I3e90d1d14a41a7c5c337745f1453484d360a3979 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 96e321bc5cf3c1a6d52374a6f4070a438032b08d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Do not highlight "Writing QML Extensions with C++" exampleKai Koehne2020-12-031-2/+0
| | | | | | | | | | This is a more complex example that is also not that visually appealing. Change-Id: Ia5ebfa407c6bcbd3d701068384bfd660833a867c Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 86b9ae4da1be2f797f6d6762d870555ee8c893de) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't return reference to temporary QModelIndexVolker Hilsheimer2020-12-031-1/+1
| | | | | | | | | | Follow up on change in qtbase; QPMI casting to QModelIndex returns a value, not a reference. Change-Id: I227cd8ef64450986069837edee25512d9538286d Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 039c2801cfbd67e22da83f77375a06f7434b5c85) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix documentation for qmlInfo, qmlDebug and qmlWarningAndreas Buhr2020-12-021-18/+15
| | | | | | | | | | | | qmlInfo, qmlDebug, and qmlWarning are not in the QtQml namespace any more. This patch adapts the documentation. Task-number: QTBUG-88533 Change-Id: I7fafd3fc2769c5ffad515cacaacdc7ccbe07db46 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 815b347abe821664b2f8a4db53866826a639d6bc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix usage of oldcode and newcode in qt6-changes.qdocAndreas Buhr2020-12-021-2/+2
| | | | | | | | | | | There was wrong usage of \begincode and similar commands. This patch fixes it. Task-number: QTBUG-88533 Change-Id: I70b3d0104ba1dc8eb44556f35fc552e259317f88 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit ed098189d5809259378dc9a427a6fe6e303582ba) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Porting guide: Document URL resolution changeFabian Kosmale2020-11-301-0/+22
| | | | | | | | Task-number: QTBUG-88965 Change-Id: Ib62082935ddba7bf5b359a32712e6799b3242091 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit e2a74579850d89d229dad918404a8d8ecebb80b3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Fix resource object file paths in qml plugin prl filesAlexandru Croitor2020-11-301-2/+4
| | | | | | | | | | | | | | | Pass the new INSTALL_LOCATION argument to qt_internal_record_rcc_object_files to ensure correct paths to resource object files in plugin prl files. Amends 8a54a6fc2efd13f0310ec71793f624cdf28bd1c9 Task-number: QTBUG-87702 Task-number: QTBUG-88425 Change-Id: I539c29fd9745b8ed2ad063ac2a82e086efc22ef0 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit ce35f02b338fc74e72cd25cfad111dff9f6459f4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Shortcut conversions of common data typesLars Knoll2020-11-271-0/+59
| | | | | | | | | | | When returning the result of bindings, shortcut the conversion of common data types and do not go through QVariant. Removes ~20% of the overhead in the evaluation of simple bindings of types bool, int, double, float and QString. Pick-to: dev Change-Id: I0323cae12892b8ca52aedfe5e58a23e614a10d45 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Fix broken static plugins linkingAlexey Edelev2020-11-261-1/+1
| | | | | | | | | | | Restore prefix of generated qml files resources. Non-prefixed resource names break static linking of qml plugins. Amends 08eb485a006dc2baca42eb280ae60e9f0fc00dff Change-Id: Idb489536b9b863232300609ec595c6f5c29daf3e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit f16f477eba8415f9edfd5d4b220ab8a565051410) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Remove version numbers for import statementJerome Pasion2020-11-263-22/+21
| | | | | | | | | | | | -recommend using the import statement without versions for Qt 6.0 -update use of \qml snippet without \QtMinorVersion -some language change to be neutral about versions Task-number: QTBUG-87155 Change-Id: I3ac44f93aab3086c1a49de79ecc677beb4ef9180 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 72746ef0ad69d589de91f43aa2043d6e47745d68) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix documentation dependenciesTopi Reinio2020-11-261-1/+12
| | | | | | | | | | | - Add missing dependency to qtquick3d - Remove qtscript, qtquickdialog dependencies - Use multiline formatting to have a clean git history of dependencies Change-Id: If79df67ef14cce4156cd24042725e56654da4444 Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io> (cherry picked from commit 22852a84a7146e2b36c59731845cba1d0eb3c409) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Remove version numbers for import statementJerome Pasion2020-11-241-2/+2
| | | | | | | | | | | -recommend using the import statement without versions for Qt 6.0 -update use of \qml Task-number: QTBUG-87155 Change-Id: I555d582a13006c5abb6dc1e0266d2987ba79c6d8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 370fe537badd2b98c2da7f8918a15411d5aa67ad) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix crash when calling hasOwnProperty() on proxy objectRichard Weickelt2020-11-241-4/+6
| | | | | | | | | | | | Property pointer p needs to be checked for nullptr value in QV4::ProxyObject::virtualGetOwnProperty(). This can happen when calling hasOwnProperty() or propertyIsEnumerable(). Fixes: QTBUG-88786 Change-Id: I43da58fed4d8656f9187213f7317f17398739e34 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 9b321a34490cd17c0eb043b69bd7c9d8d8f513d5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Change generated resources namingAlexey Edelev2020-11-241-4/+1
| | | | | | | | | | | | Remove redundant 'target' prefix for generated resource name for qml files. It's expected that 'qt6_add_resources' will created resource targets prefixed with '${target}_'. Fixes: QTBUG-88581 Change-Id: Ie63fce11931a2cb566aa1902a77227ef86ca1ea8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit 08eb485a006dc2baca42eb280ae60e9f0fc00dff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Mark QQmlListProperty as a QML list in QMetaTypeFabian Kosmale2020-11-241-1/+6
| | | | | | Pick-to: 6.0.0 dev Change-Id: Icd92121bb65ffca1135c1ef69b90d8a8955c1df0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmlfunctions.qdoc: Add clarification to QML_FOREIGNMaximilian Goldstein2020-11-231-0/+4
| | | | | | | | Fixes: QTBUG-87150 Change-Id: If99a06a07892bdfef7b6b1e8fa737480750992fe Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit 56f428c360191230b571969a2651e85380030afa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* qqml.h: Add QML_IMPLEMENTS_INTERFACESMaximilian Goldstein2020-11-231-0/+4
| | | | | | | | | | | Needed in order to allow for the declarative registration of classes implementing interfaces. Fixes: QTBUG-88623 Change-Id: Id9c1ae92774dd9c316ceaa737cb48ef28f56545c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 87533900738d65ad278722b292852c998e987c10) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: mention that INCLUDEPATH must be set in some casesMitch Curtis2020-11-211-0/+8
| | | | | | | | | | Otherwise the generated type registrations .cpp file will not be able to include the sources. Change-Id: I7821c7674b4341546da2fc49e584bf10cc60b46f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 06c31f386f8664343debd219a522a8897df0f3ec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Porting guide: mention qmlDebug/Info/WarningFabian Kosmale2020-11-191-3/+3
| | | | | | | | Also don't mention qmlExecuteDeferred: That one is internal anyway (albeit not explicitly marked as such yet). Change-Id: Icef5fb4092b6a109613ae1f2e90fcff93d7c0b4b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QtQml: document qmlExecuteDeferred as internalFabian Kosmale2020-11-191-0/+3
| | | | | Change-Id: If3640ef5cbb6df4b199b481410e79e94ea763645 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove compatibility shim from qmlinfo.{cpp|h}Ulf Hermann2020-11-193-53/+19
| | | | | | | | | | | | We don't need to handle symbol clashes with QtQuick1 anymore. [ChangeLog][QtQml] The functions qmlDebug, qmlInfo, and qmlWarning are no longer available in the QtQml namespace. Use their counterparts in the global namespace. Fixes: QTBUG-88637 Change-Id: Ia74510bd711790cebf55de4cd668891712f6835e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Match qmake generated resource name for qmldir filesAlexandru Croitor2020-11-181-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When doing static builds, mkspecs/qml_module.prf embeds the qmldir file and any additional foo.qml files into a generated Qt resource file. The resource name is called qmake_<qml_plugin_uri>.qrc. In turn, certain Qt modules and plugins code call Q_INIT_RESOURCE(<qml_plugin_uri>) to initialize the resources. When Qt is built with CMake there were 2 differences. Because the resource files are not compiled into the static libraries but rather passed around as object files, there is no need to call Q_INIT_RESOURCE() anymore. The second difference was that the generated resource name for resources containing the qmldir file was '<qml_plugin_uri>_qmldir'. The differences in the CMake build caused issues when linking a QtQuick3D example project with a static Qt. That happened due to the mismatch of the generated resource name in the Q_INIT_RESOURCE() call. Unfortunately these calls can't be removed during the build system transition phase because that would break qmake Qt builds. To fix this, change the name of the CMake generated resource to match the qmake name. This avoids the undefined symbol errors during linking, but is actually a no-op! That's because the global initializer in the linked resource object file will be called before the manual Q_INIT_RESOURCE() call, effectively making the latter a no-op. Note there is one more difference regarding the CMake build. The Qt CMake builds creates 2 different resource files, one for the qmldir file (inside qt6_add_qml_module) and another separate resource for qml files (inside qt6_target_qml_files). qmake in comparison creates only one resource file for both. In practice this shouldn't affect or break anything, because even if there is no explicit Q_INIT_RESOURCE() call for the qml files resource, the global initializer will still be called from the linked in object file. An issue might happen if there are qml files, but no qmldir file, because then the qmake-required Q_INIT_RESOURCE() would not be called due to the missing qmldir resource (as generated by CMake). I think such a scenario is very unlikely if not impossible. Task-number: QTBUG-88425 Change-Id: Ib12d93d0dae52785ba8182db6829f03524723ca7 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Record resource object file information for static buildsAlexandru Croitor2020-11-181-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | After any call to qt6_add_resources we need to record info about the resource object files. These will be embedded into the appropriate prl files to ensure that any application built with qmake links in the resources (only relevant for static Qt builds). The implementation is a bit ugly, but it gets the job done for now. It checks for the existence of an internal Qt function in the public macros and calls it if it's available. That will only happen when doing Qt builds. For regular app projects the functions will not be called, but we don't generate .prl files for such projects either way. Note that this comes with the same limitation as described in the changes for fixing QTBUG-88425. Specifically, the functions will only record resource object files for targets built as part of the current CMake invocation (aka just one repo for non-top-level builds). This handles the most common issues, but is not a complete fix. Task-number: QTBUG-87702 Change-Id: If632fdf9867cec4b24b1c6136d23ee9d8b56e650 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qqmlproperty: Fix interfaceBinding crash on MSVC 2019Maximilian Goldstein2020-11-181-2/+6
| | | | | | | Change-Id: I4bb4a66b7ccca838e058962bbc297659b273c78e Done-with: Fabian Kosmale <fabian.kosmale@qt.io> Fixes: QTBUG-84416 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Replace 'file' with 'configure_file' in 'qmldir' generationAlexey Edelev2020-11-183-3/+43
| | | | | | | | | | | | | | | Collect content of 'qmldir' file that is generated by 'qt6_add_qml_module' and 'qt6_target_qml_files' functions, instead of write content to file immediately. Use 'cmake_language(DEFER CALL)' to call 'configure_file' write whole 'qmldir', when finalizing CMAKE_CURRENT_SOURCE_DIR scope. This way a reconfiguration will not rewrite the files, touch the timestamps, and thus needlessly rebuild. Task-number: QTBUG-88172 Change-Id: Idca68e4ceed13d0aa7eac443e769d5677557b880 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QQmlDirParser: Drop unneeded includeUlf Hermann2020-11-181-1/+0
| | | | | Change-Id: Iba9f99f0fcdb7692ceadaec223d82e425f1e424b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Porting Guide: Mention QQmlListProperty changeFabian Kosmale2020-11-171-1/+25
| | | | | Change-Id: I173e2ff05b3fc3bbe56df423abcbfc84bdc2a17a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* V4: Deal with AOT-compiled functions returning QVariantUlf Hermann2020-11-171-2/+11
| | | | | | | | In this case we need to pass a pointer to the return variant itself, not to its data. Change-Id: I86e468f106f29e1f1be8adee9882d465fd6da533 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QV4Engine: Fix conversion of char16_tUlf Hermann2020-11-171-1/+1
| | | | | | | | This is a single char16_t, not an array of them. Pick-to: 5.15 Change-Id: I55d23ebb5f2abebd43cd4160a75d373706392ddf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Do generate typeinfo qmldir entries for pure QML modulesUlf Hermann2020-11-161-3/+1
| | | | | | | | | | As we generated qmltypes files (albeit empty), we also have to advertise them in the qmldir files. Otherwise qmllint will complain, as that is a common mistake in old modules where qmldir files were written manually. Change-Id: I4c96610930d89558cd363b7f9db28ec6e21ed4d5 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* CMake: Allow building pure QML modules not backed by C++ sourcesAlexandru Croitor2020-11-124-21/+110
| | | | | | | | | | | | | | | | When no C++ sources are passed to qt_internal_add_qml_plugin (a pure QML module), create a C++ backed Qt plugin anyway. In such a case, generate a dummy plugin.cpp containing a QQmlEngineExtensionPlugin subclass. The class name is autogenerated from the QML import URI. The class constructor will call the qmltyperegistrar generated void qml_register_types_foo() function, to ensure the needed module versions are registered for the QML module. Change-Id: I19959dafdf0dc837c6037e7dc1d549b7420110a7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlEngine::captureProperty(): Don't capture constant propertiesUlf Hermann2020-11-121-1/+1
| | | | | | | That is a noop and produces a warning. Change-Id: I75787aee66b55522005247524140e3f3a7dd56ba Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use QDate::startOfDay() rather than QDateTime(,QTime(0, 0),)Edward Welbourne2020-11-121-3/+2
| | | | | | | | Makes no difference in this case, as it's UTC, but is terser and perhaps slightly clearer. Change-Id: I7de315def2f45ec4a12d2a682e5d1d7a4d0a3e6d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QtQml: Integrate sequences with registration macrosUlf Hermann2020-11-117-44/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | You get to write QML_SEQUENTIAL_CONTAINER(value_type) now, and qmltyperegistrar will generate a sensible registration call from that. A registration might look like this: struct MyStringListForeign { Q_GADGET QML_ANONYMOUS QML_SEQUENTIAL_CONTAINER(QString) QML_FOREIGN(MyStringList) QML_ADDED_IN_VERSION(3, 1) }; It's unfortunate that we need to use a metaobject to transfer all of this information, but there is no other sensible way. Transform the containers defined in qv4sequenceobject.cpp to use the new style, and move them out of the builtins, into QtQml. Recognize that only one of them was ever tested, and add tests for the rest. Task-number: QTBUG-82443 Change-Id: I3a30f9e27266bb575eea26c5daf5dad1ec461cc5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlPropery: Add seed to qHashFabian Kosmale2020-11-111-2/+2
| | | | | | | | As a driveby, enhance the hash function's properties by using qHashMulti. Change-Id: Id8add6047530f07ed44f50f46ffe68bb563fdd6b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add debug trace when a static plugin is loadedAlexandru Croitor2020-11-101-0/+5
| | | | | Change-Id: Icc4ff1f78bca75c59af1c2550fae15a2489a8bf1 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmltyperegistrar: Add past-major-version optionMaximilian Goldstein2020-11-102-0/+22
| | | | | | | | Adds the option to specify past major versions of modules to be registered. This is necessary for modules that don't export any types themselves to work when built statically. Change-Id: I4b4a379f92707ec64cbb32f91db9d010440b95a2 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
* Remove assert in QQmlPropertyThomas Hartmann2020-11-101-1/+0
| | | | | | | | | | The constructor for "font.capitalization" asserts Q_ASSERT(vtProp.userType() <= 0x0000FFFF). This was enough to trigger the assert: QQmlProperty property(text, "font.capitalization") Users are allowed to register value types. Change-Id: Ie10f22b7c9d70bd194cf72f287ec6d8d1ff8b028 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* V4 string object: Avoid some compile warningsUlf Hermann2020-11-091-2/+2
| | | | | | | | Assigning a plain char to QChar is deprecated. What we want here is the special Null character, though. Change-Id: I0f3cd56c8820fdf5afa40cf608e738e04163680a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>