From 975e7f04b440ade23d31cd65eacf7ba065803233 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 8 Aug 2017 11:27:45 +0200 Subject: [PATCH 1/3] Remove unused incorrect code The property is called activeMaterialIds, but it returns the stack ids. The code is superceeded by allActiveMaterialIds. --- cura/Settings/MachineManager.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 7fb9c3b0a2..4749906ce4 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -504,16 +504,6 @@ class MachineManager(QObject): return result - @pyqtProperty("QVariantList", notify = activeVariantChanged) - def activeMaterialIds(self): - result = [] - if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None: - for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): - if stack.variant and stack.variant != self._empty_variant_container: - result.append(stack.variant.getId()) - - return result - @pyqtProperty("QVariantList", notify = activeMaterialChanged) def activeMaterialNames(self): result = [] From 8d72ba5fe74acbdceba76b98f42a58dbcc447f80 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 8 Aug 2017 11:32:34 +0200 Subject: [PATCH 2/3] Fix setting material of non-active extruder through menu --- resources/qml/Menus/MaterialMenu.qml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 9127276f3d..e167e65855 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -39,17 +39,20 @@ Menu visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex onTriggered: { - var material_id = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); + var materialId = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; var items = materialsModel.items; // materialsModel.find cannot be used because we need to look inside the metadata property of items for(var i in items) { - if (items[i]["metadata"]["GUID"] == material_id) + if (items[i]["metadata"]["GUID"] == materialId) { Cura.MachineManager.setActiveMaterial(items[i].id); break; } } + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } @@ -64,12 +67,15 @@ Menu MenuItem { text: model.name - checkable: true; - checked: model.id == Cura.MachineManager.activeMaterialId; - exclusiveGroup: group; + checkable: true + checked: model.id == Cura.MachineManager.allActiveMaterialIds[ExtruderManager.extruderIds[extruderIndex]] + exclusiveGroup: group onTriggered: { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); Cura.MachineManager.setActiveMaterial(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } onObjectAdded: menu.insertItem(index, object) @@ -102,12 +108,15 @@ Menu MenuItem { text: model.name - checkable: true; - checked: model.id == Cura.MachineManager.activeMaterialId; - exclusiveGroup: group; + checkable: true + checked: model.id == Cura.MachineManager.allActiveMaterialIds[ExtruderManager.extruderIds[extruderIndex]] + exclusiveGroup: group onTriggered: { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); Cura.MachineManager.setActiveMaterial(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } onObjectAdded: brandMaterialsMenu.insertItem(index, object) From 06305594720083daf7921fa2b4a2a0547f6c17c7 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 8 Aug 2017 11:41:15 +0200 Subject: [PATCH 3/3] Fix setting variant of non-active extruder through menu --- resources/qml/Menus/NozzleMenu.qml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index a9fffc84ab..ee7ddacf98 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -30,12 +30,15 @@ Menu visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex onTriggered: { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); var hotendId = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; var itemIndex = nozzleInstantiator.model.find("name", hotendId); if(itemIndex > -1) { - Cura.MachineManager.setActiveVariant(nozzleInstantiator.model.getItem(itemIndex).id) + Cura.MachineManager.setActiveVariant(nozzleInstantiator.model.getItem(itemIndex).id); } + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); } } @@ -56,11 +59,17 @@ Menu } } MenuItem { - text: model.name; - checkable: true; - checked: model.id == Cura.MachineManager.activeVariantId; + text: model.name + checkable: true + checked: model.id == Cura.MachineManager.allActiveVariantIds[ExtruderManager.extruderIds[extruderIndex]] exclusiveGroup: group - onTriggered: Cura.MachineManager.setActiveVariant(model.id) + onTriggered: + { + var activeExtruderIndex = ExtruderManager.activeExtruderIndex; + ExtruderManager.setActiveExtruderIndex(extruderIndex); + Cura.MachineManager.setActiveVariant(model.id); + ExtruderManager.setActiveExtruderIndex(activeExtruderIndex); + } } onObjectAdded: menu.insertItem(index, object) onObjectRemoved: menu.removeItem(object)