Fix showing profile values for extruders

The profiles page would show the setting values in the quality profile, ignoring the quality_changes profile, because it could not find the appropriate quality_changes profile for the extruders

CURA-2478
This commit is contained in:
fieldOfView 2016-10-03 17:04:46 +02:00
parent 0e74b8eb08
commit e7da471199
4 changed files with 27 additions and 5 deletions

View file

@ -29,6 +29,9 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
# containers. # containers.
IndexRole = Qt.UserRole + 4 IndexRole = Qt.UserRole + 4
# The ID of the definition of the extruder.
DefinitionRole = Qt.UserRole + 5
## List of colours to display if there is no material or the material has no known ## List of colours to display if there is no material or the material has no known
# colour. # colour.
defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"] defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"]
@ -44,6 +47,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
self.addRoleName(self.NameRole, "name") self.addRoleName(self.NameRole, "name")
self.addRoleName(self.ColorRole, "color") self.addRoleName(self.ColorRole, "color")
self.addRoleName(self.IndexRole, "index") self.addRoleName(self.IndexRole, "index")
self.addRoleName(self.DefinitionRole, "definition")
self._add_global = False self._add_global = False
self._simple_names = False self._simple_names = False
@ -126,7 +130,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
"id": global_container_stack.getId(), "id": global_container_stack.getId(),
"name": "Global", "name": "Global",
"color": color, "color": color,
"index": -1 "index": -1,
"definition": ""
} }
items.append(item) items.append(item)
changed = True changed = True
@ -148,7 +153,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
"id": extruder.getId(), "id": extruder.getId(),
"name": extruder_name, "name": extruder_name,
"color": color, "color": color,
"index": position "index": position,
"definition": extruder.getBottom().getId()
} }
items.append(item) items.append(item)
changed = True changed = True

View file

@ -25,6 +25,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
self._container_registry = UM.Settings.ContainerRegistry.getInstance() self._container_registry = UM.Settings.ContainerRegistry.getInstance()
self._extruder_id = None self._extruder_id = None
self._extruder_definition_id = None
self._quality = None self._quality = None
self._material = None self._material = None
@ -46,6 +47,17 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
def extruderId(self): def extruderId(self):
return self._extruder_id return self._extruder_id
def setExtruderDefinition(self, extruder_definition):
if extruder_definition != self._extruder_definition_id:
self._extruder_definition_id = extruder_definition
self._update()
self.extruderDefinitionChanged.emit()
extruderDefinitionChanged = pyqtSignal()
@pyqtProperty(str, fset = setExtruderDefinition, notify = extruderDefinitionChanged)
def extruderDefinition(self):
return self._extruder_definition_id
def setQuality(self, quality): def setQuality(self, quality):
if quality != self._quality: if quality != self._quality:
self._quality = quality self._quality = quality
@ -138,8 +150,9 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
if quality_changes_container: if quality_changes_container:
criteria = {"type": "quality_changes", "quality_type": quality_type, "definition": definition_id, "name": quality_changes_container.getName()} criteria = {"type": "quality_changes", "quality_type": quality_type, "definition": definition_id, "name": quality_changes_container.getName()}
if self._extruder_id != "": if self._extruder_definition_id != "":
criteria["extruder"] = self._extruder_id criteria["extruder"] = self._extruder_definition_id
criteria["name"] = "%s_%s" % (self._extruder_definition_id, quality_changes_container.getName())
else: else:
criteria["extruder"] = None criteria["extruder"] = None

View file

@ -12,6 +12,7 @@ Tab
id: base id: base
property string extruderId: ""; property string extruderId: "";
property string extruderDefinition: "";
property string quality: ""; property string quality: "";
property string material: ""; property string material: "";
@ -55,7 +56,8 @@ Tab
model: Cura.QualitySettingsModel model: Cura.QualitySettingsModel
{ {
extruderId: base.extruderId != "" ? base.extruderId : "" extruderId: base.extruderId
extruderDefinition: base.extruderDefinition
quality: base.quality != null ? base.quality : "" quality: base.quality != null ? base.quality : ""
material: base.material != null ? base.material : "" material: base.material != null ? base.material : ""
} }

View file

@ -223,6 +223,7 @@ UM.ManagementPage
{ {
title: model.name; title: model.name;
extruderId: model.id; extruderId: model.id;
extruderDefinition: model.definition;
quality: base.currentItem != null ? base.currentItem.id : ""; quality: base.currentItem != null ? base.currentItem.id : "";
material: Cura.MachineManager.allActiveMaterialIds[model.id] material: Cura.MachineManager.allActiveMaterialIds[model.id]
} }