mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-11 08:59:02 +08:00

The translation is almost complete at the moment. In the beta of the next release we'll decide if we want to keep this language.
381 lines
14 KiB
QML
381 lines
14 KiB
QML
// Copyright (c) 2016 Ultimaker B.V.
|
|
// Cura is released under the terms of the AGPLv3 or higher.
|
|
|
|
import QtQuick 2.1
|
|
import QtQuick.Controls 1.1
|
|
import QtQuick.Layouts 1.1
|
|
import QtQuick.Controls.Styles 1.1
|
|
|
|
import UM 1.1 as UM
|
|
|
|
UM.PreferencesPage
|
|
{
|
|
//: General configuration page title
|
|
title: catalog.i18nc("@title:tab","General")
|
|
|
|
function setDefaultLanguage(languageCode)
|
|
{
|
|
//loops trough 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 reset()
|
|
{
|
|
UM.Preferences.resetPreference("general/language")
|
|
var defaultLanguage = UM.Preferences.getValue("general/language")
|
|
setDefaultLanguage(defaultLanguage)
|
|
|
|
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/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/center_on_select");
|
|
centerOnSelectCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select"))
|
|
UM.Preferences.resetPreference("view/top_layer_count");
|
|
topLayerCountCheckbox.checked = boolCheck(UM.Preferences.getValue("view/top_layer_count"))
|
|
|
|
if (plugins.find("id", "SliceInfoPlugin") > -1) {
|
|
UM.Preferences.resetPreference("info/send_slice_info")
|
|
sendDataCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_slice_info"))
|
|
}
|
|
if (plugins.find("id", "UpdateChecker") > -1) {
|
|
UM.Preferences.resetPreference("info/automatic_update_check")
|
|
checkUpdatesCheckbox.checked = boolCheck(UM.Preferences.getValue("info/automatic_update_check"))
|
|
}
|
|
}
|
|
|
|
Column
|
|
{
|
|
//: Model used to check if a plugin exists
|
|
UM.PluginsModel { id: plugins }
|
|
|
|
//: Language selection label
|
|
UM.I18nCatalog{id: catalog; name:"cura"}
|
|
|
|
Label
|
|
{
|
|
font.bold: true
|
|
text: catalog.i18nc("@label","Interface")
|
|
}
|
|
|
|
Row
|
|
{
|
|
spacing: UM.Theme.getSize("default_margin").width
|
|
Label
|
|
{
|
|
id: languageLabel
|
|
text: catalog.i18nc("@label","Language:")
|
|
anchors.verticalCenter: languageComboBox.verticalCenter
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
|
|
Label
|
|
{
|
|
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");
|
|
checked: UM.Preferences.getValue("view/top_layer_count") == 5
|
|
onClicked:
|
|
{
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
UM.TooltipArea {
|
|
width: childrenRect.width
|
|
height: childrenRect.height
|
|
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
|
|
|
|
CheckBox
|
|
{
|
|
id: topLayersOnlyCheckbox
|
|
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view")
|
|
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
|
|
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
|
|
}
|
|
}
|
|
|
|
Item
|
|
{
|
|
//: Spacer
|
|
height: UM.Theme.getSize("default_margin").height
|
|
width: UM.Theme.getSize("default_margin").height
|
|
}
|
|
|
|
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)
|
|
}
|
|
}
|
|
|
|
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: 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 a prefix based on the printer name be added to the print job name automatically?")
|
|
|
|
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?")
|
|
|
|
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)
|
|
}
|
|
}
|
|
|
|
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
}
|