mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
Move PerObjectSettings to Cura
This was already done in master.
This commit is contained in:
parent
da1d59ff98
commit
e7f2c9de70
2 changed files with 43 additions and 4 deletions
|
@ -90,6 +90,7 @@ Item {
|
||||||
valid: model.valid;
|
valid: model.valid;
|
||||||
perObjectSetting: true
|
perObjectSetting: true
|
||||||
dismissable: true
|
dismissable: true
|
||||||
|
options: model.options
|
||||||
|
|
||||||
style: UM.Theme.styles.setting_item;
|
style: UM.Theme.styles.setting_item;
|
||||||
|
|
||||||
|
@ -120,7 +121,9 @@ Item {
|
||||||
|
|
||||||
Button
|
Button
|
||||||
{
|
{
|
||||||
|
id: customise_settings_button;
|
||||||
anchors.right: profileSelection.right;
|
anchors.right: profileSelection.right;
|
||||||
|
visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
|
||||||
|
|
||||||
text: catalog.i18nc("@action:button", "Customize Settings");
|
text: catalog.i18nc("@action:button", "Customize Settings");
|
||||||
|
|
||||||
|
@ -140,6 +143,16 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: settingPickDialog.visible = true;
|
onClicked: settingPickDialog.visible = true;
|
||||||
|
|
||||||
|
Connections
|
||||||
|
{
|
||||||
|
target: UM.Preferences;
|
||||||
|
|
||||||
|
onPreferenceChanged:
|
||||||
|
{
|
||||||
|
customise_settings_button.visible = parseInt(UM.Preferences.getValue("cura/active_mode"))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,9 @@ class SettingOverrideModel(ListModel):
|
||||||
TypeRole = Qt.UserRole + 5
|
TypeRole = Qt.UserRole + 5
|
||||||
UnitRole = Qt.UserRole + 6
|
UnitRole = Qt.UserRole + 6
|
||||||
ValidRole = Qt.UserRole + 7
|
ValidRole = Qt.UserRole + 7
|
||||||
|
OptionsRole = Qt.UserRole + 8
|
||||||
|
WarningDescriptionRole = Qt.UserRole + 9
|
||||||
|
ErrorDescriptionRole = Qt.UserRole + 10
|
||||||
|
|
||||||
def __init__(self, node, parent = None):
|
def __init__(self, node, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -32,6 +35,9 @@ class SettingOverrideModel(ListModel):
|
||||||
self.addRoleName(self.TypeRole, "type")
|
self.addRoleName(self.TypeRole, "type")
|
||||||
self.addRoleName(self.UnitRole, "unit")
|
self.addRoleName(self.UnitRole, "unit")
|
||||||
self.addRoleName(self.ValidRole, "valid")
|
self.addRoleName(self.ValidRole, "valid")
|
||||||
|
self.addRoleName(self.OptionsRole, "options")
|
||||||
|
self.addRoleName(self.WarningDescriptionRole, "warning_description")
|
||||||
|
self.addRoleName(self.ErrorDescriptionRole, "error_description")
|
||||||
|
|
||||||
@pyqtSlot(str, "QVariant")
|
@pyqtSlot(str, "QVariant")
|
||||||
def setSettingValue(self, key, value):
|
def setSettingValue(self, key, value):
|
||||||
|
@ -53,24 +59,44 @@ class SettingOverrideModel(ListModel):
|
||||||
self._decorator.settingValueChanged.connect(self._onSettingValueChanged)
|
self._decorator.settingValueChanged.connect(self._onSettingValueChanged)
|
||||||
self._onSettingsChanged()
|
self._onSettingsChanged()
|
||||||
|
|
||||||
|
def _createOptionsModel(self, options):
|
||||||
|
if not options:
|
||||||
|
return None
|
||||||
|
|
||||||
|
model = ListModel()
|
||||||
|
model.addRoleName(Qt.UserRole + 1, "value")
|
||||||
|
model.addRoleName(Qt.UserRole + 2, "name")
|
||||||
|
for value, name in options.items():
|
||||||
|
model.appendItem({"value": str(value), "name": str(name)})
|
||||||
|
return model
|
||||||
|
|
||||||
def _onSettingsChanged(self):
|
def _onSettingsChanged(self):
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
|
items = []
|
||||||
for key, setting in self._decorator.getAllSettings().items():
|
for key, setting in self._decorator.getAllSettings().items():
|
||||||
value = self._decorator.getSettingValue(key)
|
value = self._decorator.getSettingValue(key)
|
||||||
self.appendItem({
|
items.append({
|
||||||
"key": key,
|
"key": key,
|
||||||
"label": setting.getLabel(),
|
"label": setting.getLabel(),
|
||||||
"description": setting.getDescription(),
|
"description": setting.getDescription(),
|
||||||
"value": str(value),
|
"value": str(value),
|
||||||
"type": setting.getType(),
|
"type": setting.getType(),
|
||||||
"unit": setting.getUnit(),
|
"unit": setting.getUnit(),
|
||||||
"valid": setting.validate(value)
|
"valid": setting.validate(value),
|
||||||
|
"options": self._createOptionsModel(setting.getOptions()),
|
||||||
|
"warning_description": setting.getWarningDescription(),
|
||||||
|
"error_description": setting.getErrorDescription()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
items.sort(key = lambda i: i["key"])
|
||||||
|
|
||||||
|
for item in items:
|
||||||
|
self.appendItem(item)
|
||||||
|
|
||||||
def _onSettingValueChanged(self, setting):
|
def _onSettingValueChanged(self, setting):
|
||||||
index = self.find("key", setting.getKey())
|
index = self.find("key", setting.getKey())
|
||||||
|
value = self._decorator.getSettingValue(setting.getKey())
|
||||||
if index != -1 and self._ignore_setting_change != setting.getKey():
|
if index != -1 and self._ignore_setting_change != setting.getKey():
|
||||||
value = self._decorator.getSettingValue(setting.getKey())
|
|
||||||
self.setProperty(index, "value", str(value))
|
self.setProperty(index, "value", str(value))
|
||||||
self.setProperty(index, "valid", setting.validate(value))
|
self.setProperty(index, "valid", setting.validate(value))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue