Add a way to edit and view particles visually, as editing
only the properties in property editor does not help visualize
how the particle effect is going to look. Support toggling the
effects on/off, pausing, resuming, and scrubbing the time back
and forth. Only the selected particle system is animated to allow
concentrating on that particular system without being confused
by other possible particle systems.
Fixes: QDS-4623
Change-Id: I2677c56a73279d451d77df1d131bd7294e6b23bb
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
QQuickStyleItem crashes if componentComplete() is called.
Change-Id: I1df1b50f6ba95c0eda1ff8e18de85276a6de04f5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
For Qt versions below 5.15 and Qt 6 we can continue to use
the internal version.
Change-Id: Ia314fe9db323b0d5ea6acbb70bf1cb1098b4ae93
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Limit the depth of recursion. There can be cycles.
Task-number: QDS-3877
Change-Id: I10a1c7033b956244308e87aae6897f0040e0bc22
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.
Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
We have to ensure to properly call all Component complete handlers.
A single component usually has QQmlComponentAttached objects,
which we have to iterate over.
Therefore emitComponentCompleteSignalForAttachedProperty() is not correct.
Task-number: QDS-269
Change-Id: I4aed5d511f9f6e21f72efb955fc6db21b70e7c42
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The infinite recursion occurs because we call QFileInfo::exists()
even if no change/fix is done, if a file in a resource if actually
missing.
If fileName != fixedPath the ":" prefix has been replaced by an
absolute path and a new call to ::create will early reject.
Typically the directories do not match, so nothing is replaced.
This crashed without the fix.
With the fix we will always remove the ":" prefix
and therefore we do not try to handle the "fixed" case.
Even, a broken path that contains multiple ":" we would
only handle a finite number of times until all ":" are fixed.
Change-Id: Ie13cedc1212bb58a16c61e0137128539d189269d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
QML does not accept absolute paths (e.g. C:\working\something\) as urls.
We need the file:/// prefix.
Change-Id: I9df74cd9c0e730fba056af971751f8eb88cdb536
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
Problem was that a file added to resource it
wasn't shown in the canvas.
Change-Id: I57610db8a55791c409bd249d698bf757cde153b9
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
The code model knows about .qrc files and has a mapping
that we forward to the qml2puppet.
Support for .qrc was broken when introducing the QmlPrivateGate.
Change-Id: I22d1c1add65d0c9a914e471dbe51ef505f308494
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This reverts commit 74e863f867 as it
breaks compile with Qt5.4.
Change-Id: Ifce52a7790c4f40ce0ccd56a2daacc4d32fe3257
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
In Qt 5.6 we do not need to access the private API directly.
QmlPrivateGate is forwarded to the helper functions in Qt.
This removes direct dependencies to QML internals in qml2puppet.
Change-Id: I274cb306815824c988b6d79966f007298f6d1e60
(cherry picked from commit d6d0bd60357a41cd6c83b511fd30ab12157ed95d)
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
MetaInfo cannot depend on ObjectNodeInstance.
I forward the QObject and the QmlEngine all the way through.
The commented code in metainfo.cpp is about defining a context
for the root item. The feature is basically unused, but we can bring
it back using a callback later.
Change-Id: I8f099b06c848e2faeaafc011ac6bd313192a64bd
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
MetaObject cannot have a dependency on ObjectNodeInstance.
Instead we register a callback.
Change-Id: I9f6e096c67caf1abd525201c9bacd363d31a2fa2
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>