Fix the usage of protected variables in quality models

This commit is contained in:
Lipu Fei 2018-03-01 15:44:06 +01:00
parent 06ec16d627
commit d1c518f6d7
4 changed files with 14 additions and 14 deletions

View file

@ -1,7 +1,6 @@
# Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from UM.Application import Application
from UM.Logger import Logger from UM.Logger import Logger
from cura.Machines.Models.QualityProfilesDropDownMenuModel import QualityProfilesDropDownMenuModel from cura.Machines.Models.QualityProfilesDropDownMenuModel import QualityProfilesDropDownMenuModel
@ -15,7 +14,7 @@ class CustomQualityProfilesDropDownMenuModel(QualityProfilesDropDownMenuModel):
def _update(self): def _update(self):
Logger.log("d", "Updating %s ...", self.__class__.__name__) Logger.log("d", "Updating %s ...", self.__class__.__name__)
active_global_stack = Application.getInstance().getMachineManager().activeMachine active_global_stack = self._machine_manager.activeMachine
if active_global_stack is None: if active_global_stack is None:
self.setItems([]) self.setItems([])
Logger.log("d", "No active GlobalStack, set %s as empty.", self.__class__.__name__) Logger.log("d", "No active GlobalStack, set %s as empty.", self.__class__.__name__)

View file

@ -27,7 +27,7 @@ class QualityManagementModel(ListModel):
self._container_registry = CuraApplication.getInstance().getContainerRegistry() self._container_registry = CuraApplication.getInstance().getContainerRegistry()
self._machine_manager = CuraApplication.getInstance().getMachineManager() self._machine_manager = CuraApplication.getInstance().getMachineManager()
self._extruder_manager = CuraApplication.getInstance().getExtruderManager() self._extruder_manager = CuraApplication.getInstance().getExtruderManager()
self._quality_manager = CuraApplication.getInstance()._quality_manager self._quality_manager = CuraApplication.getInstance().getQualityManager()
self._machine_manager.globalContainerChanged.connect(self._update) self._machine_manager.globalContainerChanged.connect(self._update)
self._quality_manager.qualitiesUpdated.connect(self._update) self._quality_manager.qualitiesUpdated.connect(self._update)
@ -35,7 +35,7 @@ class QualityManagementModel(ListModel):
self._update() self._update()
def _update(self): def _update(self):
global_stack = self._machine_manager._global_container_stack global_stack = self._machine_manager.activeMachine
quality_group_dict = self._quality_manager.getQualityGroups(global_stack) quality_group_dict = self._quality_manager.getQualityGroups(global_stack)
quality_changes_group_dict = self._quality_manager.getQualityChangesGroups(global_stack) quality_changes_group_dict = self._quality_manager.getQualityChangesGroups(global_stack)

View file

@ -33,11 +33,13 @@ class QualityProfilesDropDownMenuModel(ListModel):
self.addRoleName(self.QualityGroupRole, "quality_group") self.addRoleName(self.QualityGroupRole, "quality_group")
self.addRoleName(self.QualityChangesGroupRole, "quality_changes_group") self.addRoleName(self.QualityChangesGroupRole, "quality_changes_group")
# connect signals self._application = Application.getInstance()
Application.getInstance().globalContainerStackChanged.connect(self._update) self._machine_manager = self._application.getMachineManager()
Application.getInstance().getMachineManager().activeQualityGroupChanged.connect(self._update) self._quality_manager = Application.getInstance().getQualityManager()
self._quality_manager = Application.getInstance()._quality_manager # connect signals
self._application.globalContainerStackChanged.connect(self._update)
self._machine_manager.activeQualityGroupChanged.connect(self._update)
self._quality_manager.qualitiesUpdated.connect(self._update) self._quality_manager.qualitiesUpdated.connect(self._update)
self._layer_height_unit = "" # This is cached self._layer_height_unit = "" # This is cached
@ -47,15 +49,14 @@ class QualityProfilesDropDownMenuModel(ListModel):
def _update(self): def _update(self):
Logger.log("d", "Updating quality profile model ...") Logger.log("d", "Updating quality profile model ...")
machine_manager = Application.getInstance().getMachineManager() global_stack = self._machine_manager.activeMachine
global_stack = machine_manager._global_container_stack
if global_stack is None: if global_stack is None:
self.setItems([]) self.setItems([])
Logger.log("d", "No active GlobalStack, set quality profile model as empty.") Logger.log("d", "No active GlobalStack, set quality profile model as empty.")
return return
# Check for material compatibility # Check for material compatibility
if not machine_manager.activeMaterialsCompatible(): if not self._machine_manager.activeMaterialsCompatible():
self.setItems([]) self.setItems([])
return return
@ -82,7 +83,7 @@ class QualityProfilesDropDownMenuModel(ListModel):
self.setItems(item_list) self.setItems(item_list)
def _fetchLayerHeight(self, quality_group: "QualityGroup"): def _fetchLayerHeight(self, quality_group: "QualityGroup"):
global_stack = Application.getInstance().getMachineManager()._global_container_stack global_stack = self._machine_manager.activeMachine
if not self._layer_height_unit: if not self._layer_height_unit:
unit = global_stack.definition.getProperty("layer_height", "unit") unit = global_stack.definition.getProperty("layer_height", "unit")
if not unit: if not unit:

View file

@ -33,7 +33,7 @@ class QualitySettingsModel(ListModel):
self._container_registry = ContainerRegistry.getInstance() self._container_registry = ContainerRegistry.getInstance()
self._application = Application.getInstance() self._application = Application.getInstance()
self._quality_manager = self._application._quality_manager self._quality_manager = self._application.getQualityManager()
self._extruder_position = "" self._extruder_position = ""
self._selected_quality_item = None # The selected quality in the quality management page self._selected_quality_item = None # The selected quality in the quality management page
@ -73,7 +73,7 @@ class QualitySettingsModel(ListModel):
items = [] items = []
global_container_stack = Application.getInstance().getGlobalContainerStack() global_container_stack = self._application.getGlobalContainerStack()
definition_container = global_container_stack.definition definition_container = global_container_stack.definition
quality_group = self._selected_quality_item["quality_group"] quality_group = self._selected_quality_item["quality_group"]