More profiles model refactoring - CURA-4482

This commit is contained in:
ChrisTerBeke 2017-10-26 11:51:24 +02:00
parent de34464e47
commit 152f6f8405
3 changed files with 32 additions and 27 deletions

View file

@ -53,6 +53,7 @@ class CrashHandler:
self.exception_type = exception_type
self.value = value
self.traceback = tb
self.dialog = QDialog()
# While we create the GUI, the information will be stored for sending afterwards
self.data = dict()

View file

@ -32,11 +32,9 @@ class ProfilesModel(InstanceContainersModel):
self.addRoleName(self.AvailableRole, "available")
Application.getInstance().globalContainerStackChanged.connect(self._update)
self._machine_manager = Application.getInstance().getMachineManager()
self._machine_manager.activeVariantChanged.connect(self._update)
self._machine_manager.activeStackChanged.connect(self._update)
self._machine_manager.activeMaterialChanged.connect(self._update)
Application.getInstance().getMachineManager().activeVariantChanged.connect(self._update)
Application.getInstance().getMachineManager().activeStackChanged.connect(self._update)
Application.getInstance().getMachineManager().activeMaterialChanged.connect(self._update)
# Factory function, used by QML
@staticmethod
@ -153,17 +151,21 @@ class ProfilesModel(InstanceContainersModel):
yield item
continue
machine_manager = Application.getInstance().getMachineManager()
# Quality-changes profile that has no value for layer height. Get the corresponding quality profile and ask that profile.
quality_type = profile.getMetaDataEntry("quality_type", None)
if quality_type:
quality_results = self._machine_manager.determineQualityAndQualityChangesForQualityType(quality_type)
quality_results = machine_manager.determineQualityAndQualityChangesForQualityType(quality_type)
for quality_result in quality_results:
if quality_result["stack"] is global_container_stack:
quality = quality_result["quality"]
break
else: #No global container stack in the results:
else:
# No global container stack in the results:
if quality_results:
quality = quality_results[0]["quality"] #Take any of the extruders.
# Take any of the extruders.
quality = quality_results[0]["quality"]
else:
quality = None
if quality and quality.hasProperty("layer_height", "value"):

View file

@ -176,17 +176,19 @@ class MachineSettingsAction(MachineAction):
extruder_manager.setActiveExtruderIndex(0)
# Move settable_per_extruder values out of the global container
extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStack()
# extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStack()
global_user_container = self._global_container_stack.getTop()
for setting_instance in global_user_container.findInstances():
setting_key = setting_instance.definition.key
if extruder_count > 1:
# Multi extrusion
# Make sure one of the extruder stacks is active
if extruder_manager.activeExtruderIndex == -1:
extruder_manager.setActiveExtruderIndex(0)
# Move settable_per_extruder values out of the global container
if previous_extruder_count == 1:
extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
global_user_container = self._global_container_stack.getTop()
for setting_instance in global_user_container.findInstances():
setting_key = setting_instance.definition.key
settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder")