diff --git a/share/qtcreator/qmldesigner/nodegrapheditor/Main.qml b/share/qtcreator/qmldesigner/nodegrapheditor/Main.qml index 65e8eb9d795..f436dc70f83 100644 --- a/share/qtcreator/qmldesigner/nodegrapheditor/Main.qml +++ b/share/qtcreator/qmldesigner/nodegrapheditor/Main.qml @@ -294,6 +294,19 @@ Item { graph.removeSelection(); } } + onNodeRightClicked: node => { + if (NodeGraphEditorBackend.nodeGraphEditorModel.currentFileName !== "") { + contextMenu.node = node; + var selectedNodes = graphView.graph.selectedNodes; + if (selectedNodes && selectedNodes.length > 0) { + contextMenu.node = selectedNodes.at(0); + } + + const factor = (1.0 / graphView.zoom); + contextMenu.newPosition = Qt.point(-graphView.containerItem.x * factor + node.item.x * factor, -graphView.containerItem.y * factor + node.item.y * factor); + contextMenu.popup(); + } + } onRightClicked: pos => { if (NodeGraphEditorBackend.nodeGraphEditorModel.currentFileName !== "") { contextMenu.node = null; diff --git a/share/qtcreator/qmldesigner/nodegrapheditor/imports/Editor/ContextMenu.qml b/share/qtcreator/qmldesigner/nodegrapheditor/imports/Editor/ContextMenu.qml index 85da01e0c49..c8d034d4851 100644 --- a/share/qtcreator/qmldesigner/nodegrapheditor/imports/Editor/ContextMenu.qml +++ b/share/qtcreator/qmldesigner/nodegrapheditor/imports/Editor/ContextMenu.qml @@ -113,7 +113,7 @@ StudioControls.Menu { } StudioControls.Menu { - enabled: node !== null + enabled: node !== null && pinRepeater.count > 0 title: "Pins" Repeater {