mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Add a print job name setting to general preferences
CURA-5479
This commit is contained in:
parent
99f4c1a2d3
commit
c50f7aa455
4 changed files with 53 additions and 20 deletions
|
@ -533,7 +533,7 @@ class CuraApplication(QtApplication):
|
|||
preferences.addPreference("cura/active_mode", "simple")
|
||||
|
||||
preferences.addPreference("cura/categories_expanded", "")
|
||||
preferences.addPreference("cura/jobname_prefix", True)
|
||||
preferences.addPreference("cura/job_name_template", "{machine_name_short}_{project_name}")
|
||||
preferences.addPreference("cura/select_models_on_load", False)
|
||||
preferences.addPreference("view/center_on_select", False)
|
||||
preferences.addPreference("mesh/scale_to_fit", False)
|
||||
|
|
|
@ -252,9 +252,10 @@ class PrintInformation(QObject):
|
|||
self.materialNamesChanged.emit()
|
||||
|
||||
def _onPreferencesChanged(self, preference: str) -> None:
|
||||
if preference != "cura/material_settings":
|
||||
return
|
||||
if preference == "cura/job_name_template":
|
||||
self._updateJobName()
|
||||
|
||||
if preference == "cura/material_settings":
|
||||
for build_plate_number in range(self._multi_build_plate_model.maxBuildPlate + 1):
|
||||
self._calculateInformation(build_plate_number)
|
||||
|
||||
|
@ -305,12 +306,8 @@ class PrintInformation(QObject):
|
|||
|
||||
# Only update the job name when it's not user-specified.
|
||||
if not self._is_user_specified_job_name:
|
||||
if self._application.getInstance().getPreferences().getValue("cura/jobname_prefix") and not self._pre_sliced:
|
||||
# Don't add abbreviation if it already has the exact same abbreviation.
|
||||
if base_name.startswith(self._abbr_machine + "_"):
|
||||
self._job_name = base_name
|
||||
else:
|
||||
self._job_name = self._abbr_machine + "_" + base_name
|
||||
if not self._pre_sliced:
|
||||
self._job_name = self.parseTemplate()
|
||||
else:
|
||||
self._job_name = base_name
|
||||
|
||||
|
@ -440,3 +437,28 @@ class PrintInformation(QObject):
|
|||
"""Listen to scene changes to check if we need to reset the print information"""
|
||||
|
||||
self.setToZeroPrintInformation(self._active_build_plate)
|
||||
|
||||
def parseTemplate(self) -> str:
|
||||
"""Generate a print job name from the job name template
|
||||
|
||||
The template is a user preference: "cura/job_name_template"
|
||||
"""
|
||||
template = self._application.getInstance().getPreferences().getValue("cura/job_name_template")
|
||||
output = template
|
||||
|
||||
output = output.replace("{machine_name_short}", self._abbr_machine)
|
||||
|
||||
if "{machine_name}" in template:
|
||||
global_container_stack = self._application.getGlobalContainerStack()
|
||||
if not global_container_stack:
|
||||
self._abbr_machine = ""
|
||||
return
|
||||
active_machine_type_name = global_container_stack.definition.getName()
|
||||
active_machine_type_name = active_machine_type_name.replace(" ", "_")
|
||||
output = output.replace("{machine_name}", active_machine_type_name)
|
||||
|
||||
if "{project_name}" in template:
|
||||
base_name = self._stripAccents(self._base_name)
|
||||
output = output.replace("{project_name}", base_name)
|
||||
|
||||
return output
|
||||
|
|
|
@ -85,8 +85,8 @@ UM.PreferencesPage
|
|||
scaleTinyCheckbox.checked = boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
|
||||
UM.Preferences.resetPreference("cura/select_models_on_load")
|
||||
selectModelsOnLoadCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/select_models_on_load"))
|
||||
UM.Preferences.resetPreference("cura/jobname_prefix")
|
||||
prefixJobNameCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
|
||||
UM.Preferences.resetPreference("cura/job_name_template")
|
||||
jobnameTemplateTextField.text = UM.Preferences.getValue("cura/job_name_template")
|
||||
UM.Preferences.resetPreference("view/show_overhang");
|
||||
showOverhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang"))
|
||||
UM.Preferences.resetPreference("view/show_xray_warning");
|
||||
|
@ -627,14 +627,25 @@ UM.PreferencesPage
|
|||
{
|
||||
width: childrenRect.width
|
||||
height: childrenRect.height
|
||||
text: catalog.i18nc("@info:tooltip", "Should a prefix based on the printer name be added to the print job name automatically?")
|
||||
text: catalog.i18nc("@info:tooltip. Note variable names themselves (ie. machine_name_short, project_name) should not be translated", "Variables: machine_name_short, machine_name, project_name")
|
||||
|
||||
CheckBox
|
||||
Column
|
||||
{
|
||||
id: prefixJobNameCheckbox
|
||||
text: catalog.i18nc("@option:check", "Add machine prefix to job name")
|
||||
checked: boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
|
||||
onCheckedChanged: UM.Preferences.setValue("cura/jobname_prefix", checked)
|
||||
spacing: 4 * screenScaleFactor
|
||||
|
||||
Label
|
||||
{
|
||||
id: jobNameTemplateLabel
|
||||
text: catalog.i18nc("@label","Print job template:")
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
id: jobNameTemplateTextField
|
||||
width: 200 * screenScaleFactor
|
||||
text: UM.Preferences.getValue("cura/job_name_template")
|
||||
onTextChanged: UM.Preferences.setValue("cura/job_name_template", text)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue