From 51c499b08c333b45e7d6604d8f4e565a97aa38bb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 16 Jul 2018 16:26:55 +0200 Subject: [PATCH] When the extruder is being disabled and it is the currently selected one, then switch to the default extruder. Also do not allow users to click in a disabled extruder, only if they want to enable it again. --- cura/Settings/MachineManager.py | 5 +++++ resources/qml/SidebarHeader.qml | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 26f5a490dd..ff585deb54 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -985,6 +985,11 @@ class MachineManager(QObject): self.updateDefaultExtruder() self.updateNumberExtrudersEnabled() self.correctExtruderSettings() + + # In case this extruder is being disabled and it's the currently selected one, switch to the default extruder + if not enabled and position == ExtruderManager.getInstance().activeExtruderIndex: + ExtruderManager.getInstance().setActiveExtruderIndex(int(self._default_extruder_position)) + # ensure that the quality profile is compatible with current combination, or choose a compatible one if available self._updateQualityWithMaterial() self.extruderChanged.emit() diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 02b6bef983..4e8911b3c1 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -164,8 +164,12 @@ Column onClicked: { switch (mouse.button) { case Qt.LeftButton: - forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - Cura.ExtruderManager.setActiveExtruderIndex(index); + extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled + if (extruder_enabled) + { + forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + Cura.ExtruderManager.setActiveExtruderIndex(index); + } break; case Qt.RightButton: extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled