Use the normal CMake mechanism for finding either Qt 5 or Qt 6, instead
of relying of the mapping from Qt 6 to Qt 5 that is done via the custom
FindQt5.cmake.
As long as FindQt5.cmake still exists, we better assume that Qt5_VERSION
could be >= 6.0.0 though.
Change-Id: I3d095208e1608da46fe81d4db166aa0cd99c7326
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Since qmlpuppet is also used as QML runtime for the preview
QML debug channel this should be enabled in every build.
Change-Id: I0f9c10f1adf24f3db7da2389aa8a72e14b25433d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Use the normal CMake mechanism for finding either Qt 5 or Qt 6, instead
of relying of the mapping from Qt 6 to Qt 5 that is done via the custom
FindQt5.cmake.
Change-Id: Ia9a17d82edfb2f27e10918f05ce8a0d34d9bb5f8
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
When setting an expression in a state then the revert list is not properly
managed. Therefore we have to temporarily enter the basestate
to set the expression.
Task-number: QDS-7801
Change-Id: I4f653e83db4a2d05b1cc0b67d22581cee84557ff
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
QQuick3DGeometry::updateSpatialNode can create QSSGRenderGeometry
object with exact same address as a previously created and subsequently
deleted QSSGRenderGeometry object (i.e. the memory location is reused).
If the previous node was not used for the exact same logical geometry,
then you get these artifacts, as QSSGBufferManager uses
QSSGRenderGeometry object pointers in QSSGBufferManager::loadRenderMesh
function to determine if it needs to reload the geometry and what
geometry gets used for each model. The cache still contains data for
the deleted node, which is then matched for the new node with same
address.
This workaround ensures that none of our selection box geometries will
have the same generation id with each other or any grid geometries
we create, and thus will never get improperly matched in
QSSGBufferManager cache.
Fixes: QDS-8843
Change-Id: Ib064e4c290cca37258e8f129b0f385d2c45f581e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Currently the value types of e.g. layer.textureSize and layer.sourceRect
are only resolved for QML Item, but not QML Control. This patch
increases the recursion depth while collecting the attributes of values
types in order to be able to set layer.textureSize.width or
layer.sourceRect.x.
It also adds those attributes to be able to read the values.
Change-Id: I61ba1468d1443953f0a5b6ab2241114dc441bb79
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Property name was changed on creator side when aux property handling
was refactored, but corresponding change was not done in puppet.
Change-Id: Iba21661908d6c46d7f586c18f0d34fcece597c9a
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Specifies the main purpose more clearly. The remaining ones a "true"
(internal) variants in models and as action data.
Change-Id: I8dd3c846e419f29d88283c2f48268ef6685b19fe
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This adds a checkbox labeled "Design Studio style project" to the
Wizard. With that selected, the project is generated via the "General /
Empty" templates of QDS with Qt 6.2 as target Qt version, 1920x1080 form
size, the "Material" QtQuick.Controls style ("Light" Theme) and CMake
project format.
At the same time, the preexisting QtQuick Application wizard in Qt
Creator now also focusses on Qt 6.2 and CMake. TS file generation is
removed for now, can be added later, but then using the i18n setup
feature of QQmlApplicationEngine (instead of a QTranslator in main.cpp).
The wizard now focusses on the QML CMake API. In order to filter the
kits accordingly, the flag "QtSupport.Wizards.FeatureQtQmlCMakeApi" was
added.
Task-number: QTCREATORBUG-28436
Change-Id: I80bc5585f31ec82c64f845701c768f8a07e000da
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Since we do not support Qt < 5.15 anymore, and as a first step
for getting rid of our special FindQt5.cmake.
Change-Id: Icc5dbaf9b0a3a622b1f609ff114b9decb6d2856c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
The live preview recreates the "containedObject" and reparents it
to the window. But the containedObject was not tracking this.
Now we track the children accordingly.
Using bindings to keep the size in sync.
Change-Id: I051e9621f150befffec548ae0bbd431bd18480ce
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
The API uses QVector, which is a QList in Qt 6, which is why assigning a
QVector to a QList works "fine" there. But with Qt 5 we must use the
correct type.
Also assign to a const variable. Otherwise this actually forces a
detach.
Amends 9321c6ad24
Change-Id: Ied562b96d647435ae48395ae08cc12a5670ac607
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
#include <windows.h> should come after #define NOMINMAX
not sure why it was necessary as an explicit include
it should come by the crashpad includes
Change-Id: I53ccdd893e9d8e5d5fadd46f5a5f5c0c21af0cc5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
app_version.h is not generated and found if a build
just for the qml2puppet target is requested
Change-Id: I9ef164d8e0c698d43eae74d2522029f9eff0f397
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This is in preparation for the task that will show metadata of assets.
The functions for checking the asset type have little to nothing to do
with the model. This change will also clean up the code a bit.
Task-number: QDS-8177
Change-Id: Ibab28f5b63228f626f517a59e2442d2718c2fc07
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Only require the full dependencies for a standalone build of qml2puppet.
Change-Id: I2a158b36fa674db6d655b753afe205f419c0a113
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Multiple View3Ds with shared resources such as materials don't always
properly dirty themselves when a shared resource changes. Work around
this issue by rendering the base state twice if there are multiple
View3Ds.
Fixes: QDS-8618
Change-Id: I3840a082ff8e55557afe5a5f139382d82cd6b184
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Setting a property on a non existing target is a no go.
The changed done in 5b6bf29143 got somehow
removed by 036948c628
Change-Id: Id6d09b27817fa2c1f2c2c13127994710f5a2981a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
In the 3D view, when the user experiments with different background
colors, but then decides to cancel, upon pressing the Cancel button and
closing the dialog, the last color picked remained set.
This happened on Qt6.4 and not on Qt6.3. The reason for this was the
usage of Array.isArray() on an object exposed from C++ to QML of type
QVariant that could hold either a QList<QColor> or a a QColor. It looks
like there is no supported way from qml/js to see if a variable is a
list / sequence or a scalar. So the best way would be to always work
with QList<QColor> even though in most cases only one single QColor is
being used.
Task-number: QDS-8143
Change-Id: Ia7e8e1facad24439ad244305c213bb12e286105b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
If View3Ds share resources such as materials, changing such shared
resource doesn't in all cases make all using View3Ds dirty until
one of the views is rendered. For purposes of rendering 2D view, this
is too late, as we determine the list of items to render before any
is rendered.
Fixed the issue by ensuring all View3D items in the scene are added
to the list of items to render if any of them are added to that list.
Fixes: QDS-8346
Change-Id: Ib18ce0d37978857efdb67e15976e1fecdc1b6c96
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This patch includes;
* Fork of original QML runtime as an alternative
QML backend for QDS
* Flexible structure for adding/removing different
types of QML interpreters
Note:
When forking the original QML the config.h is renamed as
qmlconfiguration.h because it was clashing with sqlite and
QmlRuntime.QmlConfiguration uses "magic" name matching.
QmlConfiguration/qmlconfiguration is unlikely to conflict with anything.
Task-number: QDS-8373
Change-Id: Ifaa1b766c717ce12d6b3c9ddbbc0665669797e36
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
QQuick3DGeometry::updateSpatialNode can create QSSGRenderGeometry
object with exact same address as a previously created and subsequently
deleted QSSGRenderGeometry object (i.e. the memory location is reused).
If the previous node was not used for the exact same logical geometry,
then you get these artifacts, as QSSGBufferManager uses
QSSGRenderGeometry object pointers in QSSGBufferManager::loadRenderMesh
function to determine if it needs to reload the geometry and what
geometry gets used for each model. The cache still contains data for
the deleted node, which is then matched for the new node with same
address.
This workaround ensures that none of our grid geometries will have the
same generation id and thus will never get improperly matched in
QSSGBufferManager cache.
Task-number: QDS-8516
Change-Id: I017a4ae4a59eef2bb26ade5abf13e8f74f57c4af
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
If a type cannot be created we created a QtObject instead.
Since we create Item for items this crash was rare.
Task-number: QDS-8460
Change-Id: Ifd80f6670bec5328ddd122e0f2f2c133c487b3bd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This "cmake-plugin-minimal" preset contains the set of plugins that
I usually need to build to be able to test the CMakeProjectManager
plugin.
Change-Id: I8bb02879df38c40be38c4a2bf4e85e0623f2dca5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>