Commit Graph

1096 Commits

Author SHA1 Message Date
Henning Gruendl
754be28e36 QmlDesigner: Fix state shown after reordering
Fix an issue which caused the wrong state to be shown in the form editor
after reordering the states in the state editor.

Task-number: QDS-7753
Change-Id: I220bb5b11beb4f9bfc6a85069a688c9ff2984d8f
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-22 20:24:56 +00:00
Knud Dollereder
93d4b057cf Check for more dirty flags
This fixes an issue of the formeditor which did not update properly if
components contain items that have one of zvalue, opacity or visibility
attributes animated.

Change-Id: I1b20f09177878419b2b18aaf94c84b6ae437be7d
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-09-21 12:37:06 +00:00
Thomas Hartmann
4bf105b662 QmlDesigner: Ignore "when" property for all states
We actually did set the "when" property for StateGroups.

Change-Id: I45a1663d60f8f443b4deafa529d1fd2788a8459e
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-09-15 10:51:05 +00:00
Miikka Heikkinen
e15d834601 QmlDesigner: Create 3D models at the point of context menu trigger
Fixes: QDS-7640
Change-Id: I2f178c2e2661dedc4efe23b675363283e3cd3bc3
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-09-13 10:15:34 +00:00
Miikka Heikkinen
3485d97755 QmlDesigner: Add support any pickable node with 3d view context menu
Previously only 3D models could be picked for context menu target.
Now any node that can be resolved from a point at 3D edit view can be
picked.

Fixes: QDS-7518
Change-Id: Id4a30d96744c42907d45688493776bdff35b934e
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>
2022-09-08 10:36:11 +00:00
Miikka Heikkinen
169ba3b6f7 QmlDesigner: Convert the form editor preview image to correct format
We were passing the image with premultiplied alpha obtained from
QSGRhiLayer::toImage() to be shown in form editor. This corrupts the
colors in with 3D materials having partially transparent colors.
Converting the image to QImage::Format_ARGB32 format fixes the issue.

Fixes: QDS-7474
Change-Id: Id0b689d7e2d9fc111e98f28b18db0af3ac30041f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-08-26 12:19:43 +00:00
Miikka Heikkinen
3e17d8eed4 QmlDesigner: Change default material preview env to studio env
Since "Default" option is no longer default, it was changed to "Basic"

Change-Id: I8654efbd98fe62f6c4817141fc8559757f5e58e8
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-26 08:15:15 +00:00
Mahmoud Badri
8656bafbd4 QmlDesigner: Add delete action to 3D Editor's context menu
This entails selecting a model upon right-clicking if it is not selected.
Also fixed a memory leak and small tweaks.

Fixes: QDS-7401
Change-Id: I592acb3fff30ecc3236f3cf2fbe126de4fb389dc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-08-25 09:55:32 +00:00
Miikka Heikkinen
f6e8b5f753 QmlDesigner: Use actual material for model previews
Fixes: QDS-7412
Change-Id: Iec020578460e417e602f832ed0d667fbdda4e96a
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-25 09:40:05 +00:00
Thomas Hartmann
ae872359d0 QmlDesigner: Render state previews for StateGroup
Render previews for all state groups in the document.

Change-Id: I89d9c43a53eb3d9844b863278395fd9098a07772
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-24 17:58:23 +00:00
Thomas Hartmann
8e65e2815c QmlDesigner: Add NodeInstanceServer::allGroupStateInstances()
Change-Id: I26b20976746c3790d679a63db209fb535eb58382
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-24 17:58:08 +00:00
Thomas Hartmann
80922268ab QmlDesigner: Implement ObjectNodeInstance::stateInstances() for StateGroup
Change-Id: Ia6e239530d399da34ab63253762e3ebd2a79f4db
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
2022-08-24 17:57:55 +00:00
Thomas Hartmann
f3e9fbd748 QmlDesigner: Do not set state property on QQuickStateGroup
The state is determined by the state view.

