From 63ae6ee9ec874f734ad28975fe2866b0df8d03b9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Aug 2019 15:33:39 +0200 Subject: [PATCH] Fix updating materials models when materials change before first printer switch Otherwise the _extruder_stack field would not yet be set. Contributes to issue CURA-6600. --- cura/Machines/Models/BaseMaterialsModel.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index 3ab11b7e9d..81be676a33 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -31,8 +31,13 @@ class BaseMaterialsModel(ListModel): self._container_registry = self._application.getInstance().getContainerRegistry() self._machine_manager = self._application.getMachineManager() + self._extruder_position = 0 + self._extruder_stack = None + self._enabled = True + # Update the stack and the model data when the machine changes self._machine_manager.globalContainerChanged.connect(self._updateExtruderStack) + self._updateExtruderStack() # Update this model when switching machines, when adding materials or changing their metadata. self._machine_manager.activeStackChanged.connect(self._update) @@ -55,12 +60,8 @@ class BaseMaterialsModel(ListModel): self.addRoleName(Qt.UserRole + 15, "container_node") self.addRoleName(Qt.UserRole + 16, "is_favorite") - self._extruder_position = 0 - self._extruder_stack = None - self._available_materials = None # type: Optional[Dict[str, MaterialNode]] self._favorite_ids = set() # type: Set[str] - self._enabled = True def _updateExtruderStack(self): global_stack = self._machine_manager.activeMachine