forked from qt-creator/qt-creator
QmlDesigner: Add 3D editor visibility toggle actions
Added toggle for showing selection boxes, camera frustums, and icon gizmos. Fixes: QDS-5954 Change-Id: I97e12a3a04b9a1a1af5851e382f36c58ee869f45 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -30,6 +30,7 @@ IconGizmo {
|
||||
id: cameraGizmo
|
||||
|
||||
property Model frustumModel: null
|
||||
property bool globalShowFrustum: false
|
||||
|
||||
iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png"
|
||||
|
||||
@@ -46,8 +47,12 @@ IconGizmo {
|
||||
frustum.targetNode = targetNode;
|
||||
frustum.targetNode = Qt.binding(function() {return targetNode;});
|
||||
|
||||
frustum.visible = visible || (targetNode && selected && activeScene === scene);
|
||||
frustum.visible = Qt.binding(function() {return visible || (targetNode && selected && activeScene === scene);});
|
||||
frustum.visible = (canBeVisible && globalShowFrustum)
|
||||
|| (targetNode && selected && activeScene === scene);
|
||||
frustum.visible = Qt.binding(function() {
|
||||
return (canBeVisible && globalShowFrustum)
|
||||
|| (targetNode && selected && activeScene === scene);
|
||||
});
|
||||
}
|
||||
|
||||
onActiveSceneChanged: {
|
||||
|
||||
@@ -39,6 +39,9 @@ Item {
|
||||
|
||||
property bool showEditLight: false
|
||||
property bool showGrid: true
|
||||
property bool showSelectionBox: true
|
||||
property bool showIconGizmo: true
|
||||
property bool showCameraFrustum: false
|
||||
property bool usePerspective: true
|
||||
property bool globalOrientation: false
|
||||
property alias contentItem: contentItem
|
||||
@@ -71,6 +74,9 @@ Item {
|
||||
onShowEditLightChanged: _generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
|
||||
onGlobalOrientationChanged: _generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation)
|
||||
onShowGridChanged: _generalHelper.storeToolState(sceneId, "showGrid", showGrid);
|
||||
onShowSelectionBoxChanged: _generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox);
|
||||
onShowIconGizmoChanged: _generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo);
|
||||
onShowCameraFrustumChanged: _generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum);
|
||||
onSelectionModeChanged: _generalHelper.storeToolState(sceneId, "selectionMode", selectionMode);
|
||||
onTransformModeChanged: _generalHelper.storeToolState(sceneId, "transformMode", transformMode);
|
||||
|
||||
@@ -211,6 +217,21 @@ Item {
|
||||
else if (resetToDefault)
|
||||
showGrid = true;
|
||||
|
||||
if ("showSelectionBox" in toolStates)
|
||||
showSelectionBox = toolStates.showSelectionBox;
|
||||
else if (resetToDefault)
|
||||
showSelectionBox = true;
|
||||
|
||||
if ("showIconGizmo" in toolStates)
|
||||
showIconGizmo = toolStates.showIconGizmo;
|
||||
else if (resetToDefault)
|
||||
showIconGizmo = true;
|
||||
|
||||
if ("showCameraFrustum" in toolStates)
|
||||
showCameraFrustum = toolStates.showCameraFrustum;
|
||||
else if (resetToDefault)
|
||||
showCameraFrustum = false;
|
||||
|
||||
if ("usePerspective" in toolStates)
|
||||
usePerspective = toolStates.usePerspective;
|
||||
else if (resetToDefault)
|
||||
@@ -241,6 +262,9 @@ Item {
|
||||
{
|
||||
_generalHelper.storeToolState(sceneId, "showEditLight", showEditLight)
|
||||
_generalHelper.storeToolState(sceneId, "showGrid", showGrid)
|
||||
_generalHelper.storeToolState(sceneId, "showSelectionBox", showSelectionBox)
|
||||
_generalHelper.storeToolState(sceneId, "showIconGizmo", showIconGizmo)
|
||||
_generalHelper.storeToolState(sceneId, "showCameraFrustum", showCameraFrustum)
|
||||
_generalHelper.storeToolState(sceneId, "usePerspective", usePerspective)
|
||||
_generalHelper.storeToolState(sceneId, "globalOrientation", globalOrientation)
|
||||
_generalHelper.storeToolState(sceneId, "selectionMode", selectionMode);
|
||||
@@ -264,6 +288,7 @@ Item {
|
||||
"geometryName": geometryName});
|
||||
selectionBoxes[selectionBoxes.length] = box;
|
||||
box.view3D = Qt.binding(function() {return editView;});
|
||||
box.visible = Qt.binding(function() {return showSelectionBox;});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -364,11 +389,13 @@ Item {
|
||||
"selectedNodes": selectedNodes, "scene": scene,
|
||||
"activeScene": activeScene,
|
||||
"locked": _generalHelper.isLocked(obj),
|
||||
"hidden": _generalHelper.isHidden(obj)});
|
||||
"hidden": _generalHelper.isHidden(obj),
|
||||
"globalShow": showIconGizmo});
|
||||
lightIconGizmos[lightIconGizmos.length] = gizmo;
|
||||
gizmo.clicked.connect(handleObjectClicked);
|
||||
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
||||
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
||||
gizmo.globalShow = Qt.binding(function() {return showIconGizmo;});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -407,12 +434,15 @@ Item {
|
||||
overlayView,
|
||||
{"view3D": overlayView, "targetNode": obj,
|
||||
"selectedNodes": selectedNodes, "scene": scene, "activeScene": activeScene,
|
||||
"locked": _generalHelper.isLocked(obj), "hidden": _generalHelper.isHidden(obj)});
|
||||
"locked": _generalHelper.isLocked(obj), "hidden": _generalHelper.isHidden(obj),
|
||||
"globalShow": showIconGizmo, "globalShowFrustum": showCameraFrustum});
|
||||
|
||||
cameraGizmos[cameraGizmos.length] = gizmo;
|
||||
gizmo.clicked.connect(handleObjectClicked);
|
||||
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
||||
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
||||
gizmo.globalShow = Qt.binding(function() {return showIconGizmo;});
|
||||
gizmo.globalShowFrustum = Qt.binding(function() {return showCameraFrustum;});
|
||||
frustum.viewPortRect = Qt.binding(function() {return viewPortRect;});
|
||||
gizmo.connectFrustum(frustum);
|
||||
}
|
||||
@@ -449,11 +479,13 @@ Item {
|
||||
"selectedNodes": selectedNodes, "scene": scene,
|
||||
"activeScene": activeScene,
|
||||
"locked": _generalHelper.isLocked(obj),
|
||||
"hidden": _generalHelper.isHidden(obj)});
|
||||
"hidden": _generalHelper.isHidden(obj),
|
||||
"globalShow": showIconGizmo});
|
||||
particleSystemIconGizmos[particleSystemIconGizmos.length] = gizmo;
|
||||
gizmo.clicked.connect(handleObjectClicked);
|
||||
gizmo.selectedNodes = Qt.binding(function() {return selectedNodes;});
|
||||
gizmo.activeScene = Qt.binding(function() {return activeScene;});
|
||||
gizmo.globalShow = Qt.binding(function() {return showIconGizmo;});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@ Item {
|
||||
property bool hasMouse: false
|
||||
property bool hidden: false
|
||||
property bool locked: false
|
||||
property bool globalShow: true
|
||||
property bool canBeVisible: activeScene === scene && !hidden && (targetNode ? targetNode.visible : false)
|
||||
|
||||
property alias iconSource: iconImage.source
|
||||
|
||||
@@ -55,7 +57,7 @@ Item {
|
||||
hasMouse = false;
|
||||
}
|
||||
|
||||
visible: activeScene === scene && !hidden && (targetNode ? targetNode.visible : false)
|
||||
visible: canBeVisible && globalShow
|
||||
|
||||
Overlay2D {
|
||||
id: iconOverlay
|
||||
|
||||
Reference in New Issue
Block a user