Change-Id: I3b76b25c618d4f860f13d2e005d88d93a660fbc0
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-24 17:57:18 +00:00
Thomas Hartmann
0e23845618 QmlDesigner: Always skip when condition
There is no reason to set the when condition ever.

Change-Id: I4c6b5ca04cdb7ba62f833225c6878da83a02abaf
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-24 17:57:03 +00:00
Mahmoud Badri
fc4ebb0cab QmlDesigner: Create a context menu for the 3D Editor
For now only 1 action is implemented (edit material), more actions are
coming next.

Task-number: QDS-7414
Task-number: QDS-7398
Change-Id: Id8e36c23d9a4d35ee94d55d3d6b15df78241a05d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-08-22 13:26:18 +00:00
Miikka Heikkinen
2e8574bd76 QmlDesigner: Add scene root material support to material editor/browser
If the scene root item is Material subclass, material library is not
created for the scene. Material editor and browser functionalities that
relate to having material library are disabled.
Material editor will always show the material that is the scene root.

Fixes: QDS-7374
Change-Id: Icd1c212c17b59e4a2caa6b3b4d7e615e68b21eb9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-18 11:10:04 +00:00
Miikka Heikkinen
45f93a817a QmlDesigner: Add environment and model selectors to material preview
The model and the scene environment used to render material previews
can now be selected via buttons next to the preview in material editor.

Task-number: QDS-7347
Change-Id: I03089029e8420f80ed65be1c7b7a1ce4581f2fd4
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-11 13:33:59 +00:00
hjk
f7a087ce7a QmlPuppet: Compile fix
Change-Id: I4ff0fd46d8e0f2c00857de2b8f6d99a502d2675f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2022-08-04 15:42:19 +00:00
hjk
184a9cbd64 QmlPuppet: #include <QColor> in generalhelper.h
CI was complaining.

Change-Id: I7b2da474d3197de4c046efc0e2e54ab19b8d3663
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2022-08-04 09:14:49 +00:00
Samuel Ghinet
86f93b8949 Sync color between environment map and 3D Editor background
Task-number: QDS-7097
Change-Id: I5f2c83bc43bd589d0d1f32e01e7512ab20a03bcf
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-03 09:35:11 +00:00
Mahmoud Badri
5a9a6804ee QmlDesigner: Implement drag-n-drop materials to the 3D Editor
Fixes: QDS-7011
Change-Id: Id6e4aea2c19561ea861507480636ae2358ece067
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-07-01 15:38:29 +00:00
Tim Jenssen
56bcad81ad Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I7cd5d3808007ef739212f4347ba9b16e7b298943
2022-07-01 09:22:10 +00:00
Miikka Heikkinen
8a8a2f5c55 QmlDesigner: Unify the background of 3D preview images
Added 3D checkerboard floor on all 3D previews.
Since shadows generally look bad for arbitrary 3D scenes, and would
mostly be obscured by the model itself as we want the light mostly
from the front, removed shadows also from the material preview to unify
the previews.

Qt5 had issues rendering the 3D floor texture, so used a static image
there, as Qt5 only generates previews of one size.

Fixes: QDS-7078
Change-Id: I74d094878ed01e6e531ad60df1f8d9d7cf415860
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-23 13:06:04 +00:00
Miikka Heikkinen
9c3636af49 QmlDesigner: Ensure materials render properly after puppet reset
This is a workaround for quick3d issue QTBUG-103316, where
material library materials for editor are properly initialized only
if the first encountered View3D in the scene is also rendered first.

Fixes: QDS-7084
Change-Id: I8bb6a8e6bfe2fcffddfe86f92157d386fdf4095d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-16 13:53:43 +00:00
Samuel Ghinet
50aadacb6e QDS Editor 3D: Allow the user to select (and reset) the color of grid lines
Task-number: QDS-7122
Change-Id: I686269e61b53bd5e3d5d1225376930612d869072
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-16 10:17:01 +00:00
Thomas Hartmann
7ae288d355 QmlDesigner: Use changed properties to update 3D preview
EffectReference is always dirty and it is the only dirty flag.
Instead, we update now if any property changed.

