diff --git a/resources/qml/GeneralPage.qml b/resources/qml/GeneralPage.qml index 1641afc3bb..67590e0627 100644 --- a/resources/qml/GeneralPage.qml +++ b/resources/qml/GeneralPage.qml @@ -11,7 +11,7 @@ import UM 1.1 as UM UM.PreferencesPage { //: General configuration page title - title: catalog.i18nc("@title:tab","General"); + title: catalog.i18nc("@title:tab","General") function setDefaultLanguage(languageCode) { @@ -38,74 +38,72 @@ UM.PreferencesPage setDefaultLanguage(defaultLanguage) } - GridLayout + ColumnLayout { - columns: 2; //: Language selection label UM.I18nCatalog{id: catalog; name:"cura"} - Label - { - id: languageLabel - text: catalog.i18nc("@label","Language") - } - ComboBox + RowLayout { - id: languageComboBox - model: ListModel + Label { - id: languageList - - Component.onCompleted: { -// append({ text: catalog.i18nc("@item:inlistbox", "Bulgarian"), code: "bg" }) -// append({ text: catalog.i18nc("@item:inlistbox", "Czech"), code: "cs" }) - append({ text: catalog.i18nc("@item:inlistbox", "English"), code: "en" }) - append({ text: catalog.i18nc("@item:inlistbox", "Finnish"), code: "fi" }) - append({ text: catalog.i18nc("@item:inlistbox", "French"), code: "fr" }) - append({ text: catalog.i18nc("@item:inlistbox", "German"), code: "de" }) -// append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" }) - append({ text: catalog.i18nc("@item:inlistbox", "Polish"), code: "pl" }) -// append({ text: catalog.i18nc("@item:inlistbox", "Russian"), code: "ru" }) -// append({ text: catalog.i18nc("@item:inlistbox", "Spanish"), code: "es" }) - } + id: languageLabel + text: catalog.i18nc("@label","Language:") } - currentIndex: + ComboBox { - var code = UM.Preferences.getValue("general/language"); - for(var i = 0; i < languageList.count; ++i) + id: languageComboBox + model: ListModel { - if(model.get(i).code == code) - { - return i + id: languageList + + Component.onCompleted: { +// append({ text: catalog.i18nc("@item:inlistbox", "Bulgarian"), code: "bg" }) +// append({ text: catalog.i18nc("@item:inlistbox", "Czech"), code: "cs" }) + append({ text: catalog.i18nc("@item:inlistbox", "English"), code: "en" }) + append({ text: catalog.i18nc("@item:inlistbox", "Finnish"), code: "fi" }) + append({ text: catalog.i18nc("@item:inlistbox", "French"), code: "fr" }) + append({ text: catalog.i18nc("@item:inlistbox", "German"), code: "de" }) +// append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" }) + append({ text: catalog.i18nc("@item:inlistbox", "Polish"), code: "pl" }) +// append({ text: catalog.i18nc("@item:inlistbox", "Russian"), code: "ru" }) +// append({ text: catalog.i18nc("@item:inlistbox", "Spanish"), code: "es" }) } } - } - onActivated: UM.Preferences.setValue("general/language", model.get(index).code) - anchors.left: languageLabel.right - anchors.top: languageLabel.top - anchors.leftMargin: 20 - - Component.onCompleted: - { - // Because ListModel is stupid and does not allow using qsTr() for values. - for(var i = 0; i < languageList.count; ++i) + currentIndex: { - languageList.setProperty(i, "text", catalog.i18n(languageList.get(i).text)); + 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) - // 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; + 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: languageCaption; - Layout.columnSpan: 2 + id: languageCaption //: Language change warning text: catalog.i18nc("@label", "You will need to restart the application for language changes to have effect.") @@ -113,103 +111,46 @@ UM.PreferencesPage font.italic: true } - CheckBox - { - id: pushFreeCheckbox - checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free")) - onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked) - } - Button - { - id: pushFreeText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip", "Should objects on the platform be moved so that they no longer intersect.") - //: Display Overhang preference checkbox - text: catalog.i18nc("@option:check", "Ensure objects are kept apart"); - onClicked: pushFreeCheckbox.checked = !pushFreeCheckbox.checked - - //: Display Overhang preference tooltip - tooltip: catalog.i18nc("@info:tooltip", "Should objects on the platform be moved so that they no longer intersect.") - - style: ButtonStyle + CheckBox { - background: Rectangle - { - border.width: 0 - color: "transparent" - } - label: Text - { - renderType: Text.NativeRendering - horizontalAlignment: Text.AlignLeft - text: control.text - } + id: pushFreeCheckbox + text: catalog.i18nc("@option:check", "Ensure objects are kept apart") + checked: boolCheck(UM.Preferences.getValue("physics/automatic_push_free")) + onCheckedChanged: UM.Preferences.setValue("physics/automatic_push_free", checked) } } - CheckBox - { - id: sendDataCheckbox - checked: boolCheck(UM.Preferences.getValue("info/send_slice_info")) - onCheckedChanged: UM.Preferences.setValue("info/send_slice_info", checked) - } - Button - { - id: sendDataText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + text: catalog.i18nc("@info:tooltip","Should opened files be scaled to the build volume if they are too large?") - //: Display Overhang preference checkbox - text: catalog.i18nc("@option:check","Send (Anonymous) Print Information"); - onClicked: sendDataCheckbox.checked = !sendDataCheckbox.checked - - //: Display Overhang preference tooltip - tooltip: 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.") - - style: ButtonStyle + CheckBox { - background: Rectangle - { - border.width: 0 - color: "transparent" - } - label: Text - { - renderType: Text.NativeRendering - horizontalAlignment: Text.AlignLeft - text: control.text - } + id: scaleToFitCheckbox + text: catalog.i18nc("@option:check","Scale large files") + checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit")) + onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked) } } - CheckBox - { - id: scaleToFitCheckbox - checked: boolCheck(UM.Preferences.getValue("mesh/scale_to_fit")) - onCheckedChanged: UM.Preferences.setValue("mesh/scale_to_fit", checked) - } - Button - { - id: scaleToFitText //is a button so the user doesn't have te click inconvenientley precise to enable or disable the checkbox - //: Display Overhang preference checkbox - text: catalog.i18nc("@option:check","Scale Too Large Files"); - onClicked: scaleToFitCheckbox.checked = !scaleToFitCheckbox.checked + UM.TooltipArea { + width: childrenRect.width + height: childrenRect.height + 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.") - //: Display Overhang preference tooltip - tooltip: catalog.i18nc("@info:tooltip","Should opened files be scaled to the build volume when they are too large?") - - style: ButtonStyle + CheckBox { - background: Rectangle - { - border.width: 0 - color: "transparent" - } - label: Text - { - renderType: Text.NativeRendering - horizontalAlignment: Text.AlignLeft - text: control.text - } + 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) } } - Item { Layout.fillHeight: true; Layout.columnSpan: 2 } } } diff --git a/resources/qml/ViewPage.qml b/resources/qml/ViewPage.qml index 7b33345a9a..ee0c74904a 100644 --- a/resources/qml/ViewPage.qml +++ b/resources/qml/ViewPage.qml @@ -39,7 +39,7 @@ UM.PreferencesPage checked: boolCheck(UM.Preferences.getValue("view/show_overhang")) onClicked: UM.Preferences.setValue("view/show_overhang", checked) - text: catalog.i18nc("@option:check","Display Overhang"); + text: catalog.i18nc("@option:check","Display overhang"); } }