forked from qt-creator/qt-creator
Create nodes under the context menu
Change-Id: I6f944bf3bda0d706f9678dc918f875d7b5b779ff Reviewed-by: Rafal Andrusieczko <rnd@spyro-soft.com>
This commit is contained in:
@@ -291,17 +291,16 @@ Item {
|
|||||||
graph.removeSelection();
|
graph.removeSelection();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onRightClicked: function (pos) {
|
onRightClicked: pos => {
|
||||||
if (NodeGraphEditorBackend.nodeGraphEditorModel.currentFileName !== "") {
|
if (NodeGraphEditorBackend.nodeGraphEditorModel.currentFileName !== "") {
|
||||||
|
contextMenu.node = null;
|
||||||
var selectedNodes = graphView.graph.selectedNodes;
|
var selectedNodes = graphView.graph.selectedNodes;
|
||||||
if (selectedNodes) {
|
if (selectedNodes && selectedNodes.length > 0) {
|
||||||
if (selectedNodes.length > 0)
|
|
||||||
contextMenu.node = selectedNodes.at(0);
|
contextMenu.node = selectedNodes.at(0);
|
||||||
else
|
}
|
||||||
contextMenu.node = null;
|
|
||||||
} else
|
|
||||||
contextMenu.node = null;
|
|
||||||
|
|
||||||
|
const factor = (1.0 / graphView.zoom);
|
||||||
|
contextMenu.newPosition = Qt.point(-graphView.containerItem.x * factor + pos.x * factor, -graphView.containerItem.y * factor + pos.y * factor);
|
||||||
contextMenu.popup();
|
contextMenu.popup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -15,6 +15,7 @@ StudioControls.Menu {
|
|||||||
|
|
||||||
required property var graph
|
required property var graph
|
||||||
property var inputsModel: []
|
property var inputsModel: []
|
||||||
|
property point newPosition
|
||||||
property var node
|
property var node
|
||||||
|
|
||||||
closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
|
closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
|
||||||
@@ -30,7 +31,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("BaseColor")
|
text: qsTr("BaseColor")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.baseColor);
|
internal.createNode(Nodes.Components.baseColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +39,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("Metalness")
|
text: qsTr("Metalness")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.metalness);
|
internal.createNode(Nodes.Components.metalness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("Roughness")
|
text: qsTr("Roughness")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.roughness);
|
internal.createNode(Nodes.Components.roughness);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,7 +55,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("CheckBox")
|
text: qsTr("CheckBox")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.checkBox);
|
internal.createNode(Nodes.Components.checkBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +63,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("Color")
|
text: qsTr("Color")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.color);
|
internal.createNode(Nodes.Components.color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +71,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("ComboBox")
|
text: qsTr("ComboBox")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.comboBox);
|
internal.createNode(Nodes.Components.comboBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +79,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("Material")
|
text: qsTr("Material")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.material);
|
internal.createNode(Nodes.Components.material);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("RealSpinBox")
|
text: qsTr("RealSpinBox")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.realSpinBox);
|
internal.createNode(Nodes.Components.realSpinBox);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +95,7 @@ StudioControls.Menu {
|
|||||||
text: qsTr("Texture")
|
text: qsTr("Texture")
|
||||||
|
|
||||||
onTriggered: () => {
|
onTriggered: () => {
|
||||||
contextMenu.graph.insertNode(Nodes.Components.texture);
|
internal.createNode(Nodes.Components.texture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,4 +126,15 @@ StudioControls.Menu {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QtObject {
|
||||||
|
id: internal
|
||||||
|
|
||||||
|
function createNode(type) {
|
||||||
|
const node = contextMenu.graph.insertNode(type);
|
||||||
|
const nodeItem = node.item;
|
||||||
|
nodeItem.x = contextMenu.newPosition.x;
|
||||||
|
nodeItem.y = contextMenu.newPosition.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user