1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.10
- import QtQuick.Controls 2.15
- import QtQuick.Layouts 1.1
- import UM 1.5 as UM
- import Cura 1.1 as Cura
- UM.PreferencesPage
- {
- //: General configuration page title
- title: catalog.i18nc("@title:tab", "General")
- id: generalPreferencesPage
- width: parent ? parent.width: 0
- function setDefaultLanguage(languageCode)
- {
- //loops through the languageList and sets the language using the languageCode
- for(var i = 0; i < languageList.count; i++)
- {
- if (languageComboBox.model.get(i).code == languageCode)
- {
- languageComboBox.currentIndex = i
- }
- }
- }
- function setDefaultTheme(defaultThemeCode)
- {
- for(var i = 0; i < themeList.count; i++)
- {
- if (themeComboBox.model.get(i).code == defaultThemeCode)
- {
- themeComboBox.currentIndex = i
- }
- }
- }
- function setDefaultDiscardOrKeepProfile(code)
- {
- for (var i = 0; i < choiceOnProfileOverrideDropDownButton.model.count; i++)
- {
- if (choiceOnProfileOverrideDropDownButton.model.get(i).code == code)
- {
- choiceOnProfileOverrideDropDownButton.currentIndex = i;
- break;
- }
- }
- }
- function setDefaultOpenProjectOption(code)
- {
- for (var i = 0; i < choiceOnOpenProjectDropDownButton.model.count; ++i)
- {
- if (choiceOnOpenProjectDropDownButton.model.get(i).code == code)
- {
- choiceOnOpenProjectDropDownButton.currentIndex = i
- break;
- }
- }
- }
- function reset()
- {
- UM.Preferences.resetPreference("general/language")
- var defaultLanguage = UM.Preferences.getValue("general/language")
- setDefaultLanguage(defaultLanguage)
- UM.Preferences.resetPreference("general/theme")
- var defaultTheme = UM.Preferences.getValue("general/theme")
- setDefaultTheme(defaultTheme)
- UM.Preferences.resetPreference("general/use_tray_icon")
- trayIconCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/use_tray_icon"))
- UM.Preferences.resetPreference("cura/single_instance")
- singleInstanceCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance"))
- UM.Preferences.resetPreference("cura/single_instance_clear_before_load")
- singleInstanceClearBeforeLoadCheckbox.checked = boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load"))
- UM.Preferences.resetPreference("physics/automatic_push_free")
- pushFreeCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
- UM.Preferences.resetPreference("physics/automatic_drop_down")
- dropDownCheckbox.checked = boolCheck(UM.Preferences.getValue("physics/automatic_drop_down"))
- UM.Preferences.resetPreference("mesh/scale_to_fit")
- scaleToFitCheckbox.checked = boolCheck(UM.Preferences.getValue("mesh/scale_to_fit"))
- UM.Preferences.resetPreference("mesh/scale_tiny_meshes")
- 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("view/show_overhang");
- showOverhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang"))
- UM.Preferences.resetPreference("view/show_xray_warning");
- showXrayErrorCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_xray_warning"))
- UM.Preferences.resetPreference("view/center_on_select");
- centerOnSelectCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select"))
- UM.Preferences.resetPreference("view/invert_zoom");
- invertZoomCheckbox.checked = boolCheck(UM.Preferences.getValue("view/invert_zoom"))
- UM.Preferences.resetPreference("view/zoom_to_mouse");
- zoomToMouseCheckbox.checked = boolCheck(UM.Preferences.getValue("view/zoom_to_mouse"))
- //UM.Preferences.resetPreference("view/top_layer_count");
- //topLayerCountCheckbox.checked = boolCheck(UM.Preferences.getValue("view/top_layer_count"))
- UM.Preferences.resetPreference("general/restore_window_geometry")
- restoreWindowPositionCheckbox.checked = boolCheck(UM.Preferences.getValue("general/restore_window_geometry"))
- UM.Preferences.resetPreference("general/camera_perspective_mode")
- //var defaultCameraMode = UM.Preferences.getValue("general/camera_perspective_mode")
- // /setDefaultCameraMode(defaultCameraMode)
- UM.Preferences.resetPreference("cura/choice_on_profile_override")
- setDefaultDiscardOrKeepProfile(UM.Preferences.getValue("cura/choice_on_profile_override"))
- UM.Preferences.resetPreference("cura/choice_on_open_project")
- setDefaultOpenProjectOption(UM.Preferences.getValue("cura/choice_on_open_project"))
- UM.Preferences.resetPreference("info/send_slice_info")
- sendDataCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_slice_info"))
- UM.Preferences.resetPreference("info/send_engine_crash")
- sendEngineCrashCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_engine_crash"))
- UM.Preferences.resetPreference("info/anonymous_engine_crash_report")
- sendEngineCrashCheckboxAnonymous.checked = boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report"))
- UM.Preferences.resetPreference("info/automatic_update_check")
- checkUpdatesCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_update_check"))
- UM.Preferences.resetPreference("info/latest_update_source")
- UM.Preferences.resetPreference("info/automatic_plugin_update_check")
- pluginNotificationsUpdateCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_plugin_update_check"))
- }
- buttons: [
- Cura.SecondaryButton
- {
- text: catalog.i18nc("@action:button", "Defaults")
- onClicked: reset()
- }
- ]
- ScrollView
- {
- id: preferencesScrollView
- width: parent.width
- height: parent.height
- ScrollBar.vertical: UM.ScrollBar
- {
- id: preferencesScrollBar
- parent: preferencesScrollView.parent
- anchors
- {
- top: parent.top
- bottom: parent.bottom
- right: parent.right
- }
- onPositionChanged: {
- // This removes focus from items when scrolling.
- // This fixes comboboxes staying open and scrolling container
- if (!activeFocus) {
- forceActiveFocus();
- }
- }
- }
- Column
- {
- UM.I18nCatalog{id: catalog; name: "cura"}
- width: preferencesScrollView.width - preferencesScrollBar.width
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label", "Interface")
- }
- GridLayout
- {
- id: interfaceGrid
- columns: 2
- width: parent.width
- UM.Label
- {
- id: languageLabel
- text: "Language*:" //Don't translate this, to make it easier to find the language drop-down if you can't read the current language.
- }
- ListModel
- {
- id: languageList
- Component.onCompleted:
- {
- append({ text: "English", code: "en_US" })
- append({ text: "Čeština", code: "cs_CZ" })
- append({ text: "Deutsch", code: "de_DE" })
- append({ text: "Español", code: "es_ES" })
- append({ text: "Français", code: "fr_FR" })
- append({ text: "Italiano", code: "it_IT" })
- append({ text: "日本語", code: "ja_JP" })
- append({ text: "한국어", code: "ko_KR" })
- append({ text: "Nederlands", code: "nl_NL" })
- append({ text: "Português do Brasil", code: "pt_BR" })
- append({ text: "Português", code: "pt_PT" })
- append({ text: "Русский", code: "ru_RU" })
- append({ text: "Türkçe", code: "tr_TR" })
- append({ text: "简体中文", code: "zh_CN" })
- var date_object = new Date();
- if (date_object.getUTCMonth() == 8 && date_object.getUTCDate() == 19) //Only add Pirate on the 19th of September.
- {
- append({ text: "Pirate", code: "en_7S" })
- }
- // incomplete and/or abandoned
- append({ text: catalog.i18nc("@heading", "-- incomplete --"), code: "" })
- append({ text: "正體字", code: "zh_TW" })
- append({ text: "Magyar", code: "hu_HU" })
- append({ text: "Suomi", code: "fi_FI" })
- append({ text: "Polski", code: "pl_PL" })
- }
- }
- Cura.ComboBox
- {
- id: languageComboBox
- textRole: "text"
- model: languageList
- implicitWidth: UM.Theme.getSize("combobox").width
- height: currencyField.height
- function setCurrentIndex() {
- var code = UM.Preferences.getValue("general/language");
- for(var i = 0; i < languageList.count; ++i)
- {
- if(model.get(i).code == code)
- {
- return i
- }
- }
- }
- currentIndex: setCurrentIndex()
- onActivated:
- {
- if (model.get(index).code != "")
- {
- UM.Preferences.setValue("general/language", model.get(index).code);
- }
- else
- {
- currentIndex = setCurrentIndex();
- }
- }
- }
- UM.Label
- {
- id: currencyLabel
- text: catalog.i18nc("@label", "Currency:")
- }
- Cura.TextField
- {
- id: currencyField
- selectByMouse: true
- text: UM.Preferences.getValue("cura/currency")
- implicitWidth: UM.Theme.getSize("combobox").width
- implicitHeight: UM.Theme.getSize("setting_control").height
- onTextChanged: UM.Preferences.setValue("cura/currency", text)
- }
- UM.Label
- {
- id: themeLabel
- text: catalog.i18nc("@label: Please keep the asterix, it's to indicate that a restart is needed.", "Theme*:")
- }
- ListModel
- {
- id: themeList
- Component.onCompleted: {
- var themes = UM.Theme.getThemes()
- for (var i = 0; i < themes.length; i++)
- {
- append({ text: themes[i].name.toString(), code: themes[i].id.toString() });
- }
- }
- }
- Cura.ComboBox
- {
- id: themeComboBox
- model: themeList
- textRole: "text"
- implicitWidth: UM.Theme.getSize("combobox").width
- height: currencyField.height
- currentIndex:
- {
- var code = UM.Preferences.getValue("general/theme");
- for(var i = 0; i < themeList.count; ++i)
- {
- if(model.get(i).code == code)
- {
- return i
- }
- }
- return 0;
- }
- onActivated: UM.Preferences.setValue("general/theme", model.get(index).code)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Slice automatically when changing settings.")
- UM.CheckBox
- {
- id: autoSliceCheckbox
- checked: boolCheck(UM.Preferences.getValue("general/auto_slice"))
- onClicked: UM.Preferences.setValue("general/auto_slice", checked)
- text: catalog.i18nc("@option:check", "Slice automatically");
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Show an icon and notifications in the system notification area.")
- UM.CheckBox
- {
- id: trayIconCheckbox
- checked: boolCheck(UM.Preferences.getValue("general/use_tray_icon"))
- onClicked: UM.Preferences.setValue("general/use_tray_icon", checked)
- text: catalog.i18nc("@option:check", "Add icon to system tray *");
- }
- }
- UM.Label
- {
- id: languageCaption
- //: Language change warning
- text: catalog.i18nc("@label", "*You will need to restart the application for these changes to have effect.")
- wrapMode: Text.WordWrap
- font.italic: true
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").width
- }
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label", "Viewport behavior")
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Highlight unsupported areas of the model in red. Without support these areas will not print properly.")
- UM.CheckBox
- {
- id: showOverhangCheckbox
- checked: boolCheck(UM.Preferences.getValue("view/show_overhang"))
- onClicked: UM.Preferences.setValue("view/show_overhang", checked)
- text: catalog.i18nc("@option:check", "Display overhang");
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Highlight missing or extraneous surfaces of the model using warning signs. The toolpaths will often be missing parts of the intended geometry.")
- UM.CheckBox
- {
- id: showXrayErrorCheckbox
- checked: boolCheck(UM.Preferences.getValue("view/show_xray_warning"))
- onClicked: UM.Preferences.setValue("view/show_xray_warning", checked)
- text: catalog.i18nc("@option:check", "Display model errors");
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Moves the camera so the model is in the center of the view when a model is selected")
- UM.CheckBox
- {
- id: centerOnSelectCheckbox
- text: catalog.i18nc("@action:button","Center camera when item is selected");
- checked: boolCheck(UM.Preferences.getValue("view/center_on_select"))
- onClicked: UM.Preferences.setValue("view/center_on_select", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip", "Should the default zoom behavior of cura be inverted?")
- UM.CheckBox
- {
- id: invertZoomCheckbox
- text: catalog.i18nc("@action:button", "Invert the direction of camera zoom.");
- checked: boolCheck(UM.Preferences.getValue("view/invert_zoom"))
- onClicked: {
- if(!checked && zoomToMouseCheckbox.checked) //Fix for Github issue Ultimaker/Cura#6490: Make sure the camera origin is in front when unchecking.
- {
- UM.Controller.setCameraOrigin("home");
- }
- UM.Preferences.setValue("view/invert_zoom", checked);
- }
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: zoomToMouseCheckbox.enabled ? catalog.i18nc("@info:tooltip", "Should zooming move in the direction of the mouse?") : catalog.i18nc("@info:tooltip", "Zooming towards the mouse is not supported in the orthographic perspective.")
- UM.CheckBox
- {
- id: zoomToMouseCheckbox
- text: catalog.i18nc("@action:button", "Zoom toward mouse direction")
- checked: boolCheck(UM.Preferences.getValue("view/zoom_to_mouse")) && zoomToMouseCheckbox.enabled
- onClicked: UM.Preferences.setValue("view/zoom_to_mouse", checked)
- enabled: UM.Preferences.getValue("general/camera_perspective_mode") !== "orthographic"
- }
- //Because there is no signal for individual preferences, we need to manually link to the onPreferenceChanged signal.
- Connections
- {
- target: UM.Preferences
- function onPreferenceChanged(preference)
- {
- if(preference != "general/camera_perspective_mode")
- {
- return;
- }
- zoomToMouseCheckbox.enabled = UM.Preferences.getValue("general/camera_perspective_mode") !== "orthographic";
- zoomToMouseCheckbox.checked = boolCheck(UM.Preferences.getValue("view/zoom_to_mouse")) && zoomToMouseCheckbox.enabled;
- }
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved so that they no longer intersect?")
- UM.CheckBox
- {
- id: pushFreeCheckbox
- text: catalog.i18nc("@option:check", "Ensure models are kept apart")
- checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free"))
- onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should models on the platform be moved down to touch the build plate?")
- UM.CheckBox
- {
- id: dropDownCheckbox
- text: catalog.i18nc("@option:check", "Automatically drop models to the build plate")
- checked: boolCheck(UM.Preferences.getValue("physics/automatic_drop_down"))
- onCheckedChanged: UM.Preferences.setValue("physics/automatic_drop_down", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width;
- height: childrenRect.height;
- text: catalog.i18nc("@info:tooltip","Show caution message in g-code reader.")
- UM.CheckBox
- {
- id: gcodeShowCautionCheckbox
- checked: boolCheck(UM.Preferences.getValue("gcodereader/show_caution"))
- onClicked: UM.Preferences.setValue("gcodereader/show_caution", checked)
- text: catalog.i18nc("@option:check","Caution message in g-code reader");
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should layer be forced into compatibility mode?")
- UM.CheckBox
- {
- id: forceLayerViewCompatibilityModeCheckbox
- text: catalog.i18nc("@option:check", "Force layer view compatibility mode (restart required)")
- checked: boolCheck(UM.Preferences.getValue("view/force_layer_view_compatibility_mode"))
- onCheckedChanged: UM.Preferences.setValue("view/force_layer_view_compatibility_mode", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should Cura open at the location it was closed?")
- UM.CheckBox
- {
- id: restoreWindowPositionCheckbox
- text: catalog.i18nc("@option:check", "Restore window position on start")
- checked: boolCheck(UM.Preferences.getValue("general/restore_window_geometry"))
- onCheckedChanged: UM.Preferences.setValue("general/restore_window_geometry", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "What type of camera rendering should be used?")
- Column
- {
- spacing: UM.Theme.getSize("narrow_margin").height
- UM.Label
- {
- text: catalog.i18nc("@window:text", "Camera rendering:")
- }
- ListModel
- {
- id: comboBoxList
- Component.onCompleted:
- {
- append({ text: catalog.i18n("Perspective"), code: "perspective" })
- append({ text: catalog.i18n("Orthographic"), code: "orthographic" })
- }
- }
- Cura.ComboBox
- {
- id: cameraComboBox
- model: comboBoxList
- textRole: "text"
- width: UM.Theme.getSize("combobox").width
- height: UM.Theme.getSize("combobox").height
- currentIndex:
- {
- var code = UM.Preferences.getValue("general/camera_perspective_mode");
- for(var i = 0; i < comboBoxList.count; ++i)
- {
- if(model.get(i).code == code)
- {
- return i
- }
- }
- return 0
- }
- onActivated: UM.Preferences.setValue("general/camera_perspective_mode", model.get(index).code)
- }
- }
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label","Opening and saving files")
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- visible: Qt.platform.os !== "osx"
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","Should opening files from the desktop or external applications open in the same instance of Cura?")
- UM.CheckBox
- {
- id: singleInstanceCheckbox
- text: catalog.i18nc("@option:check","Use a single instance of Cura")
- checked: boolCheck(UM.Preferences.getValue("cura/single_instance"))
- onCheckedChanged: UM.Preferences.setValue("cura/single_instance", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","Should the build plate be cleared before loading a new model in the single instance of Cura?")
- enabled: singleInstanceCheckbox.checked
- UM.CheckBox
- {
- id: singleInstanceClearBeforeLoadCheckbox
- text: catalog.i18nc("@option:check","Clear buildplate before loading model into the single instance")
- checked: boolCheck(UM.Preferences.getValue("cura/single_instance_clear_before_load"))
- onCheckedChanged: UM.Preferences.setValue("cura/single_instance_clear_before_load", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?")
- UM.CheckBox
- {
- id: scaleToFitCheckbox
- text: catalog.i18nc("@option:check","Scale large models")
- checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit"))
- onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?")
- UM.CheckBox
- {
- id: scaleTinyCheckbox
- text: catalog.i18nc("@option:check","Scale extremely small models")
- checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
- onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","Should models be selected after they are loaded?")
- UM.CheckBox
- {
- id: selectModelsOnLoadCheckbox
- text: catalog.i18nc("@option:check","Select models when loaded")
- checked: boolCheck(UM.Preferences.getValue("cura/select_models_on_load"))
- onCheckedChanged: UM.Preferences.setValue("cura/select_models_on_load", checked)
- }
- }
- UM.TooltipArea
- {
- 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?")
- UM.CheckBox
- {
- 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)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
- UM.CheckBox
- {
- text: catalog.i18nc("@option:check", "Show summary dialog when saving project")
- checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_project_save"))
- onCheckedChanged: UM.Preferences.setValue("cura/dialog_on_project_save", checked)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Default behavior when opening a project file")
- Column
- {
- spacing: UM.Theme.getSize("narrow_margin").height
- UM.Label
- {
- text: catalog.i18nc("@window:text", "Default behavior when opening a project file: ")
- }
- Cura.ComboBox
- {
- id: choiceOnOpenProjectDropDownButton
- width: UM.Theme.getSize("combobox").width
- height: UM.Theme.getSize("combobox").height
- model: ListModel
- {
- id: openProjectOptionModel
- Component.onCompleted:
- {
- append({ text: catalog.i18nc("@option:openProject", "Always ask me this"), code: "always_ask" })
- append({ text: catalog.i18nc("@option:openProject", "Always open as a project"), code: "open_as_project" })
- append({ text: catalog.i18nc("@option:openProject", "Always import models"), code: "open_as_model" })
- }
- }
- textRole: "text"
- currentIndex:
- {
- var index = 0;
- var currentChoice = UM.Preferences.getValue("cura/choice_on_open_project");
- for (var i = 0; i < model.count; ++i)
- {
- if (model.get(i).code == currentChoice)
- {
- index = i;
- break;
- }
- }
- return index;
- }
- onActivated: UM.Preferences.setValue("cura/choice_on_open_project", model.get(index).code)
- }
- }
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").width
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "When you have made changes to a profile and switched to a different one, a dialog will be shown asking whether you want to keep your modifications or not, or you can choose a default behaviour and never show that dialog again.")
- Column
- {
- spacing: UM.Theme.getSize("narrow_margin").height
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label", "Profiles")
- }
- UM.Label
- {
- text: catalog.i18nc("@window:text", "Default behavior for changed setting values when switching to a different profile: ")
- }
- Cura.ComboBox
- {
- id: choiceOnProfileOverrideDropDownButton
- width: UM.Theme.getSize("combobox_wide").width
- height: UM.Theme.getSize("combobox_wide").height
- model: ListModel
- {
- id: discardOrKeepProfileListModel
- Component.onCompleted:
- {
- append({ text: catalog.i18nc("@option:discardOrKeep", "Always ask me this"), code: "always_ask" })
- append({ text: catalog.i18nc("@option:discardOrKeep", "Always discard changed settings"), code: "always_discard" })
- append({ text: catalog.i18nc("@option:discardOrKeep", "Always transfer changed settings to new profile"), code: "always_keep" })
- }
- }
- textRole: "text"
- currentIndex:
- {
- var index = 0;
- var code = UM.Preferences.getValue("cura/choice_on_profile_override");
- for (var i = 0; i < model.count; ++i)
- {
- if (model.get(i).code == code)
- {
- index = i;
- break;
- }
- }
- return index;
- }
- onActivated: UM.Preferences.setValue("cura/choice_on_profile_override", model.get(index).code)
- }
- }
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label", "Privacy")
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "Should slicing crashes be automatically reported to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored, unless you give explicit permission.")
- UM.CheckBox
- {
- id: sendEngineCrashCheckbox
- text: catalog.i18nc("@option:check","Send engine crash reports")
- checked: boolCheck(UM.Preferences.getValue("info/send_engine_crash"))
- onCheckedChanged: UM.Preferences.setValue("info/send_engine_crash", checked)
- }
- }
- ButtonGroup
- {
- id: curaCrashGroup
- buttons: [sendEngineCrashCheckboxAnonymous, sendEngineCrashCheckboxUser]
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "Send crash reports without any personally identifiable information or models data to UltiMaker.")
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- Cura.RadioButton
- {
- id: sendEngineCrashCheckboxAnonymous
- text: catalog.i18nc("@option:radio", "Anonymous crash reports")
- enabled: sendEngineCrashCheckbox.checked && Cura.API.account.isLoggedIn
- checked: boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report"))
- onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", true)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: Cura.API.account.isLoggedIn ?
- catalog.i18nc("@info:tooltip", "Send crash reports with your registered UltiMaker account name and the project name to UltiMaker Sentry. No actual model data is being send.") :
- catalog.i18nc("@info:tooltip", "Please sign in to your UltiMaker account to allow sending non-anonymous data.")
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- Cura.RadioButton
- {
- id: sendEngineCrashCheckboxUser
- text: catalog.i18nc("@option:radio", "Include UltiMaker account name")
- enabled: sendEngineCrashCheckbox.checked && Cura.API.account.isLoggedIn
- checked: !boolCheck(UM.Preferences.getValue("info/anonymous_engine_crash_report")) && Cura.API.account.isLoggedIn
- onClicked: UM.Preferences.setValue("info/anonymous_engine_crash_report", false)
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.")
- UM.CheckBox
- {
- id: sendDataCheckbox
- text: catalog.i18nc("@option:check","Send (anonymous) print information")
- checked: boolCheck(UM.Preferences.getValue("info/send_slice_info"))
- onCheckedChanged: UM.Preferences.setValue("info/send_slice_info", checked)
- }
- UM.SimpleButton
- {
- onClicked: CuraApplication.showMoreInformationDialogForAnonymousDataCollection()
- iconSource: UM.Theme.getIcon("Information")
- anchors.left: sendDataCheckbox.right
- anchors.verticalCenter: sendDataCheckbox.verticalCenter
- hoverBackgroundColor: UM.Theme.getColor("secondary_button_hover")
- backgroundRadius: width / 2
- height: UM.Theme.getSize("small_button_icon").height
- color: UM.Theme.getColor("small_button_text")
- width: height
- }
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- font: UM.Theme.getFont("medium_bold")
- text: catalog.i18nc("@label", "Updates")
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "Should Cura check for updates when the program is started?")
- UM.CheckBox
- {
- id: checkUpdatesCheckbox
- text: catalog.i18nc("@option:check","Check for updates on start")
- checked: boolCheck(UM.Preferences.getValue("info/automatic_update_check"))
- onCheckedChanged: UM.Preferences.setValue("info/automatic_update_check", checked)
- }
- }
- ButtonGroup
- {
- id: curaUpdatesGroup
- buttons: [checkUpdatesOptionBeta, checkUpdatesOptionStable]
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "When checking for updates, only check for stable releases.")
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- Cura.RadioButton
- {
- id: checkUpdatesOptionStable
- text: catalog.i18nc("@option:radio", "Stable releases only")
- enabled: checkUpdatesCheckbox.checked
- checked: UM.Preferences.getValue("info/latest_update_source") == "stable"
- onClicked: UM.Preferences.setValue("info/latest_update_source", "stable")
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "When checking for updates, check for both stable and for beta releases.")
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- Cura.RadioButton
- {
- id: checkUpdatesOptionBeta
- text: catalog.i18nc("@option:radio", "Stable and Beta releases")
- enabled: checkUpdatesCheckbox.checked
- checked: UM.Preferences.getValue("info/latest_update_source") == "beta"
- onClicked: UM.Preferences.setValue("info/latest_update_source", "beta")
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip", "Should an automatic check for new plugins be done every time Cura is started? It is highly recommended that you do not disable this!")
- UM.CheckBox
- {
- id: pluginNotificationsUpdateCheckbox
- text: catalog.i18nc("@option:check", "Get notifications for plugin updates")
- checked: boolCheck(UM.Preferences.getValue("info/automatic_plugin_update_check"))
- onCheckedChanged: UM.Preferences.setValue("info/automatic_plugin_update_check", checked)
- }
- }
- /* Multi-buildplate functionality is disabled because it's broken. See CURA-4975 for the ticket to remove it.
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
- Label
- {
- font.bold: true
- text: catalog.i18nc("@label","Experimental")
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip","Use multi build plate functionality")
- CheckBox
- {
- id: useMultiBuildPlateCheckbox
- text: catalog.i18nc("@option:check","Use multi build plate functionality (restart required)")
- checked: boolCheck(UM.Preferences.getValue("cura/use_multi_build_plate"))
- onCheckedChanged: UM.Preferences.setValue("cura/use_multi_build_plate", checked)
- }
- }*/
- Connections
- {
- target: UM.Preferences
- function onPreferenceChanged(preference)
- {
- if (preference !== "info/send_slice_info")
- {
- return;
- }
- sendDataCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_slice_info"))
- }
- }
- }
- }
- }
|