Commit Graph

1029 Commits

Author SHA1 Message Date
Eike Ziller
3b9b9bdc0b Merge remote-tracking branch 'origin/6.0'
Change-Id: Ia7fc255ee8680e6beac5d4d878f446fe40873183
2021-11-08 09:46:57 +01:00
Tomi Korpipaa
69c8be67ae Add particle editor support
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>
2021-11-05 11:31:31 +00:00
Eike Ziller
e6130c9446 Merge remote-tracking branch 'origin/6.0'
Change-Id: Ie46e0028f0dca9f3ddc45ed8794ba6cddd97df26
2021-10-28 10:31:51 +02:00
Miikka Heikkinen
982f23be38 QmlDesigner: Allow invalid property value for QVariant type properties
Invalid QVariant is a valid value for properties of type QVariant, so
propagate the value change from puppet to creator in that case.

Also change the property editor to notify controls of value change in
case of invalid value set, and clear LineEdit when invalid value is
set.

Fixes: QDS-5304
Change-Id: I02c7daaf3cde06317690a32e7ac8a82da754bd58
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-10-28 07:50:20 +00:00
Eike Ziller
b5fd63b431 Merge remote-tracking branch 'origin/6.0'
Change-Id: I9b824b8bb7b0b5d76e9e8f28f909b542adf773f0
2021-10-27 12:05:08 +02:00
Miikka Heikkinen
f0d0ce4c01 QmlDesigner: Do not create pixmap at component completion
Creating an item pixmap will render the entire scene and clear all
dirty flags, so we don't ever want to render just one item without
checking if other items need rendering, too. So pixmap creation is
removed from completeComponent(). Since completeComponent()
already inserts the completed instances to the dirty instance set,
this should not cause any problems; it just defers the rendering to
the next collectItemChangesAndSendChangeCommands() call.

Fixes: QDS-5271
Change-Id: Ic15dbb29f13875b966f4e3c3556a4ecd7194cdd6
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-10-26 12:50:08 +00:00
Eike Ziller
bb9774de92 Merge remote-tracking branch 'origin/6.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: If8baed5564470e550a0ba5c7720915217eec2412
2021-10-21 09:13:03 +02:00
Orgad Shaneh
3871e40f43 Fix qHash-related size compatibility warnings by MSVC
Change-Id: I3b7981ce78b67db4b996f99682284a0b911d8cd7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-10-20 15:03:51 +00:00
Eike Ziller
89d37fb65b Merge remote-tracking branch 'origin/5.0' into 6.0
Change-Id: Ibcf3ada2824dbbaae8aed0903af61bc95c1c7ce7
2021-10-20 12:19:31 +02:00
Kaj Grönholm
d8a7c97fcb Use global picking API
When gobal picking is available (Qt 6.2+), use that instead of toggling
models pickable properties.

Task-number: QDS-4978
Change-Id: Id2a501ae97955128874447fa8a3b8afab3d1f2c7
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-10-14 04:08:33 +00:00
Thomas Hartmann
8b45f1f6c5 QmlDesigner: Only create components as primitives if actually possible
The type might not actually be exported and imported as a folder import.

Change-Id: I0ada27d619727044c2f8b8a601a2632a44c5a7cb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-10-13 09:35:55 +00:00
Miikka Heikkinen
9b6f60992c QmlDesigner: Update repeater parent when repeater properties change
Any time repeater properties change, the repeater parent should be
dirtied to ensure it rerenders. Often the rerender is triggered
incidentally due to other triggers, but e.g. in case model value is
changed to zero, or if model property is removed, no other trigger
causes rerender.

Also moved the repeater parent checks into QuickItemNodeInstance
to avoid polluting Qt5NodeInstanceServer with such stuff.

Fixes: QDS-5233
Change-Id: Idd89e23c5ad022d26f443d665dac81dc2cbb0b28
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-10-11 08:44:13 +00:00
Eike Ziller
2ae0d4d0b1 Merge remote-tracking branch 'origin/6.0'
Change-Id: I655155b35747082ac891a4b95e1680871d9b3234
2021-10-08 16:00:32 +02:00
Miikka Heikkinen
2ab6f800b3 QmlDesigner: Fix issues with Components and Repeaters
- Fixed state preview rendering by deparenting nodes under
  component wraps.
- Ensure state preview image is always clipped to root item.
  The state preview bounding box broke when Repeater was direct
  child of root and had delegate with rotation.
- Allow dragging items under Repeater to create implicit component.
- Allow dragging Components under Repeater.
- Do not ask for target property when Component is dragged under
  any node.
- Update nodeSource properly when reparenting implicit component
  or removing last child of a Component item.
- Fixed scene update when last child of a repeater is deleted/moved.

Fixes: QDS-5197
Change-Id: Iaaf1745e25db3522ffc1dba7fd1b051da29f5aec
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-10-05 09:12:12 +00:00
Miikka Heikkinen
4036c20f63 QmlDesigner: Add Loader and Repeater to component library
Also fixes some issues with Repeater usage.

Fixes: QDS-5149
Change-Id: I259dcb73be634150dd0c5e602165b63112ec958c
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2021-10-05 09:11:59 +00:00
Knud Dollereder
ed465a81f5 Do not reset the render-image size to (0,0) when reaching the size limit
The size of the image to be rendered for the FormEditor is computed from
the bounding box enclosing the items within the scene.
There is a size limit, when reached the size was reset to (0,0) leading
to an empty FormEditor image. This is now fixed by returning the
bounding box of the root item in case this limit is reached.

Change-Id: I58366610da2e90c34aea6117e225765ff4b3288b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-10-04 09:26:54 +00:00
Orgad Shaneh
74713e5ef1 Merge remote-tracking branch 'origin/5.0'
Change-Id: I7ca9791b95032a1f276c520f8eefde3801510eb9
2021-09-27 13:22:58 +03:00
Orgad Shaneh
f2f1fc8601 Use lowercase for Windows header for supporting cross-compilation
Linux mingw uses lowercase headers, so cross-building on Linux for Windows
target must use the correct form. Windows is case-insensitive, so it won't
affect host-native builds.

Change-Id: Ic2140412bb367bbce83b5e2546d70e0936928c5c
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-09-27 07:23:22 +00:00
Knud Dollereder
b75d91e57b Remove superfluous qDebug printouts
Change-Id: I804873f8066f2785905e1ea25efc035cad275a3e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2021-09-24 10:08:56 +00:00
Eike Ziller
3d4d7c7e14 Merge remote-tracking branch 'origin/5.0'
Conflicts:
	src/plugins/clangtools/clangtoolssettings.cpp
	src/plugins/clangtools/executableinfo.cpp
	src/plugins/clangtools/executableinfo.h

Change-Id: Id8caf63e3e594792467d3447870086bd2d8f73b9
2021-09-13 17:03:55 +02:00
Miikka Heikkinen
6c224f1341 QmlPuppet: Make sure root instance is in dirty list after size change
Fixes: QDS-4474
Change-Id: If9c861e9c9e39c044e059742bbf7cad0d41c4e5b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
2021-09-09 07:40:27 +00:00
Christian Kandeler
3be9f52980 Fix some warnings
Unused functions & variables, initialization order, signedness, non-
virtual destructor.

Change-Id: I405d768fe0e02a36a16c2cead9e1bc2f6a23fb75
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-09-02 13:47:07 +00:00
Eike Ziller
47de984972 Merge remote-tracking branch 'origin/5.0'
Change-Id: I712fce3cc0171327de122a1cd53b5bae67541084
2021-09-01 10:10:33 +02:00
Thomas Hartmann
913d034e52 QmlDesigner: Never instantiate controls from component
This will break the file selectors for styles.

Change-Id: Ie539f768eb277fb4dc0df3eceb736ff9e4353837
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-31 20:23:01 +00:00
Miikka Heikkinen
b6aaa5dfd2 QmlDesigner: Fix root item size on new project launch
Resizing the window doesn't actually trigger rerendering of the
root item image in single item rendering, so we ensure that happens
by making root item size dirty.

Fixes: QDS-4957
Change-Id: I08750c855458cc309a2683e56557c42dc7c49274
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-08-31 11:25:13 +00:00
Cristian Adam
f5dd648b3a QmlDesigner: Build fix for Qt 5.15.x
Amends 870b619c85

