| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I13304631a9870874fb130cd9e6598065fc952a71
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
The parameter is gone since 3bc239a0f16fb93f84def55a5980ef8561e7a7b4
Change-Id: Iae411b61f27efd60b489dbc219ef0ad07ad19938
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.1 6.0 5.15
Fixes: QTBUG-86482
Change-Id: If938fad22f51b08fe3cb20b94634efe46a1eed47
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The 2 is meaningless.
Task-number: QTBUG-85064
Change-Id: I9f140155d274c691b5eab1285d9b7153f9f93a87
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
The "2" is meaningless and there is a better name available now.
Task-number: QTBUG-85064
Change-Id: I65d26b06712ed7dcf2825f16dffaa6060dd86985
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
| |
You're not supposed to call the registration functions manually.
Pick-to: 6.1
Fixes: QTBUG-90718
Change-Id: I829800132484dea670657ed1679357fe58d0ddf9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
As part of adding qHypot() in qtbase, we now have a robust efficient
implementation of arbitrarily-many-parameter hypot(), so reuse it.
Change-Id: Iafd0eee84f3271c37003431a5f2b1a62d7ef6f86
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
Use noquote() for qqmlengine warnings.
Fixes: QTBUG-86595
Change-Id: Ibe161cb164b9fa2511e4bc02237de5d81172e114
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.0 6.1
Fixes: QTBUG-90038
Change-Id: Ic01b5d097e0b9e6720bcec7ccb18c22abb5418f4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
There is no need to extract the metatype id to know whether the type is
valid (aka != UnknownType). Moreover, as we already have a metatype,
there is no need to do the typeid -> metatype lookup.
Task-number: QTBUG-88766
Change-Id: I5f9512aa6e06b0d89be8d3cad970f12319dab156
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-89956
Change-Id: I96439433b1f172e933c6c56daae639be7e18b931
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Previously this just failed silently and returned garbage data.
Change-Id: Ia8b72836aa0ccfd50fd18b0f813c2bf3a00801c5
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This way it's fundamentally impossible to add the same animation job to
two different group jobs. The pointers are not exposed anymore and no
one can re-order the jobs.
Task-number: QTBUG-90401
Change-Id: Iebff4b64960c853915dd32714acd144fc5cdc00d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
setCurrentAnimation() can indirectly delete the animation group job
itself by invoking the animation controller. Use the RETURN_IF_DELETED
mechanism to avoid the resulting dangling pointers.
Task-number: QTBUG-90401
Pick-to: 6.1 6.0 5.15 5.12
Change-Id: Ibd0ad21e8d3af4760604c3ff37dc46101d5f49ad
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Without this, the properties of those types are invisible to tooling.
Change-Id: Iffd05643a650d03993d9fe1a3783fe3db8c33f0b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
amends: c0b59369ab45a78e4407633365a52c1a9255512c
Change-Id: If068443257baa0eaee31a43b94b2e0d0f7f554fe
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
We need to be able to resolve any QML type from its C++ name using
QMetaType::fromName(). qmltyperegistrar can generate the missing
metatypes, either by creating synthetic ones (for namespaces), or by
making sure the existing ones are registered (for others).
Change-Id: If775af56d891f2c2a5bb94589b3cb05a199c7c35
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As we already have the metatype of the property, we can use the more
efficient QMetaObjectBuilder::addProperty method which avoids a
name to metatype lookup.
Task-number: QTBUG-88766
Change-Id: Iab8c22556cb15d35337f266e533cb0d907232421
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
If the original type's ID is not valid, then QQmlMetaTypePrivate's ID is
also not valid.
Change-Id: Ia727e7dc99b1954b4c6fa9b599e8edc0ef9b3212
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
There is no reason to keep it in qqmlengine.cpp as it is declared in
qqml.h.
Change-Id: I0a0261b943c4a3b4333d7161becbd68ad4f1b21e
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change ensures that bindings created in QML between new-style
properties contain information about which property caused the loop. To
do this, we store additional information about the property involved to
retrieve its name and position at a later point. We print the warning in
case we detect a binding loop in evaluate, and also set the error
reporting callback correctly, so that the condition can be reported when
the loop is detected in another part of the binding evaluation.
In addition, we do not only set the QPropertyBinding's error member when
JS evaluation results in an error, but also print the warning with
qmlWarning.
Fixes: QTBUG-87733
Change-Id: Idb25237d1f57355ca31189e6bf2a918430b3a810
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Pick-to: 5.12 5.15 6.0
Change-Id: I6917bf299ceb1383b9d29687e5bf53ae36803ecf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
| |
They need to be accessible from C++.
Change-Id: I60f2213bdbe6b8b64856e13f1e0cc798f8a51086
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It makes little sense that you can construct an error object but not
throw it. The test was definitely meant to actually throw the error
object, not return it.
[ChangeLog][QtQml] QJSEngine has gained an additional overload to the
throwError() method, with the effect that calling throwError() with a
character literal as argument is now ambiguous. You should explicitly
construct a QString instead.
Change-Id: I90c6c9edf10509daa142a86581d6a3f7ff45af2c
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: I5f4334e8b55511c33eab52262239d5d2da2329ba
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Old API assumes sender == receiver, which results in wrong handling of
connections when receiver is deleted: connection is not removed or
notified elsehow as it's not really tied to a valid receiver
Task-number: QTBUG-86368
Pick-to: 5.15 6.0
Change-Id: I0f3115f1b0f26cf353752ba2b8fd88e0f3bdd388
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
You should not write qmltypes files manually. We only document their
existence and that you should add them to manually written qmldir files
now.
Change-Id: I434398656179806c3e57724324aba38738384e1d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
| |
Previously only the foreign type was searched for a create method.
Now the wrapping type can also contain it.
Change-Id: I05fb9e0c0a54c14530eb9adcae5a44df5c208be3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Instead, log them with qmlWarning.
Change-Id: Icde7397085841a84aca8a81c716d552c4cd4485a
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We special case writing functions to properties, only allowing assigning
them to var properties and QJSValue properties.
This would however break when aliases are involved. This commit fixes
the issue by resolving the alias, and then checking and writing to the
resolved property.
Fixes: QTBUG-90373
Pick-to: 5.15 6.0
Change-Id: Ia09ebe92feeaf8359c99ff9aeadc676b9fcfaa07
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-89977
Change-Id: I975a859d5252e2721475f86ced6c8dab06ae8c9c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
Remove all qmake project files, except for examples which are used to
test that qmake continues to work.
Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
This way we don't have to specially prefix the foreign namespace.
Change-Id: I0daa2fe3b8faa205c2c9dfb0f6b1984b2c8e7437
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
Using aliases in conjunction with Q_PROPERTY might cause some issues, so
we should warn about it.
Task-number: QTBUG-83950
Change-Id: I53db6848e3a7659e8b7ad93de70088cab6e53184
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
| |
After freezing a QQmlPropertyMap you cannot add any more properties, but
in turn the property access is cached, and therefore faster.
Task-number: QTBUG-57792
Change-Id: I2c6d768039c3b59eb2411194e463ee0de55f8bed
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only place where it was still used is QQmlOpenMetaObjecType. The
only effect of QQmlCleanup is that clear() is eventually called by the
engine. In the case of QQmlOpenMetaObjectType the only effect of that
was that the "engine" member was reset. However, the only place where
that member was used was in setCached(), and in that place it was
irrelevant. There is no reason why setCached() should be prohibited when
there is no engine. We may be worried that the property cache assigned
to the open metaobject might go away somehow if there is no engine, but
the cleanup mechanism clearly demonstrates that checking for the engine
on setCached() does not protect against this.
Fixes: QTBUG-90004
Change-Id: I05445eaeb53a64c70de366090ea2ee4aecf2bad8
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This avoid re-building the metaobject for every property added. As
rebuilding the metaobject is an effort linear in the number of
properties, the runtime when adding multiple properties via singular
insert() is quadratic in the number of properties. The plural insert()
rebuilds the metaobject only once.
Task-number: QTBUG-57792
Change-Id: I9513c4de047724e4141dab72aacfbdd840a3e465
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The QQmlPropertyMap should guard the keys before it passes them on to
QQmlOpenMetaObject, rather than getting called back through the virtual
createProperty() method.
Change-Id: Ie02ab02c4e27260222964c708c0f0917c8c6239d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qmlcachegen needs to see the qmltypes file for the current project so
that it can query it for C++ types exposed to QML.
This is only relevant when generating C++ code, which qmlcachegen itself
cannot do. However, in order to write a compatible drop-in, we need it.
Also, hide related ignored options from --help in qmlcachegen.
Change-Id: Id2f1b8b1750351c7de8dfe49e4065ef1b29423b7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|