Task-number: QDS-7079
Change-Id: I157cf2d3b15120c33f4a6b3f53e526d555c7f80c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-06-13 08:35:11 +00:00
Thomas Hartmann
13c1b6f237 QmlDesigner: Do not apply smooth rendering if root is a 3D node
Task-number: QDS-7136
Change-Id: I5260153b8d6131160a8d4b67418e81c6f6e4d862
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-06-13 08:12:39 +00:00
Miikka Heikkinen
dedbbc75b5 QmlDesigner: Apply root item transform in Node component previews
When generating a preview from a component with a 3D node for a root,
the root Node transform is now applied when calculating camera zoom.

Fixes: QDS-7131
Change-Id: I73054a09b3e82868c999ef6f9797dc941e625b33
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-10 13:15:05 +00:00
Miikka Heikkinen
36dbc62a1d QmlDesigner: Queue puppet processes during import
On some systems launcing multiple simultaneous import processes causes
imports to fail. Fixed by only launching single process at a time
and queuing the rest.

Fixes: QDS-7107
Change-Id: I330c5920dcbd74d3b4f2e7f40899795a4fbaf3ac
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-10 09:31:03 +00:00
Thomas Hartmann
d8c605179a QmlDesigner: Add option for smooth rendering in form editor
Smooth rendering turns on MSAA and doubles the resolution for
rendered items. With this option enabled everything stays smooth when
zooming in. Around factor 8-10 pixels become clearly visible again, but
it still looks relatively smooth.
I added both MSAA and increased the resolution to one option, for simplicity.
The smooth mode takes 4 times the shared memory, which should not
be an issue in most cases.
For now, the option is not the default.

Task-number: QDS-7129
Task-number: QDS-7128
Change-Id: I8a778650bb40f8ba796960db9bc966e8a1efff4e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-06-10 09:04:11 +00:00
Eike Ziller
84ff5eb169 Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: Ib669e2e993c4675a7382f721ccb7d6ecff11fc20
2022-06-07 10:28:37 +02:00
Christian Strømme
3335698fba Import3D: Update call to importFile() after change in QtQuick3d
The function in QtQuick3d will from Qt 6.4.0 accept the json object
directly meaning it's no longer necessary to convert to a variant map
first.

Change-Id: If180672963cbfea78582f245431e246f84111c9b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-06 08:52:30 +00:00
Miikka Heikkinen
d1a56ddcfa QmlDesigner: Fix issues with quick3d private API changes in Qt 6.4
Change-Id: I5974c7f663262c88810ddaac6f9c775d95749266
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-03 13:25:44 +00:00
Eike Ziller
68c5968447 Merge remote-tracking branch 'origin/7.0' into 8.0
Conflicts:
	src/libs/utils/launchersocket.cpp

Change-Id: I7ec649485bb7fc7c299b571d92519d2b7fc9506b
2022-06-02 10:54:10 +02:00
Samuel Ghinet
c3b90c0ce5 Allow changing the 3D Editor's background color
Task-number: QDS-6585
Change-Id: Ibcac69d3792b521b29dfbdce2d49557d36de99a9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-01 09:57:05 +00:00
Miikka Heikkinen
c789186418 QmlDesigner: Handle picking of models under View3D component properly
If a model defined inside the View3D component is picked on 3D editor,
the parent View3D is selected instead as there is no instance for
the model itself. This is similar to how Node based component picking
works.

Fixes: QDS-6934
Change-Id: I4f273972da8cb1c55f03cab323dd9804a5d10def
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-31 12:02:49 +00:00
Christian Stenger
b336ebafc3 QmlPuppet: Silence warnings
Change-Id: I25ebc3b33d5e636176f87af35ee2316e302f233a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-05-31 08:32:29 +00:00
Miikka Heikkinen
80ea026fd8 QmlDesigner: Refactor library icon generation for imported 3D assets
Previously, icon generation was done at import time, but that was
wasteful, as we now have image cache backed icon generation
available for component library icons. Added the few remaining missing
bits to support icon generation for image cache and disabled the old
icon generation implementation for Qt6.

A few issues in fit algorithm for preview image generation were also
uncovered and fixed to make icons render scene in comparable size to
the old version.

Qt5 imports still generate using old way since component library
3D previews generation doesn't work on Qt5.

Fixes: QDS-6205
Change-Id: I5418fa19d86e81adcd184be023f1dfbc813d0bf5
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-05-30 14:16:53 +00:00
Miikka Heikkinen
46049bac32 QmlDesigner: Remove hardcoded timeout from 3D import puppet
It doesn't seem that this timeout is needed.

Fixes: QDS-6909
Change-Id: I7794d8548acd75fbb220a20458d091f413b5fcbb
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-30 14:16:27 +00:00
Eike Ziller
09efabaf89 Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I3780a56c1e02c2e98028aaf02b54733c6f222498
2022-05-30 14:14:04 +02:00
Miikka Heikkinen
d92bdcce40 QmlDesigner: Show form editor preview for 3D material root nodes
Fixes: QDS-6561
Change-Id: I62a06eb6c83b0a4813a1b20f91b09e17b04a1332
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-05-27 08:49:14 +00:00
Eike Ziller
82ee8baad8 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I254066f8be63cb5b15650ef2a470206db56de026
2022-05-25 11:42:13 +02:00
Marcus Tillmanns
f117c2a37b ImageContainer: Fix potential use after free
Found during clang-analyzer run.

Change-Id: I6549403ac949650058348ccc22b2020d09ef53e0
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-05-24 14:44:41 +00:00
Christian Stenger
37445824e3 QmlDesigner: Fix puppet build for Qt5
Amends f09d4538e7.

Change-Id: Ibff8b834e65fd18f6345431c8729b7592eab0c5c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-24 07:46:07 +00:00
Mahmoud Badri
f09d4538e7 QmlDesigner: Implement Material Editor
Task-number: QDS-6438
Task-number: QDS-6439
Change-Id: I04e899a68aea665f0df8b65e21523632174ec76b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-05-23 16:44:02 +00:00
Miikka Heikkinen
6dda55a8cd QmlDesigner: Show id-less scenes properly in 3D edit view
Fixes: QDS-6942
Change-Id: I5b7fa966bf9d7321b1735ef0ea7cb904b82f542d
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-18 13:30:49 +00:00
Miikka Heikkinen
17982e661c QmlDesigner: Disable shadows for gizmos
Some gizmos (selection box and helper grid) are drawn to main 3D editor
scene. Disabled receiving and casting shadows for those gizmos so
they do not interfere with scene lighting.

Change-Id: Ia589d3896c2591061966f6a4d532a0dedbf6fe12
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-13 11:11:54 +00:00
Miikka Heikkinen
0334d4886b QmlDesigner: Fix puppet crash when property animation has no target
Fixes: QDS-6935
Change-Id: Ib6dae3a6c39a12e9e62bd494d5a27917d7f97048
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-13 07:32:50 +00:00
Thomas Hartmann
bf3c3b624a QmlDesigner: Fix 3D formeditor preview
I remember testing this and ContentUpdateMask seemed to work.
This might have changed with Qt 6.3 and using AllMask instead, which
works for all cases I tested should not have any negative impact.

Task-number: QDS-6896
Change-Id: I648c10fe75df813ae25a54a13a862cad0228bfdb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-05-12 09:11:29 +00:00
Marco Bubke
4bd71ebf6a QmlDesigner: Fix poor snapshot quality
It removes the image cache in the AssetsLibraryView too because it is not
used. Fix ODR violation too.

Fixes: QDS-6553
Change-Id: I83d8f8b7cd385e2c8352986e4b5a5abd76ac7d5b
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-04-13 14:16:20 +00:00