Browse Source

Add Select All functionality

fieldOfView 8 years ago
parent
commit
e01c8a4f10
3 changed files with 31 additions and 1 deletions
  1. 17 1
      cura/CuraApplication.py
  2. 11 0
      resources/qml/Actions.qml
  3. 3 0
      resources/qml/Cura.qml

+ 17 - 1
cura/CuraApplication.py

@@ -633,7 +633,23 @@ class CuraApplication(QtApplication):
         if node:
             op = SetTransformOperation(node, Vector())
             op.push()
-    
+
+    ##  Select all nodes containing mesh data in the scene.
+    @pyqtSlot()
+    def selectAll(self):
+        if not self.getController().getToolsEnabled():
+            return
+
+        Selection.clear()
+        for node in DepthFirstIterator(self.getController().getScene().getRoot()):
+            if type(node) is not SceneNode:
+                continue
+            if not node.getMeshData() and not node.callDecoration("isGroup"):
+                continue  # Node that doesnt have a mesh and is not a group.
+            if node.getParent() and node.getParent().callDecoration("isGroup"):
+                continue  # Grouped nodes don't need resetting as their parent (the group) is resetted)
+            Selection.add(node)
+
     ##  Delete all nodes containing mesh data in the scene.
     @pyqtSlot()
     def deleteAll(self):

+ 11 - 0
resources/qml/Actions.qml

@@ -27,6 +27,7 @@ Item
 
     property alias multiplyObject: multiplyObjectAction;
 
+    property alias selectAll: selectAllAction;
     property alias deleteAll: deleteAllAction;
     property alias reloadAll: reloadAllAction;
     property alias resetAllTranslation: resetAllTranslationAction;
@@ -230,6 +231,16 @@ Item
         iconName: "edit-duplicate"
     }
 
+    Action
+    {
+        id: selectAllAction;
+        text: catalog.i18nc("@action:inmenu menubar:edit","&Select All Objects");
+        enabled: UM.Controller.toolsEnabled;
+        iconName: "edit-select-all";
+        shortcut: "Ctrl+A";
+        onTriggered: Printer.selectAll();
+    }
+
     Action
     {
         id: deleteAllAction;

+ 3 - 0
resources/qml/Cura.qml

@@ -118,6 +118,7 @@ UM.MainWindow
                 MenuItem { action: Cura.Actions.undo; }
                 MenuItem { action: Cura.Actions.redo; }
                 MenuSeparator { }
+                MenuItem { action: Cura.Actions.selectAll; }
                 MenuItem { action: Cura.Actions.deleteSelection; }
                 MenuItem { action: Cura.Actions.deleteAll; }
                 MenuItem { action: Cura.Actions.resetAllTranslation; }
@@ -537,6 +538,7 @@ UM.MainWindow
         MenuItem { action: Cura.Actions.deleteObject; }
         MenuItem { action: Cura.Actions.multiplyObject; }
         MenuSeparator { }
+        MenuItem { action: Cura.Actions.selectAll; }
         MenuItem { action: Cura.Actions.deleteAll; }
         MenuItem { action: Cura.Actions.reloadAll; }
         MenuItem { action: Cura.Actions.resetAllTranslation; }
@@ -589,6 +591,7 @@ UM.MainWindow
     Menu
     {
         id: contextMenu;
+        MenuItem { action: Cura.Actions.selectAll; }
         MenuItem { action: Cura.Actions.deleteAll; }
         MenuItem { action: Cura.Actions.reloadAll; }
         MenuItem { action: Cura.Actions.resetAllTranslation; }