Change-Id: I049c35a833f25afd01192282c13d2879fdfc9fc6
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-30 20:01:23 +00:00
Thomas Hartmann
870b619c85 QmlDesigner: Render effects on document level
Rendering effects requires actually rendering another item.
The effect is defined by another item that is rendered instead
of the original item.

For items that have an effect we do not render the children, since
the effect is only applied to the layer not the individual items.

We set layer.enabled temporarily to false, this ensures the effect
is not rendered as part of its parent item.

To detect the effect we use the source property an check if it points
to the ShaderEffectSource.

If one of the children inside the effect is transformed we have
to update the effect item.

If layer.enabled or layer.effect is changed we set the dirty flag
on the item and all children.

Change-Id: Iff61ef950e62a7a598b4bfa181ea70cb144368f3
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-08-30 12:07:06 +00:00
Thomas Hartmann
3945868670 QmlDesigner: Render item inside the bounding rect
We have to render an item inside the bounding rect, because if
it is a component there might be child items outside its actual size.
The way we calculate the bounding rectangle excludes children
on the document level. We take clipping into account when calculating
the bounding rect.
When rendering the effect we do not have the instance. Therefore
we fall back to the standard bounding rectangle.

Change-Id: I7cd09d08d461d28c49a91fb891a5487185df0245
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-30 12:06:57 +00:00
Eike Ziller
987ad3fe9c Merge remote-tracking branch 'origin/5.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/android/androidconfigurations.cpp

Change-Id: Icd2b0fda2b2653656285bbbe457c30c9cd414d3f
2021-08-30 12:15:37 +02:00
Thomas Hartmann
30827fe401 QmlDesigner: Implement visibility for unified render path
If the item is set to invisible we set visible to false in
the render and preview puppets. This will have no effect on the
value in the property editor.

Changing the actual value of visible can have side-effects on
the rendering in some rare cases.

Task-number: QDS-4932
Change-Id: I5ce0925ebff8f5e4e64bc71fd5d33d6154b85f91
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2021-08-26 14:18:37 +00:00
Laszlo Agocs
90027cd298 Add Qt 6 ifdef for a DesignerWindowManager call
That code path cannot be hit with Qt 6 anyhow.

Change-Id: I6f8e2a1a3606a4e6fbaa10f650fc5f22354f48a8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2021-08-26 14:09:55 +00:00
The Qt Project
2028d1c620 Merge "Merge remote-tracking branch 'origin/5.0'" 2021-08-26 11:07:04 +00:00
Mahmoud Badri
b4714aee00 QmlDesigner: Correct code style on NodeInstanceServer class
Change-Id: I3bef1ac0994b0dd3cf3a4adbd75147bf79d8f961
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-26 09:05:59 +00:00
Miikka Heikkinen
8aad2c803a QmdDesigner: Enable rendering single items again for render puppet
Change the form editor rendering to be done by item basis instead of
just rendering the entire scene (unified rendering).

Fixes: QDS-2933
Change-Id: I999cbc834791bc6e96334eab8273d97e4f58975f
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-08-25 15:38:17 +00:00
Kaj Grönholm
d1d5f47bda Fix building with Quick 3D dev
Adjust to camera changes b74fde27@qtquick3d

Task-number: QTBUG-95932
Change-Id: Id7408541caaebb0ee18240e7bc4208ac416fb0b9
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Knud Dollereder <knud.dollereder@qt.io>
2021-08-24 15:35:30 +00:00
Mahmoud Badri
da82253095 QmlDesigner: Fix root item size on first launch
Fixes: QDS-4936
Change-Id: I9b25788dcc11c14b5a7ef80dc7aad5f3ec3e636e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-24 12:16:54 +00:00
Christian Strømme
4788f0671f Update MouseArea3D::getCameraToNodeDir() to not rely on cameraNode()
The cameraNode() function has been removed from QtQuick3D and it only
existed because of the weird way we we're creating the camera node.
Now, instead of the round-trip, just request the spatial node directly.
See: b74fde27@qtquick3d

Change-Id: Icc8584aebee4952356769a134756074cba8d1b0e
Reviewed-by: Kaj Grönholm <kaj.gronholm@qt.io>
2021-08-23 12:22:04 +00:00
Thomas Hartmann
d5214b0e45 QmlDesigner: Do not create components from componentPath in importPaths
If the component comes from the import paths we should not create
the component directly. This can have subtle unwanted side effects.
Styling for example is not working with Qt 6.

Change-Id: Ia4f33b46d3dc427ac95838f2ca73a880639d600a
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-08-19 11:21:30 +00:00
Miikka Heikkinen
ffd8ebd17b QmlPuppet: Remove 2D rendering from InformationNodeInstanceServer
Using cross-window 2D content in 3D scene is prone to crashing,
and causes also issues with the primary purpose of
InformationNodeInstanceServer, i.e. getting the information, as the
rendering will remove dirty flags from nodes prematurely.

Fixes: QDS-4858
Change-Id: I9057889a28d36f12f1e401e9a39f808d66637681
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-19 08:08:35 +00:00
Janne Koskinen
b8b6af0dbb Add 3D editor Gizmo for Quick3DParticles
Adds an icon for Particle System Component making the component
visible in the editor allowing picking.

Task-number: QDS-4784
Change-Id: Ie6cffa9cfe3bb6a693372d7a7b4341e17f89911f
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-13 11:23:19 +00:00
Tim Jenssen
27d414458e qmlpuppet: fix qt 5.15 builds
Change-Id: I6d19624537a3980252d43624ecf24e110638225a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-08-10 09:07:41 +00:00
Miikka Heikkinen
2c7b2ad685 QmlPuppet: Fix incorrect initial render size/scene for edit 3D
The scene id was stored as array of QChars instead of QString, which
caused issues restoring the correct scene at puppet reset.
The intitial incorrect render size was caused by not changing the
render window size in addition to root QML item size.

Fixes: QDS-4586
Change-Id: Id6b16d778a9d886e8fdc40eab1e549d13091f8f4
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-08-09 14:00:19 +00:00
Christian Kandeler
6530a4fdc7 Fix some compiler warnings
Change-Id: I4eaf47bda086b83618f461ab19d1715c67e27ae1
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-08-09 11:52:07 +00:00
Thomas Hartmann
fa1d7958c3 QmlDesigner: Do not generate version number if invalid
This is a fallback to create components from source.
If the majorVersion is negative we should not generate
a version as part of the import.

Change-Id: I377b241e8e4c51141d560d7198e5906a9c963b54
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2021-08-09 08:10:01 +00:00
Miikka Heikkinen
7211b7abf2 QmlPuppet: Fix crash on active scene change
Active scene change involves deleting and recreating the View3D
instance of the 3D editor that imports the actual shown scene.
In Qt 5 it was necessary to mark the deleted View3D instance as having
no content, so it wouldn't receive any more updates. This hack no
longer appears to be necessary and causes this crash instead, so it
was removed.

Fixes: QDS-4786
Change-Id: I848ac78dc2f951ba7e1bf4d3d6aa4244b1443309
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2021-08-06 13:43:27 +00:00
Janne Koskinen
12fb534f90 Fix puppet from asserting on unversioned qml imports on Qt 6
Set mockup version to 1.0 if there is no version set.

Change-Id: Icfee0e84012a93978283d8309ec01d48dd8d4730
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-07-28 06:49:45 +00:00
Thomas Hartmann
c59bddd4df QmlDesigner: Fix crash for QQuickStyleItem
QQuickStyleItem crashes if componentComplete() is called.

Change-Id: I1df1b50f6ba95c0eda1ff8e18de85276a6de04f5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-07-22 08:06:31 +00:00
Thomas Hartmann
ef8f18fb70 QmlDesigner: Do not instanciate ApplicationWindow
Change-Id: I7a57de60aba72823579e986e9ad6278c4a7e84a8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2021-07-19 07:53:39 +00:00
Knud Dollereder
30f6084f0d Execute pixmapChangedCommands only if items have changed
This patch prevents continuous image updates by making sure
to only execute pixmapChangedCommnds if an item is dirty.

Change-Id: Icadc1d8a2a2298d18147b31fbed3fbc4205f0ea8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2021-07-14 20:54:29 +00:00
Tim Jenssen
22a87fdd95 qmlpuppet: adjust to api changes in Qt 6.2
Change-Id: I3c9139cacb7ff9eb7b8138e0a7f589280a24c13a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2021-07-07 17:40:26 +00:00