For each created items we retrieve a list of the names
of all existing states.
Task-number: QDS-1978
Change-Id: I8e85e439fce3c6204cb8bcf69f6be847cc8dae5c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This has to be blocked only for the root item.
Task-number: QDS-1979
Change-Id: Ia05255468623fe715e3f7172e2f058a70629b783
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
If a component cannot be created we have to show a proper
error message.
Task-number: QDS-1980
Change-Id: I48a6ff0fd89c9666328c501abb00dc0997171d96
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
m_quickView in Qt5NodeInstanceServer::initializeView()
is instantiated with setProfile(QSurfaceFormat::CoreProfile)
However QGfxShaderBuilder::QGfxShaderBuilder() initiates and
generate the gaussian blur shader code with referring default format.
that doesn't set the profile to QSurfaceFormat::CoreProfile.
The correct resolution is to get profile with accessing current window.
But QGfxShaderBuilder is not QQuickItem so it doesn't have any way to
access current window.
As qmlscene does, it could be a nice solution to keep the current
surface format as default when instantiating QQuickView.
Fixes: QDS-1864
Change-Id: I0fcf80effccebf7cfe8e58c071cf121b6af5bdbd
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Check component creation errors earlier to avoid crash.
This allows puppet to notify creator about the problem, so invalid
components can be properly highlighted in navigator.
Change-Id: I059a5be04c4e509a38f6d47daa97e0da36c333ae
Fixes: QDS-1887
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Light gizmo icons and models are now colored based on the light color.
Image provider is used instead of simpler ColorOverlay component,
as ColorOverlay doesn't properly handle transparency when rendered
offscreen in puppet.
Change-Id: If6af915bca9bea2cb48ac23ac6c5ba46dc150e3b
Fixes: QDS-1733
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
If there's a single node child on View3D, detect that as scene root
when another non-node direct child of View3D is selected.
Change-Id: Ib538b0ae368e7b460700a99e4c450a15586c2f62
Fixes: QDS-1865
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Also remove the toolbar buttons from the puppet side and few other
clean-ups.
Task-number: QDS-1849
Change-Id: I075753552043a9f1bc649f6baf54dc7b689e4f64
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Changing edit camera could take a couple of frames to propagate the
the correct position to icon gizmos. It's unclear why exactly this
happens, but a trivial fix is to just render a couple of extra frames
whenever the camera changes.
Change-Id: I8c4fc33bff9cb7a4c4ac3b5105327cc5eb0a45d5
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Fixed multiple issues with showing correct selection in navigator and
3d edit view:
- Dragging items from item library selects only that item,
regardless if drag was done to 3d edit view or navigator
- Selection is shown correctly after reparenting items, including
multiselection reparenting
- Adding a new item to the active scene now shows selection box
correctly for that item
Change-Id: I5156ca4c22e606c41e1e346ea5c32c3d70d89f5e
Fixes: QDS-1577
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Explicitly change the selection back to previous selection after
a scene change in puppet. Also reduced the existing timeout for
executing the pending selection command after calling
ensureSelectionBoxes, as we now explicitly render the next frame after
selection change and don't have to wait for rendering to trigger
otherwise.
Change-Id: Ibe8004890910ae15e7ac3172165bc72463c1e5cc
Fixes: QDS-1792
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Components typically have Node as their root item, so having a
component as a scene root detects as having a plain Node as scene
root, which normally doesn't get a selection box.
Change-Id: I66ae1dc3ade4b6f822d768cf71e8feceb0ffa06d
Fixes: QDS-1636
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Edit 3D view tool state is now always initialized to a stored
"no scene" state if one exists to ensure further scene changes
properly inherit the tool state in all cases.
Change-Id: Ifee5fe58255b51d9dbed57abb2020ea00d94af2c
Fixes: QDS-1750
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Edit 3D view tool state is now inherited from the current tool state
of the 3D view for newly added scenes. If there is a stored tool state
for the scene id, then that is used instead.
Change-Id: I4360d034cf946b1951642f4c2e09344b34825dc2
Fixes: QDS-1730
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Qt 5.15.0 is now the minimum version to enable Edit 3D view.
Change-Id: I15cee59e6a7665477825caa0ae412fc6ac7b570a
Fixes: QDS-1694
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
When there is no 3D node in the qml doc, the view 3D will still be
enabled and manipulate-able. Also few relevant tweaks.
Task-number: QDS-1693
Change-Id: I758f783108b317a6971703bee8e3fb564400ed8b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Edit3D view is now a tab alongside Form Editor.
Buttons were moved to a Creator side task bar on Edit 3D view.
Change-Id: Ia06107e4f855ba512ffea3e628a61558894e800e
Fixes: QDS-1570
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Tool state of the scene is linked to qml id of the scene root, so that
tool states are preserved through delete and undo, which causes
generation of new internal ids for instances.
Tool state storage doesn't currently survive changing of scene root
qml id, as tracking that isn't trivial. It's not enough to simply track
id change commands because model repurposes existing nodes when major
graph changes occur, causing unexpected id changes e.g. when
delete/undo is done.
Change-Id: I74d11ce47e86ce5d29796399c4a91b65980b1597
Fixes: QDS-1536
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Added scene instance id to the drop command.
Change-Id: I42df07fec823083454ad5a70ccafa318d05ab224
Fixes: QDS-1594
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
3D edit view should now update correctly when 3D Nodes and View3D
items are added, removed, or reparented in the scene.
Deleting the active scene will change the active scene to another
existing scene.
Fixes: QDS-1591
Change-Id: Ib885453574e72f486a236264cc10d88cb872e9c7
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Any subtree of Nodes can be shown in 3D edit view.
Selecting any Node or their children, or View3D changes the
view in 3D edit view to the relevant scene.
Fixes: QDS-1494
Fixes: QDS-1565
Change-Id: I2d5a6f88bab2a20b74c347351235f79fb530519b
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Whenever the tool state of 3D edit view changes, creator is notified
to store the state. The stored state is then restored to 3D edit view
when it is restarted. The state persists only for the lifetime of the
creator.
Change-Id: I888b3ba82693a17a2f163924fbae1cfa27593890
Fixes: QDS-1351
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
A line connecting the pivot point and object center is added to
3D edit view.
Change-Id: Ic265e9a3ab2895761cc92b94c778d68509ef36f1
Fixes: QDS-1474
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
- Imported 3D objects can be dropped correctly on the Edit View 3D.
Non-3D objects are not allowed to be dropped (both imported and
existing items like materials)
- corrected the issue that imported 3D objects were allowed to be dropped
on the form editor while hovering.
- show invalid drop icon on the Edit View 3D if the item in non droppable.
Task-number: QDS-1445
Change-Id: I6de0f6ddd163ae57db6100832083c942b34bfdba
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Clicking undo, redo, delete, or save keyboard hotkeys while the Edit View 3D
has focus is working now.
Additionally this commit introduces a generic command for carrying any
variant data from puppet to creator side. This significantly simplifies
and avoids the boiler plate work of sending actions from puppet to
creator side. Current commands can be ported to use this generic
command but this is not part of this commit. Also a similar command to
work the other way around could be implemented.
Task-number: QDS-1266
Change-Id: I40fdf6b215ce77402250a791ea49cbdcd2a9d6eb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
For some reason the Qt meta system does not work reliable
for QVector3D. It does work "rotation", but not for "pivot",
despite the fact that both properties are defined in exactly the
same way.
This patch works around the main issue.
There are still a few issues left, but at least the default is
correct now.
Task-number: QDS-1355
Change-Id: I75e2d3adff6967e89c6ce031d744baa12b5e8061
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Also the 2D/3D action updates correctly according to Edit View 3D state.
Task-number: QDS-1385
Change-Id: I95d0994e9c56df25a2988eb9d27994268dd1903d
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
- Proxy dialog removed
- When the QDS window is minimized/maximized, the edit view 3D follows.
The opposite is not true (edit view 3D can be minimized separately).
- Edit view 3D is always on top of QDS window. Only exception is when
a popup is shown (so that the user can handle the popup).
- External apps go normally on top of the edit view 3D.
Known (non critical) issues:
- Activating the edit view 3D doesn't raise() the QDS window, so if an
external app is on top of the edit view 3D then the view is clicked,
the external app will be in between the view and the QDS window.
- Closing the edit view 3D from the x button doesnt work (causes a
restart). This is not in the scope of this commit.
Task-number: QDS-1179
Change-Id: I1dd72590037be295b94735de96772307ba14c59c
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Now edit view will create and remove cameras and light gizmos properly
when cameras and lights are added or deleted.
Change-Id: I858752c1410f3a40ea2adaf538c281aaee94ec58
Fixes: QDS-1267
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Import creates an opaque Component, which can contain one or more
pickable models. We mark all instanceless models pickable according to
the parent instance pickable status and specify the parent instance
as the pick target using a dynamic property.
Change-Id: I05b96ee48eb8f246c50b2254d620b621e2437aa5
Fixes: QDS-1282
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Multiselection works in 3D edit view with ctrl-click just like it
does on the Design Studio.
Change-Id: I266f2de11758bed064f44dd97cd79189e3e1f831
Fixes: QDS-1265
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>