From 08411e943c6273ed985fadcfc01575bfba011f04 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 22 Jun 2016 18:46:24 +0200 Subject: [PATCH] Reenable Per Object Settings tool in simple mode if the current printer has multiextrusion and tweak Per Object Settings panel size CURA-333 --- .../PerObjectSettingsPanel.qml | 14 ++++++++++-- .../PerObjectSettingsTool.py | 22 ++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index aa4a749e92..b237d60716 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -24,10 +24,20 @@ Item { anchors.top: parent.top; anchors.left: parent.left; - spacing: UM.Theme.getSize("default_margin").height; + spacing: UM.Theme.getSize("default_margin").height Row { + spacing: UM.Theme.getSize("default_margin").width + Label + { + text: catalog.i18nc("@label", "Print object with") + anchors.verticalCenter: extruderSelector.verticalCenter + + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + visible: extruderSelector.visible + } ComboBox { id: extruderSelector @@ -40,7 +50,7 @@ Item { } visible: extruders_model.rowCount() > 1 textRole: "name" - width: items.width + width: UM.Theme.getSize("setting_control").width height: UM.Theme.getSize("section").height MouseArea { diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py index 416d8cce6a..f80d9cbf9c 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsTool.py @@ -16,10 +16,17 @@ class PerObjectSettingsTool(Tool): self.setExposedProperties("SelectedObjectId", "ContainerID", "SelectedActiveExtruder") - Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged) + self._advanced_mode = False + self._multi_extrusion = False + Selection.selectionChanged.connect(self.propertyChanged) + + Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged) self._onPreferenceChanged("cura/active_mode") + Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) + self._onGlobalContainerChanged() + def event(self, event): return False @@ -55,5 +62,14 @@ class PerObjectSettingsTool(Tool): def _onPreferenceChanged(self, preference): if preference == "cura/active_mode": - enabled = Preferences.getInstance().getValue(preference)==1 - Application.getInstance().getController().toolEnabledChanged.emit(self._plugin_id, enabled) \ No newline at end of file + self._advanced_mode = Preferences.getInstance().getValue(preference) == 1 + self._updateEnabled() + + def _onGlobalContainerChanged(self): + global_container_stack = Application.getInstance().getGlobalContainerStack() + if global_container_stack: + self._multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + self._updateEnabled() + + def _updateEnabled(self): + Application.getInstance().getController().toolEnabledChanged.emit(self._plugin_id, self._advanced_mode or self._multi_extrusion) \ No newline at end of file