Browse Source

PerObject tool is now disabled when group or multiple objects are selected

CURA-2287
Jaime van Kessel 8 years ago
parent
commit
e67f5bdd44
1 changed files with 11 additions and 1 deletions
  1. 11 1
      plugins/PerObjectSettingsTool/PerObjectSettingsTool.py

+ 11 - 1
plugins/PerObjectSettingsTool/PerObjectSettingsTool.py

@@ -22,6 +22,7 @@ class PerObjectSettingsTool(Tool):
 
 
         self._advanced_mode = False
         self._advanced_mode = False
         self._multi_extrusion = False
         self._multi_extrusion = False
+        self._single_model_selected = False
 
 
         Selection.selectionChanged.connect(self.propertyChanged)
         Selection.selectionChanged.connect(self.propertyChanged)
 
 
@@ -30,6 +31,8 @@ class PerObjectSettingsTool(Tool):
 
 
         Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
         Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
         self._onGlobalContainerChanged()
         self._onGlobalContainerChanged()
+        Selection.selectionChanged.connect(self._updateEnabled)
+
 
 
     def event(self, event):
     def event(self, event):
         super().event(event)
         super().event(event)
@@ -102,4 +105,11 @@ class PerObjectSettingsTool(Tool):
             self._updateEnabled()
             self._updateEnabled()
 
 
     def _updateEnabled(self):
     def _updateEnabled(self):
-        Application.getInstance().getController().toolEnabledChanged.emit(self._plugin_id, self._advanced_mode or self._multi_extrusion)
+        selected_objects = Selection.getAllSelectedObjects()
+        if len(selected_objects)> 1:
+            self._single_model_selected = False
+        elif len(selected_objects) == 1 and selected_objects[0].callDecoration("isGroup"):
+            self._single_model_selected = False # Group is selected, so tool needs to be disabled
+        else:
+            self._single_model_selected = True
+        Application.getInstance().getController().toolEnabledChanged.emit(self._plugin_id, (self._advanced_mode or self._multi_extrusion) and self._single_model_selected)