reuse single context menu instance
1 files changed, 22 insertions(+), 17 deletions(-)

M qml/GraphView.qml
M qml/GraphView.qml +22 -17
@@ 146,7 146,8 @@ Flickable {
                     } else if (mouse.button === Qt.MiddleButton) {
                         layoutModel.removeNode(model.nodeId);
                     } else if (mouse.button === Qt.RightButton) {
-                        contextMenu.popup();
+                        contextMenu.nodeId = model.nodeId;
+                        contextMenu.popup(node);
                     }
                 }
 

          
@@ 165,22 166,6 @@ Flickable {
                 }
             }
 
-            Menu {
-                id: contextMenu
-                Action {
-                    text: "Add node"
-                    onTriggered: {
-                        layoutModel.addNode(model.nodeId, GraphLayoutModel.NodeType.Square);
-                    }
-                }
-                Action {
-                    text: "Remove node"
-                    onTriggered: {
-                        layoutModel.removeNode(model.nodeId);
-                    }
-                }
-            }
-
             Behavior on y {
                 NumberAnimation {
                     duration: 200

          
@@ 190,6 175,26 @@ Flickable {
         }
     }
 
+    Menu {
+        id: contextMenu
+
+        property int nodeId: -1
+
+        Action {
+            text: "Add node"
+            onTriggered: {
+                layoutModel.addNode(contextMenu.nodeId, GraphLayoutModel.NodeType.Square);
+            }
+        }
+
+        Action {
+            text: "Remove node"
+            onTriggered: {
+                layoutModel.removeNode(contextMenu.nodeId);
+            }
+        }
+    }
+
     Component.onCompleted: {
         layoutModel.addNode(-1, GraphLayoutModel.NodeType.Round);
         layoutModel.addNode(0, GraphLayoutModel.NodeType.Square);