diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/CameraGizmo.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/CameraGizmo.qml
index 6a2a7b3a763..e158128a5fd 100644
--- a/share/qtcreator/qml/qmlpuppet/mockfiles/CameraGizmo.qml
+++ b/share/qtcreator/qml/qmlpuppet/mockfiles/CameraGizmo.qml
@@ -30,7 +30,7 @@ import CameraGeometry 1.0
IconGizmo {
id: cameraGizmo
- iconSource: "qrc:///qtquickplugin/mockfiles/images/camera-pick-icon.png"
+ iconSource: "qrc:///qtquickplugin/mockfiles/images/editor_camera.png"
gizmoModel.geometry: cameraGeometry
property alias geometryName: cameraGeometry.name // Name must be unique for each geometry
property alias viewPortRect: cameraGeometry.viewPortRect
@@ -43,7 +43,7 @@ IconGizmo {
gizmoModel.materials: [
DefaultMaterial {
id: defaultMaterial
- emissiveColor: "blue"
+ emissiveColor: cameraGizmo.targetNode === cameraGizmo.selectedNode ? "#FF0000" : "#555555"
lighting: DefaultMaterial.NoLighting
cullingMode: Material.DisableCulling
}
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml
index 2c908755229..5ca9ab8f9fb 100644
--- a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml
+++ b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml
@@ -66,9 +66,11 @@ Window {
var component = Qt.createComponent("LightGizmo.qml");
if (component.status === Component.Ready) {
var gizmo = component.createObject(overlayScene,
- {"view3D": overlayView, "targetNode": obj});
+ {"view3D": overlayView, "targetNode": obj,
+ "selectedNode": selectedNode});
lightGizmos[lightGizmos.length] = gizmo;
- gizmo.selected.connect(emitObjectClicked);
+ gizmo.clicked.connect(emitObjectClicked);
+ gizmo.selectedNode = Qt.binding(function() {return selectedNode;});
}
}
@@ -80,10 +82,11 @@ Window {
var gizmo = component.createObject(
overlayScene,
{"view3D": overlayView, "targetNode": obj, "geometryName": geometryName,
- "viewPortRect": viewPortRect});
+ "viewPortRect": viewPortRect, "selectedNode": selectedNode});
cameraGizmos[cameraGizmos.length] = gizmo;
- gizmo.selected.connect(emitObjectClicked);
+ gizmo.clicked.connect(emitObjectClicked);
gizmo.viewPortRect = Qt.binding(function() {return viewPortRect;});
+ gizmo.selectedNode = Qt.binding(function() {return selectedNode;});
}
}
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/IconGizmo.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/IconGizmo.qml
index 6fbf17367e0..8623b87a840 100644
--- a/share/qtcreator/qml/qmlpuppet/mockfiles/IconGizmo.qml
+++ b/share/qtcreator/qml/qmlpuppet/mockfiles/IconGizmo.qml
@@ -32,12 +32,13 @@ Node {
property View3D view3D
property bool highlightOnHover: true
property Node targetNode: null
+ property Node selectedNode: null
property alias gizmoModel: gizmoModel
property alias iconSource: iconImage.source
signal positionCommit()
- signal selected(Node node)
+ signal clicked(Node node)
position: targetNode ? targetNode.scenePosition : Qt.vector3d(0, 0, 0)
rotation: targetNode ? targetNode.sceneRotation : Qt.vector3d(0, 0, 0)
@@ -57,22 +58,27 @@ Node {
parent: view3D
Rectangle {
- width: 24
- height: 24
+ width: iconImage.width
+ height: iconImage.height
x: -width / 2
y: -height
color: "transparent"
border.color: "#7777ff"
- border.width: highlightOnHover && iconMouseArea.containsMouse ? 2 : 0
+ border.width: iconGizmo.selectedNode === iconGizmo.targetNode
+ || (iconGizmo.highlightOnHover && iconMouseArea.containsMouse) ? 2 : 0
radius: 5
+ opacity: iconGizmo.selectedNode === iconGizmo.targetNode ? 0.3 : 1
Image {
id: iconImage
- anchors.fill: parent
+ fillMode: Image.Pad
MouseArea {
id: iconMouseArea
anchors.fill: parent
- onClicked: selected(targetNode)
- hoverEnabled: highlightOnHover
+ onClicked: iconGizmo.clicked(iconGizmo.targetNode)
+ hoverEnabled: iconGizmo.highlightOnHover
+ && iconGizmo.selectedNode !== iconGizmo.targetNode
+ acceptedButtons: iconGizmo.selectedNode !== iconGizmo.targetNode
+ ? Qt.LeftButton : Qt.NoButton
}
}
}
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon.png
deleted file mode 100644
index 47610f54501..00000000000
Binary files a/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon.png and /dev/null differ
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon@2x.png
deleted file mode 100644
index 769934ae01c..00000000000
Binary files a/share/qtcreator/qml/qmlpuppet/mockfiles/images/camera-pick-icon@2x.png and /dev/null differ
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera.png
new file mode 100644
index 00000000000..4b2bf93d414
Binary files /dev/null and b/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera.png differ
diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera@2x.png b/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera@2x.png
new file mode 100644
index 00000000000..1c690433c2b
Binary files /dev/null and b/share/qtcreator/qml/qmlpuppet/mockfiles/images/editor_camera@2x.png differ
diff --git a/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc b/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc
index deb70ba1453..7cb9e7913e0 100644
--- a/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc
+++ b/share/qtcreator/qml/qmlpuppet/qmlpuppet.qrc
@@ -28,8 +28,8 @@
mockfiles/meshes/scalerod.mesh
mockfiles/meshes/ring.mesh
mockfiles/meshes/ringselect.mesh
- mockfiles/images/camera-pick-icon.png
- mockfiles/images/camera-pick-icon@2x.png
+ mockfiles/images/editor_camera.png
+ mockfiles/images/editor_camera@2x.png
mockfiles/images/light-pick-icon.png
mockfiles/images/light-pick-icon@2x.png
mockfiles/images/item_selection_active.png