diff --git a/resources/qml/AboutDialog.qml b/resources/qml/AboutDialog.qml
index 79e6030922..c1e441e4ca 100644
--- a/resources/qml/AboutDialog.qml
+++ b/resources/qml/AboutDialog.qml
@@ -73,68 +73,76 @@ UM.Dialog
anchors.topMargin: UM.Theme.getSize("default_margin").height
}
- ListView
+ ScrollView
{
- id: projectsList
-
anchors.top: creditsNotes.bottom
- anchors.topMargin: 10
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width
- height: childrenRect.height
+ height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
- delegate: Row
+ ListView
{
- Label
- {
- text: "%2".arg(model.url).arg(model.name)
- width: projectsList.width * 0.25
- elide: Text.ElideRight
- onLinkActivated: Qt.openUrlExternally(link)
- }
- Label
- {
- text: model.description
- elide: Text.ElideRight
- width: projectsList.width * 0.6
- }
- Label
- {
- text: model.license
- elide: Text.ElideRight
- width: projectsList.width * 0.15
- }
- }
- model: ListModel
- {
- id: projectsModel
- }
- Component.onCompleted:
- {
- projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" });
- projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" });
- projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
- projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" });
+ id: projectsList
- projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
- projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
- projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
- projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
- projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
- projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
- projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
- projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
- projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
- projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
- projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
- projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
- projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
+ width: parent.width
+
+ delegate: Row
+ {
+ Label
+ {
+ text: "%2".arg(model.url).arg(model.name)
+ width: (projectsList.width * 0.25) | 0
+ elide: Text.ElideRight
+ onLinkActivated: Qt.openUrlExternally(link)
+ }
+ Label
+ {
+ text: model.description
+ elide: Text.ElideRight
+ width: (projectsList.width * 0.6) | 0
+ }
+ Label
+ {
+ text: model.license
+ elide: Text.ElideRight
+ width: (projectsList.width * 0.15) | 0
+ }
+ }
+ model: ListModel
+ {
+ id: projectsModel
+ }
+ Component.onCompleted:
+ {
+ projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "AGPLv3", url: "https://github.com/Ultimaker/Cura" });
+ projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "AGPLv3", url: "https://github.com/Ultimaker/Uranium" });
+ projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "GCode generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" });
+ projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "AGPLv3", url: "https://github.com/Ultimaker/libArcus" });
+
+ projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
+ projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" });
+ projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" });
+ projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" });
+ projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" });
+ projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
+ projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
+ projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
+ projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "AGPLv3", url: "https://github.com/ultimaker/libsavitar" });
+ projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
+ projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
+ projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
+
+ projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
+ projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
+ }
}
}
rightButtons: Button
{
//: Close about dialog button
+ id: closeButton
text: catalog.i18nc("@action:button","Close");
onClicked: base.visible = false;
diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml
index 9b6f32f114..94b589a636 100644
--- a/resources/qml/Preferences/GeneralPage.qml
+++ b/resources/qml/Preferences/GeneralPage.qml
@@ -58,337 +58,343 @@ UM.PreferencesPage
}
}
- Column
+ ScrollView
{
- //: Model used to check if a plugin exists
- UM.PluginsModel { id: plugins }
+ width: parent.width
+ height: parent.height
- //: Language selection label
- UM.I18nCatalog{id: catalog; name:"cura"}
-
- Label
+ Column
{
- font.bold: true
- text: catalog.i18nc("@label","Interface")
- }
+ //: Model used to check if a plugin exists
+ UM.PluginsModel { id: plugins }
+
+ //: Language selection label
+ UM.I18nCatalog{id: catalog; name:"cura"}
- Row
- {
- spacing: UM.Theme.getSize("default_margin").width
Label
{
- id: languageLabel
- text: catalog.i18nc("@label","Language:")
- anchors.verticalCenter: languageComboBox.verticalCenter
+ font.bold: true
+ text: catalog.i18nc("@label","Interface")
}
- ComboBox
+ Row
{
- id: languageComboBox
- model: ListModel
+ spacing: UM.Theme.getSize("default_margin").width
+ Label
{
- id: languageList
+ id: languageLabel
+ text: catalog.i18nc("@label","Language:")
+ anchors.verticalCenter: languageComboBox.verticalCenter
+ }
- Component.onCompleted: {
- append({ text: "English", code: "en" })
- append({ text: "Deutsch", code: "de" })
- append({ text: "Español", code: "es" })
- append({ text: "Suomi", code: "fi" })
- append({ text: "Français", code: "fr" })
- append({ text: "Italiano", code: "it" })
- append({ text: "Nederlands", code: "nl" })
- append({ text: "Português do Brasil", code: "ptbr" })
- append({ text: "Русский", code: "ru" })
- append({ text: "Türkçe", code: "tr" })
+ ComboBox
+ {
+ id: languageComboBox
+ model: ListModel
+ {
+ id: languageList
+
+ Component.onCompleted: {
+ append({ text: "English", code: "en" })
+ append({ text: "Deutsch", code: "de" })
+ append({ text: "Español", code: "es" })
+ append({ text: "Suomi", code: "fi" })
+ append({ text: "Français", code: "fr" })
+ append({ text: "Italiano", code: "it" })
+ append({ text: "Nederlands", code: "nl" })
+ append({ text: "Português do Brasil", code: "ptbr" })
+ append({ text: "Русский", code: "ru" })
+ append({ text: "Türkçe", code: "tr" })
+ }
+ }
+
+ currentIndex:
+ {
+ var code = UM.Preferences.getValue("general/language");
+ for(var i = 0; i < languageList.count; ++i)
+ {
+ if(model.get(i).code == code)
+ {
+ return i
+ }
+ }
+ }
+ onActivated: UM.Preferences.setValue("general/language", model.get(index).code)
+
+ Component.onCompleted:
+ {
+ // Because ListModel is stupid and does not allow using qsTr() for values.
+ for(var i = 0; i < languageList.count; ++i)
+ {
+ languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text));
+ }
+
+ // Glorious hack time. ComboBox does not update the text properly after changing the
+ // model. So change the indices around to force it to update.
+ currentIndex += 1;
+ currentIndex -= 1;
}
}
- currentIndex:
+ Label
{
- var code = UM.Preferences.getValue("general/language");
- for(var i = 0; i < languageList.count; ++i)
+ id: currencyLabel
+ text: catalog.i18nc("@label","Currency:")
+ anchors.verticalCenter: languageComboBox.verticalCenter
+ }
+ TextField
+ {
+ id: currencyField
+ text: UM.Preferences.getValue("cura/currency")
+ onTextChanged: UM.Preferences.setValue("cura/currency", text)
+ }
+ }
+
+ Label
+ {
+ id: languageCaption
+
+ //: Language change warning
+ text: catalog.i18nc("@label", "You will need to restart the application for language 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
+ }
+
+ Label
+ {
+ font.bold: true
+ 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.")
+
+ 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","Moves the camera so the model is in the center of the view when an model is selected")
+
+ 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 models on the platform be moved so that they no longer intersect?")
+
+ 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?")
+
+ 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","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
+
+ CheckBox
+ {
+ id: topLayerCountCheckbox
+ text: catalog.i18nc("@action:button","Display five top layers in layer view compatibility mode");
+ checked: UM.Preferences.getValue("view/top_layer_count") == 5
+ onClicked:
{
- if(model.get(i).code == code)
+ if(UM.Preferences.getValue("view/top_layer_count") == 5)
{
- return i
+ UM.Preferences.setValue("view/top_layer_count", 1)
+ }
+ else
+ {
+ UM.Preferences.setValue("view/top_layer_count", 5)
}
}
}
- onActivated: UM.Preferences.setValue("general/language", model.get(index).code)
+ }
- Component.onCompleted:
+ UM.TooltipArea {
+ width: childrenRect.width
+ height: childrenRect.height
+ text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
+
+ CheckBox
{
- // Because ListModel is stupid and does not allow using qsTr() for values.
- for(var i = 0; i < languageList.count; ++i)
- {
- languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text));
- }
-
- // Glorious hack time. ComboBox does not update the text properly after changing the
- // model. So change the indices around to force it to update.
- currentIndex += 1;
- currentIndex -= 1;
+ id: topLayersOnlyCheckbox
+ text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode")
+ checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
+ onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
}
}
+ UM.TooltipArea {
+ width: childrenRect.width
+ height: childrenRect.height
+ text: catalog.i18nc("@info:tooltip", "Should layer be forced into compatibility mode?")
+
+ 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)
+ }
+ }
+
+ Item
+ {
+ //: Spacer
+ height: UM.Theme.getSize("default_margin").height
+ width: UM.Theme.getSize("default_margin").height
+ }
+
Label
{
- id: currencyLabel
- text: catalog.i18nc("@label","Currency:")
- anchors.verticalCenter: languageComboBox.verticalCenter
+ font.bold: true
+ text: catalog.i18nc("@label","Opening files")
}
- TextField
- {
- id: currencyField
- text: UM.Preferences.getValue("cura/currency")
- onTextChanged: UM.Preferences.setValue("cura/currency", text)
- }
- }
- Label
- {
- id: languageCaption
+ 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?")
- //: Language change warning
- text: catalog.i18nc("@label", "You will need to restart the application for language 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
- }
-
- Label
- {
- font.bold: true
- 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.")
-
- 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","Moves the camera so the model is in the center of the view when an model is selected")
-
- 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 models on the platform be moved so that they no longer intersect?")
-
- 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?")
-
- 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","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
-
- CheckBox
- {
- id: topLayerCountCheckbox
- text: catalog.i18nc("@action:button","Display five top layers in layer view compatibility mode");
- checked: UM.Preferences.getValue("view/top_layer_count") == 5
- onClicked:
+ CheckBox
{
- if(UM.Preferences.getValue("view/top_layer_count") == 5)
- {
- UM.Preferences.setValue("view/top_layer_count", 1)
- }
- else
- {
- UM.Preferences.setValue("view/top_layer_count", 5)
- }
+ 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", "Should only the top layers be displayed in layerview?")
+ 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?")
- CheckBox
- {
- id: topLayersOnlyCheckbox
- text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode")
- checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
- onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
+ 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 layer be forced into compatibility mode?")
+ 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?")
- 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)
+ 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)
+ }
}
- }
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
+ UM.TooltipArea {
+ width: childrenRect.width
+ height: childrenRect.height
+ text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
- Label
- {
- font.bold: true
- text: catalog.i18nc("@label","Opening files")
- }
-
- 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?")
-
- 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)
+ 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","An model may appear extremely small if its unit is for example in meters rather than millimeters. Should these models be scaled up?")
- CheckBox
+ Item
{
- 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)
+ //: Spacer
+ height: UM.Theme.getSize("default_margin").height
+ width: UM.Theme.getSize("default_margin").height
}
- }
- 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?")
-
- CheckBox
+ Label
{
- 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)
+ font.bold: true
+ visible: checkUpdatesCheckbox.visible || sendDataCheckbox.visible
+ text: catalog.i18nc("@label","Privacy")
}
- }
- UM.TooltipArea {
- width: childrenRect.width
- height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
+ UM.TooltipArea {
+ visible: plugins.find("id", "UpdateChecker") > -1
+ width: childrenRect.width
+ height: visible ? childrenRect.height : 0
+ text: catalog.i18nc("@info:tooltip","Should Cura check for updates when the program is started?")
- 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)
+ 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)
+ }
}
- }
+ UM.TooltipArea {
+ visible: plugins.find("id", "SliceInfoPlugin") > -1
+ 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.")
- Item
- {
- //: Spacer
- height: UM.Theme.getSize("default_margin").height
- width: UM.Theme.getSize("default_margin").height
- }
-
- Label
- {
- font.bold: true
- visible: checkUpdatesCheckbox.visible || sendDataCheckbox.visible
- text: catalog.i18nc("@label","Privacy")
- }
-
- UM.TooltipArea {
- visible: plugins.find("id", "UpdateChecker") > -1
- width: childrenRect.width
- height: visible ? childrenRect.height : 0
- text: catalog.i18nc("@info:tooltip","Should Cura check for updates when the program is started?")
-
- 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)
- }
- }
-
- UM.TooltipArea {
- visible: plugins.find("id", "SliceInfoPlugin") > -1
- 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.")
-
- 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)
+ 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)
+ }
}
}
}