mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Merge pull request #18754 from Ultimaker/CURA-11783-enum-instead-of-text-value
Cura 11783 enum instead of text value
This commit is contained in:
commit
6d5966472c
5 changed files with 42 additions and 6 deletions
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
from PyQt6.QtCore import Qt, pyqtSignal
|
from PyQt6.QtCore import Qt, pyqtSignal
|
||||||
|
|
||||||
|
from UM import i18nCatalog
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Settings.SettingDefinition import SettingDefinition
|
from UM.Settings.SettingDefinition import SettingDefinition
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
@ -19,7 +20,7 @@ class SpecificSettingsModel(ListModel):
|
||||||
self.addRoleName(self.LabelRole, "label")
|
self.addRoleName(self.LabelRole, "label")
|
||||||
self.addRoleName(self.ValueRole, "value")
|
self.addRoleName(self.ValueRole, "value")
|
||||||
|
|
||||||
self._i18n_catalog = None
|
self._settings_catalog = i18nCatalog("fdmprinter.def.json")
|
||||||
self._update()
|
self._update()
|
||||||
|
|
||||||
modelChanged = pyqtSignal()
|
modelChanged = pyqtSignal()
|
||||||
|
@ -32,13 +33,24 @@ class SpecificSettingsModel(ListModel):
|
||||||
setting_type = stack.getProperty(setting, "type")
|
setting_type = stack.getProperty(setting, "type")
|
||||||
if setting_type is not None:
|
if setting_type is not None:
|
||||||
# This is not very good looking, but will do for now
|
# This is not very good looking, but will do for now
|
||||||
value = str(SettingDefinition.settingValueToString(setting_type, value)) + " " + str(unit)
|
value = str(SettingDefinition.settingValueToString(setting_type, value))
|
||||||
|
if unit:
|
||||||
|
value += " " + str(unit)
|
||||||
|
if setting_type == "enum":
|
||||||
|
options = stack.getProperty(setting, "options")
|
||||||
|
value_msgctxt = f"{str(setting)} option {str(value)}"
|
||||||
|
value_msgid = options[stack.getProperty(setting, "value")]
|
||||||
|
value = self._settings_catalog.i18nc(value_msgctxt, value_msgid)
|
||||||
else:
|
else:
|
||||||
value = str(value)
|
value = str(value)
|
||||||
|
|
||||||
|
label_msgctxt = f"{str(setting)} label"
|
||||||
|
label_msgid = stack.getProperty(setting, "label")
|
||||||
|
label = self._settings_catalog.i18nc(label_msgctxt, label_msgid)
|
||||||
|
|
||||||
self.appendItem({
|
self.appendItem({
|
||||||
"category": category,
|
"category": category,
|
||||||
"label": stack.getProperty(setting, "label"),
|
"label": label,
|
||||||
"value": value
|
"value": value
|
||||||
})
|
})
|
||||||
self.modelChanged.emit()
|
self.modelChanged.emit()
|
||||||
|
|
|
@ -216,6 +216,16 @@ UM.Dialog
|
||||||
headers: ["category", "label", "value"]
|
headers: ["category", "label", "value"]
|
||||||
rows: manager.exportedSettingModelItems
|
rows: manager.exportedSettingModelItems
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections
|
||||||
|
{
|
||||||
|
target: manager
|
||||||
|
function onExportedSettingModelChanged()
|
||||||
|
{
|
||||||
|
tableModel.clear()
|
||||||
|
tableModel.rows = manager.exportedSettingModelItems
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,11 +6,12 @@ from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal
|
||||||
|
|
||||||
class SettingExport(QObject):
|
class SettingExport(QObject):
|
||||||
|
|
||||||
def __init__(self, id, name, value, selectable, show):
|
def __init__(self, id, name, value, value_name, selectable, show):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.id = id
|
self.id = id
|
||||||
self._name = name
|
self._name = name
|
||||||
self._value = value
|
self._value = value
|
||||||
|
self._value_name = value_name
|
||||||
self._selected = selectable
|
self._selected = selectable
|
||||||
self._selectable = selectable
|
self._selectable = selectable
|
||||||
self._show_in_menu = show
|
self._show_in_menu = show
|
||||||
|
@ -23,6 +24,10 @@ class SettingExport(QObject):
|
||||||
def value(self):
|
def value(self):
|
||||||
return self._value
|
return self._value
|
||||||
|
|
||||||
|
@pyqtProperty(str, constant=True)
|
||||||
|
def valuename(self):
|
||||||
|
return str(self._value_name)
|
||||||
|
|
||||||
selectedChanged = pyqtSignal(bool)
|
selectedChanged = pyqtSignal(bool)
|
||||||
|
|
||||||
def setSelected(self, selected):
|
def setSelected(self, selected):
|
||||||
|
|
|
@ -24,7 +24,7 @@ RowLayout
|
||||||
|
|
||||||
UM.Label
|
UM.Label
|
||||||
{
|
{
|
||||||
text: modelData.value
|
text: modelData.valuename
|
||||||
}
|
}
|
||||||
|
|
||||||
UM.HelpIcon
|
UM.HelpIcon
|
||||||
|
|
|
@ -6,6 +6,7 @@ from typing import Optional, cast, List, Dict, Pattern, Set
|
||||||
|
|
||||||
from PyQt6.QtCore import QObject, pyqtProperty
|
from PyQt6.QtCore import QObject, pyqtProperty
|
||||||
|
|
||||||
|
from UM import i18nCatalog
|
||||||
from UM.Settings.SettingDefinition import SettingDefinition
|
from UM.Settings.SettingDefinition import SettingDefinition
|
||||||
from UM.Settings.InstanceContainer import InstanceContainer
|
from UM.Settings.InstanceContainer import InstanceContainer
|
||||||
from UM.Settings.SettingFunction import SettingFunction
|
from UM.Settings.SettingFunction import SettingFunction
|
||||||
|
@ -109,6 +110,7 @@ class SettingsExportModel(QObject):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _exportSettings(settings_stack):
|
def _exportSettings(settings_stack):
|
||||||
|
settings_catalog = i18nCatalog("fdmprinter.def.json")
|
||||||
user_settings_container = settings_stack.userChanges
|
user_settings_container = settings_stack.userChanges
|
||||||
user_keys = user_settings_container.getAllKeys()
|
user_keys = user_settings_container.getAllKeys()
|
||||||
exportable_settings = SettingsExportModel.EXPORTABLE_SETTINGS
|
exportable_settings = SettingsExportModel.EXPORTABLE_SETTINGS
|
||||||
|
@ -118,9 +120,15 @@ class SettingsExportModel(QObject):
|
||||||
|
|
||||||
for setting_to_export in user_keys:
|
for setting_to_export in user_keys:
|
||||||
show_in_menu = setting_to_export not in SettingsExportModel.PER_MODEL_EXPORTABLE_SETTINGS_KEYS
|
show_in_menu = setting_to_export not in SettingsExportModel.PER_MODEL_EXPORTABLE_SETTINGS_KEYS
|
||||||
label = settings_stack.getProperty(setting_to_export, "label")
|
label_msgtxt = f"{str(setting_to_export)} label"
|
||||||
|
label_msgid = settings_stack.getProperty(setting_to_export, "label")
|
||||||
|
label = settings_catalog.i18nc(label_msgtxt, label_msgid)
|
||||||
value = settings_stack.getProperty(setting_to_export, "value")
|
value = settings_stack.getProperty(setting_to_export, "value")
|
||||||
unit = settings_stack.getProperty(setting_to_export, "unit")
|
unit = settings_stack.getProperty(setting_to_export, "unit")
|
||||||
|
options = settings_stack.getProperty(setting_to_export, "options")
|
||||||
|
value_msgctxt = f"{str(setting_to_export)} option {str(value)}"
|
||||||
|
value_msgid = options.get(value, "")
|
||||||
|
value_name = settings_catalog.i18nc(value_msgctxt, value_msgid)
|
||||||
|
|
||||||
setting_type = settings_stack.getProperty(setting_to_export, "type")
|
setting_type = settings_stack.getProperty(setting_to_export, "type")
|
||||||
if setting_type is not None:
|
if setting_type is not None:
|
||||||
|
@ -131,6 +139,7 @@ class SettingsExportModel(QObject):
|
||||||
settings_export.append(SettingExport(setting_to_export,
|
settings_export.append(SettingExport(setting_to_export,
|
||||||
label,
|
label,
|
||||||
value,
|
value,
|
||||||
|
value_name,
|
||||||
is_exportable or setting_to_export in exportable_settings,
|
is_exportable or setting_to_export in exportable_settings,
|
||||||
show_in_menu))
|
show_in_menu))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue