From 1f08accbecf117b5590d1fb417d16854ac564193 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 12 Mar 2018 16:14:35 +0100 Subject: [PATCH 1/4] Fix profile importing for version upgrade CURA-4946 --- cura/Settings/CuraContainerRegistry.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 4b576a4207..828897b4dd 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -241,7 +241,7 @@ class CuraContainerRegistry(ContainerRegistry): profile.addMetaDataEntry("type", "quality_changes") profile.addMetaDataEntry("definition", global_profile.getMetaDataEntry("definition")) profile.addMetaDataEntry("quality_type", global_profile.getMetaDataEntry("quality_type")) - profile.addMetaDataEntry("extruder", extruder.getId()) + profile.addMetaDataEntry("position", "0") profile.setDirty(True) if idx == 0: # move all per-extruder settings to the first extruder's quality_changes @@ -273,10 +273,11 @@ class CuraContainerRegistry(ContainerRegistry): elif profile_index < len(machine_extruders) + 1: # This is assumed to be an extruder profile extruder_id = machine_extruders[profile_index - 1].definition.getId() - if not profile.getMetaDataEntry("extruder"): - profile.addMetaDataEntry("extruder", extruder_id) + extuder_position = str(profile_index - 1) + if not profile.getMetaDataEntry("position"): + profile.addMetaDataEntry("position", extuder_position) else: - profile.setMetaDataEntry("extruder", extruder_id) + profile.setMetaDataEntry("position", extuder_position) profile_id = (extruder_id + "_" + name_seed).lower().replace(" ", "_") else: #More extruders in the imported file than in the machine. From 00783401752a3bbc661fc6d65c15f6fd7861bdee Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Mar 2018 16:19:28 +0100 Subject: [PATCH 2/4] Only update NozzleModel when machine changes The available nozzles only change upon changing machines. Contributes to issue CURA-4606. --- cura/Machines/Models/NozzleModel.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cura/Machines/Models/NozzleModel.py b/cura/Machines/Models/NozzleModel.py index d178b39475..0879998b7d 100644 --- a/cura/Machines/Models/NozzleModel.py +++ b/cura/Machines/Models/NozzleModel.py @@ -26,9 +26,7 @@ class NozzleModel(ListModel): self._variant_manager = self._application.getVariantManager() self._machine_manager.globalContainerChanged.connect(self._update) - self._machine_manager.activeVariantChanged.connect(self._update) - self._machine_manager.activeStackChanged.connect(self._update) - self._machine_manager.activeMaterialChanged.connect(self._update) + self._update() def _update(self): Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) From 5afcf2beacfac24b56d11bab0da4a3f5efe6b1bf Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Mar 2018 16:28:41 +0100 Subject: [PATCH 3/4] Don't update brand and generic materials models upon switching active extruder Because the list of materials can't change by that action. Contributes to issue CURA-4606. --- cura/Machines/Models/BrandMaterialsModel.py | 2 -- cura/Machines/Models/GenericMaterialsModel.py | 2 -- 2 files changed, 4 deletions(-) diff --git a/cura/Machines/Models/BrandMaterialsModel.py b/cura/Machines/Models/BrandMaterialsModel.py index 7c3c4c515d..e36c6448d3 100644 --- a/cura/Machines/Models/BrandMaterialsModel.py +++ b/cura/Machines/Models/BrandMaterialsModel.py @@ -54,9 +54,7 @@ class BrandMaterialsModel(ListModel): self._material_manager = CuraApplication.getInstance().getMaterialManager() self._machine_manager.globalContainerChanged.connect(self._update) - self._extruder_manager.activeExtruderChanged.connect(self._update) self._material_manager.materialsUpdated.connect(self._update) - self._update() def setExtruderPosition(self, position: int): diff --git a/cura/Machines/Models/GenericMaterialsModel.py b/cura/Machines/Models/GenericMaterialsModel.py index 03343ba53b..6b149448ea 100644 --- a/cura/Machines/Models/GenericMaterialsModel.py +++ b/cura/Machines/Models/GenericMaterialsModel.py @@ -16,9 +16,7 @@ class GenericMaterialsModel(BaseMaterialsModel): self._material_manager = CuraApplication.getInstance().getMaterialManager() self._machine_manager.globalContainerChanged.connect(self._update) - self._extruder_manager.activeExtruderChanged.connect(self._update) self._material_manager.materialsUpdated.connect(self._update) - self._update() def _update(self): From f08407cf97370bf7b1465f856bfcd64db635113b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Mar 2018 16:32:10 +0100 Subject: [PATCH 4/4] Document Available role Contributes to issue CURA-4606. --- cura/Machines/Models/QualityProfilesDropDownMenuModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py index 40fdaaa410..06231491c7 100644 --- a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py +++ b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py @@ -29,7 +29,7 @@ class QualityProfilesDropDownMenuModel(ListModel): self.addRoleName(self.QualityTypeRole, "quality_type") self.addRoleName(self.LayerHeightRole, "layer_height") self.addRoleName(self.LayerHeightUnitRole, "layer_height_unit") - self.addRoleName(self.AvailableRole, "available") + self.addRoleName(self.AvailableRole, "available") #Whether the quality profile is available in our current nozzle + material. self.addRoleName(self.QualityGroupRole, "quality_group") self.addRoleName(self.QualityChangesGroupRole, "quality_changes_group")