123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131 |
- // 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/navigation_style");
- 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)
- }
- }
- }
- UM.TooltipArea
- {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "What type of camera navigation should be used?")
- Column
- {
- spacing: UM.Theme.getSize("narrow_margin").height
- UM.Label
- {
- text: catalog.i18nc("@window:text", "Camera navigation:")
- }
- ListModel
- {
- id: navigationStylesList
- Component.onCompleted:
- {
- append({ text: "Cura", code: "cura" })
- append({ text: catalog.i18n("FreeCAD trackpad"), code: "freecad_trackpad" })
- }
- }
- Cura.ComboBox
- {
- id: cameraNavigationComboBox
- model: navigationStylesList
- textRole: "text"
- width: UM.Theme.getSize("combobox").width
- height: UM.Theme.getSize("combobox").height
- currentIndex:
- {
- var code = UM.Preferences.getValue("view/navigation_style");
- for(var i = 0; i < comboBoxList.count; ++i)
- {
- if(model.get(i).code == code)
- {
- return i
- }
- }
- return 0
- }
- onActivated: UM.Preferences.setValue("view/navigation_style", 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
- // Mac only allows applications to run as a single instance, so providing the option for this os doesn't make much sense
- 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"))
- }
- }
- }
- }
- }
|