Merge branch 'feature_listmodel_setitems' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2016-08-30 11:08:57 +02:00
commit 91c11ee0fc
3 changed files with 14 additions and 10 deletions

View file

@ -31,7 +31,7 @@ class ContainerSettingsModel(ListModel):
self._update() self._update()
def _update(self): def _update(self):
self.clear() items = []
if len(self._container_ids) == 0: if len(self._container_ids) == 0:
return return
@ -64,14 +64,15 @@ class ContainerSettingsModel(ListModel):
else: else:
values.append("") values.append("")
self.appendItem({ items.append({
"key": key, "key": key,
"values": values, "values": values,
"label": definition.label, "label": definition.label,
"unit": definition.unit, "unit": definition.unit,
"category": category.label "category": category.label
}) })
self.sort(lambda k: (k["category"], k["key"])) items.sort(key = lambda k: (k["category"], k["key"]))
self.setItems(items)
## Set the ids of the containers which have the settings this model should list. ## Set the ids of the containers which have the settings this model should list.
# Also makes sure the model updates when the containers have property changes # Also makes sure the model updates when the containers have property changes

View file

@ -97,9 +97,10 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
changed = False changed = False
if self.rowCount() != 0: if self.rowCount() != 0:
self.clear()
changed = True changed = True
items = []
global_container_stack = UM.Application.getInstance().getGlobalContainerStack() global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
if global_container_stack: if global_container_stack:
if self._add_global: if self._add_global:
@ -111,7 +112,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
"color": color, "color": color,
"index": -1 "index": -1
} }
self.appendItem(item) items.append(item)
changed = True changed = True
manager = ExtruderManager.getInstance() manager = ExtruderManager.getInstance()
@ -133,9 +134,10 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
"color": color, "color": color,
"index": position "index": position
} }
self.appendItem(item) items.append(item)
changed = True changed = True
if changed: if changed:
self.sort(lambda item: item["index"]) items.sort(key = lambda i: i["index"])
self.setItems(items)
self.modelChanged.emit() self.modelChanged.emit()

View file

@ -70,7 +70,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
if not self._quality: if not self._quality:
return return
self.clear() items = []
settings = collections.OrderedDict() settings = collections.OrderedDict()
definition_container = UM.Application.getInstance().getGlobalContainerStack().getBottom() definition_container = UM.Application.getInstance().getGlobalContainerStack().getBottom()
@ -142,7 +142,6 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
criteria["extruder"] = None criteria["extruder"] = None
changes = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(**criteria) changes = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(**criteria)
if changes: if changes:
containers.extend(changes) containers.extend(changes)
@ -177,7 +176,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
if self._extruder_id == "" and UM.Application.getInstance().getGlobalContainerStack().getProperty(definition.key, "settable_per_extruder"): if self._extruder_id == "" and UM.Application.getInstance().getGlobalContainerStack().getProperty(definition.key, "settable_per_extruder"):
continue continue
self.appendItem({ items.append({
"key": definition.key, "key": definition.key,
"label": definition.label, "label": definition.label,
"unit": definition.unit, "unit": definition.unit,
@ -185,3 +184,5 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel):
"user_value": "" if user_value is None else str(user_value), "user_value": "" if user_value is None else str(user_value),
"category": current_category "category": current_category
}) })
self.setItems(items)