mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-22 12:39:22 +08:00
Merge branch 'fix_window_overflow' of https://github.com/fieldOfView/Cura
This commit is contained in:
commit
3bbbd4a692
@ -73,68 +73,76 @@ UM.Dialog
|
|||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView
|
ScrollView
|
||||||
{
|
{
|
||||||
id: projectsList
|
|
||||||
|
|
||||||
anchors.top: creditsNotes.bottom
|
anchors.top: creditsNotes.bottom
|
||||||
anchors.topMargin: 10
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
|
||||||
|
|
||||||
delegate: Row
|
ListView
|
||||||
{
|
{
|
||||||
Label
|
id: projectsList
|
||||||
{
|
|
||||||
text: "<a href='%1' title='%2'>%2</a>".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" });
|
|
||||||
|
|
||||||
projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" });
|
width: parent.width
|
||||||
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" });
|
delegate: Row
|
||||||
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" });
|
Label
|
||||||
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/" });
|
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
|
||||||
projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
|
width: (projectsList.width * 0.25) | 0
|
||||||
projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
|
elide: Text.ElideRight
|
||||||
projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
|
onLinkActivated: Qt.openUrlExternally(link)
|
||||||
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" });
|
Label
|
||||||
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" });
|
{
|
||||||
|
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
|
rightButtons: Button
|
||||||
{
|
{
|
||||||
//: Close about dialog button
|
//: Close about dialog button
|
||||||
|
id: closeButton
|
||||||
text: catalog.i18nc("@action:button","Close");
|
text: catalog.i18nc("@action:button","Close");
|
||||||
|
|
||||||
onClicked: base.visible = false;
|
onClicked: base.visible = false;
|
||||||
|
@ -58,337 +58,343 @@ UM.PreferencesPage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Column
|
ScrollView
|
||||||
{
|
{
|
||||||
//: Model used to check if a plugin exists
|
width: parent.width
|
||||||
UM.PluginsModel { id: plugins }
|
height: parent.height
|
||||||
|
|
||||||
//: Language selection label
|
Column
|
||||||
UM.I18nCatalog{id: catalog; name:"cura"}
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
{
|
||||||
font.bold: true
|
//: Model used to check if a plugin exists
|
||||||
text: catalog.i18nc("@label","Interface")
|
UM.PluginsModel { id: plugins }
|
||||||
}
|
|
||||||
|
//: Language selection label
|
||||||
|
UM.I18nCatalog{id: catalog; name:"cura"}
|
||||||
|
|
||||||
Row
|
|
||||||
{
|
|
||||||
spacing: UM.Theme.getSize("default_margin").width
|
|
||||||
Label
|
Label
|
||||||
{
|
{
|
||||||
id: languageLabel
|
font.bold: true
|
||||||
text: catalog.i18nc("@label","Language:")
|
text: catalog.i18nc("@label","Interface")
|
||||||
anchors.verticalCenter: languageComboBox.verticalCenter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ComboBox
|
Row
|
||||||
{
|
{
|
||||||
id: languageComboBox
|
spacing: UM.Theme.getSize("default_margin").width
|
||||||
model: ListModel
|
Label
|
||||||
{
|
{
|
||||||
id: languageList
|
id: languageLabel
|
||||||
|
text: catalog.i18nc("@label","Language:")
|
||||||
|
anchors.verticalCenter: languageComboBox.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
ComboBox
|
||||||
append({ text: "English", code: "en" })
|
{
|
||||||
append({ text: "Deutsch", code: "de" })
|
id: languageComboBox
|
||||||
append({ text: "Español", code: "es" })
|
model: ListModel
|
||||||
append({ text: "Suomi", code: "fi" })
|
{
|
||||||
append({ text: "Français", code: "fr" })
|
id: languageList
|
||||||
append({ text: "Italiano", code: "it" })
|
|
||||||
append({ text: "Nederlands", code: "nl" })
|
Component.onCompleted: {
|
||||||
append({ text: "Português do Brasil", code: "ptbr" })
|
append({ text: "English", code: "en" })
|
||||||
append({ text: "Русский", code: "ru" })
|
append({ text: "Deutsch", code: "de" })
|
||||||
append({ text: "Türkçe", code: "tr" })
|
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");
|
id: currencyLabel
|
||||||
for(var i = 0; i < languageList.count; ++i)
|
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.
|
id: topLayersOnlyCheckbox
|
||||||
for(var i = 0; i < languageList.count; ++i)
|
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"))
|
||||||
languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text));
|
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
|
||||||
}
|
|
||||||
|
|
||||||
// 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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
Label
|
||||||
{
|
{
|
||||||
id: currencyLabel
|
font.bold: true
|
||||||
text: catalog.i18nc("@label","Currency:")
|
text: catalog.i18nc("@label","Opening files")
|
||||||
anchors.verticalCenter: languageComboBox.verticalCenter
|
|
||||||
}
|
}
|
||||||
TextField
|
|
||||||
{
|
|
||||||
id: currencyField
|
|
||||||
text: UM.Preferences.getValue("cura/currency")
|
|
||||||
onTextChanged: UM.Preferences.setValue("cura/currency", text)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Label
|
UM.TooltipArea {
|
||||||
{
|
width: childrenRect.width
|
||||||
id: languageCaption
|
height: childrenRect.height
|
||||||
|
text: catalog.i18nc("@info:tooltip","Should models be scaled to the build volume if they are too large?")
|
||||||
|
|
||||||
//: Language change warning
|
CheckBox
|
||||||
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(UM.Preferences.getValue("view/top_layer_count") == 5)
|
id: scaleToFitCheckbox
|
||||||
{
|
text: catalog.i18nc("@option:check","Scale large models")
|
||||||
UM.Preferences.setValue("view/top_layer_count", 1)
|
checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit"))
|
||||||
}
|
onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked)
|
||||||
else
|
|
||||||
{
|
|
||||||
UM.Preferences.setValue("view/top_layer_count", 5)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
UM.TooltipArea {
|
||||||
width: childrenRect.width
|
width: childrenRect.width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
|
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
|
CheckBox
|
||||||
{
|
{
|
||||||
id: topLayersOnlyCheckbox
|
id: scaleTinyCheckbox
|
||||||
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view compatibility mode")
|
text: catalog.i18nc("@option:check","Scale extremely small models")
|
||||||
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
|
checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
|
||||||
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
|
onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
UM.TooltipArea {
|
||||||
width: childrenRect.width
|
width: childrenRect.width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
text: catalog.i18nc("@info:tooltip", "Should layer be forced into compatibility mode?")
|
text: catalog.i18nc("@info:tooltip", "Should a prefix based on the printer name be added to the print job name automatically?")
|
||||||
|
|
||||||
CheckBox
|
CheckBox
|
||||||
{
|
{
|
||||||
id: forceLayerViewCompatibilityModeCheckbox
|
id: prefixJobNameCheckbox
|
||||||
text: catalog.i18nc("@option:check", "Force layer view compatibility mode (restart required)")
|
text: catalog.i18nc("@option:check", "Add machine prefix to job name")
|
||||||
checked: boolCheck(UM.Preferences.getValue("view/force_layer_view_compatibility_mode"))
|
checked: boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
|
||||||
onCheckedChanged: UM.Preferences.setValue("view/force_layer_view_compatibility_mode", checked)
|
onCheckedChanged: UM.Preferences.setValue("cura/jobname_prefix", checked)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Item
|
UM.TooltipArea {
|
||||||
{
|
width: childrenRect.width
|
||||||
//: Spacer
|
height: childrenRect.height
|
||||||
height: UM.Theme.getSize("default_margin").height
|
text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
|
||||||
width: UM.Theme.getSize("default_margin").height
|
|
||||||
}
|
|
||||||
|
|
||||||
Label
|
CheckBox
|
||||||
{
|
{
|
||||||
font.bold: true
|
text: catalog.i18nc("@option:check", "Show summary dialog when saving project")
|
||||||
text: catalog.i18nc("@label","Opening files")
|
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","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
|
Item
|
||||||
{
|
{
|
||||||
id: scaleTinyCheckbox
|
//: Spacer
|
||||||
text: catalog.i18nc("@option:check","Scale extremely small models")
|
height: UM.Theme.getSize("default_margin").height
|
||||||
checked: boolCheck(UM.Preferences.getValue("mesh/scale_tiny_meshes"))
|
width: UM.Theme.getSize("default_margin").height
|
||||||
onCheckedChanged: UM.Preferences.setValue("mesh/scale_tiny_meshes", checked)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
Label
|
||||||
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
|
font.bold: true
|
||||||
text: catalog.i18nc("@option:check", "Add machine prefix to job name")
|
visible: checkUpdatesCheckbox.visible || sendDataCheckbox.visible
|
||||||
checked: boolCheck(UM.Preferences.getValue("cura/jobname_prefix"))
|
text: catalog.i18nc("@label","Privacy")
|
||||||
onCheckedChanged: UM.Preferences.setValue("cura/jobname_prefix", checked)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
UM.TooltipArea {
|
UM.TooltipArea {
|
||||||
width: childrenRect.width
|
visible: plugins.find("id", "UpdateChecker") > -1
|
||||||
height: childrenRect.height
|
width: childrenRect.width
|
||||||
text: catalog.i18nc("@info:tooltip", "Should a summary be shown when saving a project file?")
|
height: visible ? childrenRect.height : 0
|
||||||
|
text: catalog.i18nc("@info:tooltip","Should Cura check for updates when the program is started?")
|
||||||
|
|
||||||
CheckBox
|
CheckBox
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@option:check", "Show summary dialog when saving project")
|
id: checkUpdatesCheckbox
|
||||||
checked: boolCheck(UM.Preferences.getValue("cura/dialog_on_project_save"))
|
text: catalog.i18nc("@option:check","Check for updates on start")
|
||||||
onCheckedChanged: UM.Preferences.setValue("cura/dialog_on_project_save", checked)
|
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
|
CheckBox
|
||||||
{
|
{
|
||||||
//: Spacer
|
id: sendDataCheckbox
|
||||||
height: UM.Theme.getSize("default_margin").height
|
text: catalog.i18nc("@option:check","Send (anonymous) print information")
|
||||||
width: UM.Theme.getSize("default_margin").height
|
checked: boolCheck(UM.Preferences.getValue("info/send_slice_info"))
|
||||||
}
|
onCheckedChanged: UM.Preferences.setValue("info/send_slice_info", checked)
|
||||||
|
}
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user