Browse Source

Update quality and intent models when extruders get changed

CURA-6894
Lipu Fei 5 years ago
parent
commit
d350c9e3d9

+ 11 - 1
cura/Machines/Models/IntentCategoryModel.py

@@ -46,9 +46,19 @@ class IntentCategoryModel(ListModel):
         self.addRoleName(self.WeightRole, "weight")
         self.addRoleName(self.QualitiesRole, "qualities")
 
+        application = cura.CuraApplication.CuraApplication.getInstance()
+
         ContainerRegistry.getInstance().containerAdded.connect(self._onContainerChange)
         ContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChange)
-        cura.CuraApplication.CuraApplication.getInstance().getMachineManager().activeStackChanged.connect(self.update)
+
+        machine_manager = application.getMachineManager()
+        machine_manager.globalContainerChanged.connect(self.update)
+        machine_manager.activeQualityGroupChanged.connect(self.update)
+        machine_manager.activeStackChanged.connect(self.update)
+        machine_manager.extruderChanged.connect(self.update)
+
+        extruder_manager = application.getExtruderManager()
+        extruder_manager.extrudersChanged.connect(self.update)
 
         self.update()
 

+ 3 - 0
cura/Machines/Models/QualityProfilesDropDownMenuModel.py

@@ -43,6 +43,9 @@ class QualityProfilesDropDownMenuModel(ListModel):
         machine_manager.activeStackChanged.connect(self._onChange)
         machine_manager.extruderChanged.connect(self._onChange)
 
+        extruder_manager = application.getExtruderManager()
+        extruder_manager.extrudersChanged.connect(self._onChange)
+
         self._layer_height_unit = ""  # This is cached
 
         self._update_timer = QTimer()  # type: QTimer