aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* QQuickAnimatorController: Remove declaration of non-existent methodsUlf Hermann2021-02-031-2/+0
| | | | | Change-Id: I1c63d617c1f7ac57d9efb5f66a34e51bf625ccb3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Drop QQuickAnimatorProxyJob::m_animationUlf Hermann2021-02-032-5/+4
| | | | | | | | Keeping it around is dangerous and we only need it in the ctor. Task-number: QTBUG-90401 Change-Id: I128be1a5cef394bbf4be1a7b0e6a4595f9b25968 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Animations: Drop checks for duplicate jobsUlf Hermann2021-02-032-19/+16
| | | | | | | | | | | We cannot return the same job multiple times from transition(). The calling code takes ownership of the job, and even retaining a pointer to it in the animation would be a problem. There are no animations that return the same job multiple times, though. Task-number: QTBUG-90401 Change-Id: I3a113c624a20dceee745cd6a4fca6f3634bdbdd1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlBind: support bindable propertiesFabian Kosmale2021-02-035-9/+158
| | | | | | | | | | | | This patch ensures that the QML Binding element can also save and restore C++ bindings. Should QQuickItem's x and y property be ported to the new property system, we'd need new test cases to verify that "old-style" bindings are still handled correctly. This task is however left for the change porting the properties. Task-number: QTBUG-90493 Change-Id: I506ffa1060ff32a7d722214e5ccd469bdaa61ff8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QQmlIRLoader: Actually load RequiredPropertyExtraDataFabian Kosmale2021-02-033-0/+24
| | | | | | | | | | | | | | | If a QML component wants to mark properties of its "parent" component as required, it can do so via required propertyName The information about those properties is stored in a RequiredPropertyExtraData data structure. This structure is already serialized to disk in the QQmlIRWriter. However, we neglected to restore it so far in the loader. Fixes: QTBUG-90538 Pick-to: 5.15 6.0 Change-Id: I789daff9bc881e4f35c942c77f5116b5284de81b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qmltyperegistrar: Fix handling of default propertiesUlf Hermann2021-02-023-26/+120
| | | | | | | | | Default properties are always local. There is no way to declare a default property for a foreign type as the default property is queried directly from the classinfo at runtime. Change-Id: I30efb6fba190957ac2a4ad86da437f209cd1f3ad Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove superfluous include directiveFriedemann Kleint2021-02-021-1/+0
| | | | | | | | | | | It is not conforming to the include conventions (module missing) and thus breaks the Qt for Python doc build. Introduced by 48b4c1f450109b148f03f62574d78b460859c4a1. Pick-to: 6.0 Change-Id: I1ff56a967c457f1909b7f6e2e430458e3a3f47c9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Make the internals of QQuickAnimatorController privateUlf Hermann2021-02-022-1/+6
| | | | | | | | | | No one should mess with those. All the pointers have complicated ownership semantics. We can just befriend the test instead of making it all public. Task-number: QTBUG-90401 Change-Id: I6c4adbab7046b40db7f4628780ef928445ea3eb2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix Math.round edge-caseAllan Sandfeld Jensen2021-02-021-3/+6
| | | | | | | | | Round 0.49999999999999994 correctly Task-number: QTBUG-90444 Change-Id: I0e8a19fb52540c6e976308089a782f1f472bc77f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add 'MANUAL_MOC_JSON_FILES' support by 'qt6_qml_type_registration'Alexey Edelev2021-02-021-1/+6
| | | | | | | | | | | Pass the 'qt6_qml_type_registration' function's 'MANUAL_MOC_JSON_FILES' argument to 'qt6_extract_metatypes', if specified. Align the 'qmltyperegistrar' test to modifications in the 'qt_manual_moc' and 'qt6_qml_type_registration' functions. Task-number: QTBUG-84906 Change-Id: I6b23526e1cc4633f55536871cbb7bc6d891f1dea Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove obsolete folders in qmlcompilerDavid Skoland2021-02-022-2/+0
| | | | | | | | | | These were only present because qmake wanted them, but since qmake is no longer supported in dev, these can be removed. Folders: QtBootstrap and QtQmlDevTools Change-Id: I0426b43590eb90f97453429a5d5baac035a7d3c4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* qmltyperegistrar: Do not add extensions to local anonymous typesUlf Hermann2021-02-022-10/+3
| | | | | | | | | If we generate a local anonymous type, then that's the local part of a QML_FOREIGN local/foreign couple. Any QML.Extended in there belong to the foreign type. Change-Id: Ic1706045eff03dd7b1b553240596ffc21818c8bd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* quickwidgets: fix build with -no-feature-messageboxNick Shaforostov2021-02-011-1/+3
| | | | | Change-Id: I51fb3064f12a0740434091ba696924090deaf839 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-011-2/+2
| | | | | Change-Id: I81ac79e033e5a5c2024363ef33659226571f7b8a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Doc: Fix documentation warnings for Qt QuickTopi Reinio2021-02-014-20/+16
| | | | | | | | | | | - Source code for several QML modules has moved, adjust documentation configuration accordingly. - Comment out \instantiates commands referring to internal/undocumented classes. Task-number: QTBUG-90439 Change-Id: I360c8a5c02c5a03b84c77010f399d1a0e36b1263 Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* QuickTest: Do not recurse forever on inline components in enumerateTestCasesFabian Kosmale2021-02-016-1/+132
| | | | | | | | | | | | | | | | | | | | In TestCaseCollector::enumerateTestCases, we visit the super compilation unit of QML tpyes to check if they might be instances of TestCase. However, in the case of inline components, the super unit is the current compilation unit, and we would recurse endlessly. This does not address the issue that an inline component might actually inherit TestCase. However, as this only affects the enumeration output and does not actually affect test execution, this is not that much of an issue. It should also be noted that the enumeration also fails in any case where TestCases are loaded dynamically (with a loader), so the method is not 100% accurate even in the absence of inline components. Fixes: QTBUG-90740 Task-number: QTBUG-90762 Pick-to: 5.15 6.0 Change-Id: I7e133d62c4f62fc46e9bd3999ff755f7ded3c386 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Allow for multiple extensions per objectUlf Hermann2021-02-0113-59/+227
| | | | | | | | | | | | | | | | | | | Previously, the assumption was that each object could only have a single extension object. As proven by the new qqmllanguage test this is not the case. Each registered object in the type hierarchy can have its own extension. Therefore, adjust the algorithms that generate qmltypes and iterate the extension objects when analyzing them. This leads us to the realization that anonymous types can in fact meaningfully carry extensions and implement interfaces. Adapt qmltyperegistrar accordingly. For the test to compile, however, we need to realize that the class declaring interfaces needs to befriend all potential subclass's QmlInterface structs. Fix that, too. The rabbit hole went deep. Change-Id: Ia451897e927e03b95c3062e829edf1dfcd216613 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Prefer qHypot() over sqrt(a sum of squares)Edward Welbourne2021-02-012-1/+2
| | | | | | | | | It's apt to be more accurate and may even be optimised. Comment on a benchmark where we could use Math.hypot(), but that would break comparison with Qt 5 results. Change-Id: I7c37dd3df82fdef18e7ebb0e1548198afd256faa Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Drop JavaScript root object members from builtins.qmltypesUlf Hermann2021-02-011-1593/+7
| | | | | | | | | | | | | | | | | | Those are not actually accessible from C++, and the description we had was incomplete and misleading. There was no way to know that the "Math" type, for example, was the type of a member of the global object called "Math", but the "float" type was not. Furthermore the types given for parameters and return values were only approximations. JavaScript's type coercion allows us to use a number of other types, too. There certainly is a place for a proper description of the global object, but such a description should be generated from the actual JavaScript root object as found in an actual QJSEngine. Furthermore, we do need better syntax to describe it. Change-Id: Ia573436df04ca967381e1e13dbd42a70bcc60979 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Use QDateTime as internal name for the builtin date typeUlf Hermann2021-02-011-17/+21
| | | | | | | | | | | | | | | | | | | | | The internal name serves as hint to the C++ class. This is the same as the internal name of url, for example. The internal name is not exposed to QML. So, from a language perspective, we can choose any name there. All the JavaScript methods of the Date prototype are not actually available on QDateTime. Due to the magic conversions the QML engine does in the background, much of them work in practice. Yet, when generating C++ code, we would need another conversion step to make them available. In order to express part of this, we introduce a second type for the JavaScript Date object. In the future we might link them via some "converts to" property. Then tools could know that creating a QJSManagedValue from a QDateTime (or QUrl etc) results in a richer API with additional methods. Change-Id: I13f66a37d985dbd3581d8bb84937adbbc31286fd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Drop widgets dependency from quicktestUlf Hermann2021-02-012-37/+2
| | | | | | | | | | | | | It was introduced for QtQuick.Controls 1 back when it was still called QtDesktopComponents. QtQuick.Controls 1 is deprecated and also doesn't use the widgets mode anymore. I can't think of any other use for it, but loading QtWidgets produces a number of unwelcome side effects in the tests. Change-Id: I4b7e53a9b906c428d84926302bf629b826d900c4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix cmake dependencies around qmltypes filesUlf Hermann2021-02-011-1/+8
| | | | | | | | | | | | qmltypes files are generated by qmltyperegistrar, and conditionally consumed by qmlcachegen. In turn, the C++ files generated by qmlcachegen must not declare any moc'able constructs as that would be a circular dependency via the metatypes.json files. Codify this condition as a SKIP_AUTOGEN property on the generated C++ files. Change-Id: Ied2ca6ad202dd20039bca9823ef1de4fffcf64d5 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* tst_qqmlecmascript: Adjust to QObjectCompatProperty change in qtbaseFabian Kosmale2021-02-011-2/+2
| | | | | | | Fixes: QTBUG-90786 Change-Id: Id05afbeb18b7c30246a29b95673a1319649f389f Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-02-011-2/+2
| | | | | Change-Id: Iaa526f4399a77d07e93a3fb7035334460ac1f5f0 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Move implementation of functions declared in qqml.h into qqml.cppUlf Hermann2021-01-292-74/+76
| | | | | | | | It makes no sense to have them qqmlengine.cpp. Change-Id: I138807c7650ec7aef4c6e8833e8bac8a6f179d1c Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* QmlCompiler: Generate AOT functions in same order as interpreted onesUlf Hermann2021-01-291-34/+71
| | | | | | | | Otherwise various internal indices may be off, in particular the internal classes. Change-Id: I3c2a6b8150590fc41ec55bf2dfbc989078ddce42 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QML value types: Properly apply the QML_EXTENDED trick everywhereUlf Hermann2021-01-291-0/+5
| | | | | | | Without this, the properties of those types are invisible to tooling. Change-Id: Iffd05643a650d03993d9fe1a3783fe3db8c33f0b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlCompiler: Retain anonymous types in qmlnamesUlf Hermann2021-01-291-0/+7
| | | | | | | | | Prefix them with $anonymous$ so that we cannot accidentally find them. If we don't keep them, they may be deleted when their last strong reference goes out of scope. Change-Id: I24ca795f9d9c4ecea074019db41a3ca0618f8e81 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Doc: Describe QML_FOREIGN in "Defining QML Types from C++"Ulf Hermann2021-01-291-0/+26
| | | | | | | | Fixes: QTBUG-83852 Change-Id: I8dd5fa6887ad607fe91ac658efa51152c46df36e Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Expose getter and setter names of C++ classes in qmltypes filesFabian Kosmale2021-01-295-2/+20
| | | | | | | | | | | This simply exports the name which are already available in the json files generated by moc. We do not consider whether the methods are non-private for now. MEMBER is not supported either, but might be added if the need actually arises. Fixes: QTBUG-90711 Change-Id: If3ee18c8ce60499676a7ee22df569cba0912e22f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-01-291-2/+2
| | | | | Change-Id: I65d06e9826e8134983dd3984c156abb54629829f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QQmlListModel: Don't discern between empty and null stringsUlf Hermann2021-01-281-0/+2
| | | | | | | | | If we store an empty, rather than null, string, the retrieval mechanism crashes when getting it out again. Therefore, always store a null string. Change-Id: I799293845dd2a72c04cbef3ed1dda68ea782e191 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-01-281-2/+2
| | | | | Change-Id: I1d9a55a98332ab85343a8dfb4f6e1830ea380867 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* QmlDebug: make qt_qmlDebugClearBuffer() accessibleTim Jenssen2021-01-271-1/+6
| | | | | | | - also fix that qt_qmlDebugMessageBuffer is always valid Change-Id: I3661e424ecaeb7d8c8bd3b1acb137ae34a3f06e4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Fix qdoc link warningNico Vertriest2021-01-271-2/+4
| | | | | | | | Path th qmllocalstorage missing in sourcedirs/headerdirs Task-number: QTBUG-90412 Change-Id: I8971e7c569e2ce3bb2c763178af6f1b546b3dc41 Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
* V4: Store instruction pointer before CmpInUlf Hermann2021-01-273-0/+15
| | | | | | | | The "in" operator may throw an exception. Change-Id: I7d0b6e2212ac6ec237fbf14719349f8e23810028 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-01-271-2/+2
| | | | | Change-Id: I8cf02c42a47da0888f77ea8331328f47410fc608 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix compilation after subpixel handling changes in qtbaseFabian Kosmale2021-01-274-5/+6
| | | | | | | Change-Id: Ife394e660274dd9dbe17207e18c5024f90628a00 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-01-271-2/+2
| | | | | Change-Id: I56945735e4a77b325998fbdb9c0cb6379fd24395 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Make the nameFilters test resilient to file system changesVolker Hilsheimer2021-01-262-4/+4
| | | | | | | | | | | | | | | | | | | | The test failed reliably when the directory in which the test started had the same number of files as the directory that the test wants to read. That's because the QTRY_COMPARE matches immediately and doesn't process events, which leaves queued signal emissions pending. So, count tests passed - for the wrong reason - and follow up tests failed. To make the test robust, start with an invalid directory, which we know is empty. Once switching into the test directroy, the test will have to process events. Remove the BLACKLIST file. Fixes: QTBUG-90468 Change-Id: I9b3c4dc1a15b0b5ab6c632c12752b038164b9d9d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQuickWindowIncubationController: Use QPointer to guard QSGRenderLoop referenceMike Achtelik2021-01-261-3/+3
| | | | | | | | | | | | | | In some cases, when the QGuiApplication is shutting down while there is an active QAnimationDriver and an incubating object, the QQuickWindowIncubationController will try to access an already destroyed QSGRenderLoop. So use a QPointer to guard the QSGRenderLoop access. Fixes: QTBUG-90489 Pick-to: 5.15 Pick-to: 6.0 Change-Id: I528e06ff22dfcad804593db6771d9163b21808f4 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* fix not initialized enum error valueTim Jenssen2021-01-261-1/+1
| | | | | | | amends: c0b59369ab45a78e4407633365a52c1a9255512c Change-Id: If068443257baa0eaee31a43b94b2e0d0f7f554fe Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlCompiler: Return after importing a scriptUlf Hermann2021-01-264-1/+10
| | | | | | | | If we don't return there, the newly imported script is promptly overwritten by an invalid module. Change-Id: I788a7275e2c190a20c176da35f5c76ac9f6ad02b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* qmllint: Complain if member access check fails for namespaced typesUlf Hermann2021-01-263-13/+43
| | | | | | | | Before, we would prepend the namespace to the name, but then continue right away, never checking the new name. Change-Id: If90db7d33536fb4b549321c2d6b677040605b6f0 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QDeferredSharedPointer: lazy-load to determine isNull()Ulf Hermann2021-01-261-16/+42
| | | | | | | | | | | If the content is not loaded, yet, the data is always null. If it is loaded, the result might be null. So, in order to know, we have to load. The same holds for deferred weak pointers, the hash functions, and the equality operators. Change-Id: I20eec58efe5da604187c34578ee40f769090c910 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlJSTypeReader: Guard against empty JS filesUlf Hermann2021-01-264-9/+21
| | | | | Change-Id: Ie52ce15b7fa960ce84a6d17a21a0e307a38c726e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Qt.labs.sharedimage: Mark as non optionalMaximilian Goldstein2021-01-261-1/+0
| | | | | | | | | | This plugin cannot be implemented in an optional way until we create a better way of handling image providers. Task-number: QTBUG-84639 Change-Id: I1eafaa08187bbd566a9da14f39836ea70a1776f9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Avoid string/ascii conversion warnings in qwavefrontmesh.cppUlf Hermann2021-01-261-11/+27
| | | | | Change-Id: I49bf672bf22c5ad9cc53c865e9aac4c5e7cec7f7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Allow AOT compiled functions to set the instruction pointerUlf Hermann2021-01-262-2/+8
| | | | | | | | This way we get correct line numbers in error messages. Change-Id: Ieb642523f74adf73955e78cdfb8cb2faee40b321 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update dependencies on 'dev' in qt/qtdeclarativeQt Submodule Update Bot2021-01-251-2/+2
| | | | | Change-Id: I3c408ac44fcdc67e7ffa0bc2e89e86391226bcf2 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>