diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml
index 3ccf668699..cc7ca9354d 100644
--- a/resources/qml/Settings/SettingCategory.qml
+++ b/resources/qml/Settings/SettingCategory.qml
@@ -1,18 +1,58 @@
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
-import QtQuick.Layouts 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.1 as UM
import Cura 1.0 as Cura
-Button {
- id: base;
-
- style: UM.Theme.styles.sidebar_category;
+Button
+{
+ id: base
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width
+ anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width
+ background: Rectangle
+ {
+ implicitHeight: UM.Theme.getSize("section").height
+ color: {
+ if (base.color) {
+ return base.color;
+ } else if (!base.enabled) {
+ return UM.Theme.getColor("setting_category_disabled");
+ } else if (base.hovered && base.checkable && base.checked) {
+ return UM.Theme.getColor("setting_category_active_hover");
+ } else if (base.pressed || (base.checkable && base.checked)) {
+ return UM.Theme.getColor("setting_category_active");
+ } else if (base.hovered) {
+ return UM.Theme.getColor("setting_category_hover");
+ } else {
+ return UM.Theme.getColor("setting_category");
+ }
+ }
+ Behavior on color { ColorAnimation { duration: 50; } }
+ Rectangle
+ {
+ height: UM.Theme.getSize("default_lining").height
+ width: parent.width
+ anchors.bottom: parent.bottom
+ color: {
+ if (!base.enabled) {
+ return UM.Theme.getColor("setting_category_disabled_border");
+ } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) {
+ return UM.Theme.getColor("setting_category_active_hover_border");
+ } else if (base.pressed || (base.checkable && base.checked)) {
+ return UM.Theme.getColor("setting_category_active_border");
+ } else if (base.hovered || base.activeFocus) {
+ return UM.Theme.getColor("setting_category_hover_border");
+ } else {
+ return UM.Theme.getColor("setting_category_border");
+ }
+ }
+ }
+ }
signal showTooltip(string text)
signal hideTooltip()
@@ -23,20 +63,102 @@ Button {
property var focusItem: base
- text: definition.label
- iconSource: UM.Theme.getIcon(definition.icon)
+ //text: definition.label
+
+ contentItem: Item {
+ anchors.fill: parent
+ anchors.left: parent.left
+
+ Label {
+ anchors
+ {
+ left: parent.left
+ leftMargin: 2 * UM.Theme.getSize("default_margin").width + UM.Theme.getSize("section_icon").width
+ right: parent.right;
+ verticalCenter: parent.verticalCenter;
+ }
+ text: definition.label
+ font: UM.Theme.getFont("setting_category")
+ color:
+ {
+ if (!base.enabled) {
+ return UM.Theme.getColor("setting_category_disabled_text");
+ } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) {
+ return UM.Theme.getColor("setting_category_active_hover_text");
+ } else if (base.pressed || (base.checkable && base.checked)) {
+ return UM.Theme.getColor("setting_category_active_text");
+ } else if (base.hovered || base.activeFocus) {
+ return UM.Theme.getColor("setting_category_hover_text");
+ } else {
+ return UM.Theme.getColor("setting_category_text");
+ }
+ }
+ fontSizeMode: Text.HorizontalFit
+ minimumPointSize: 8
+ }
+ UM.RecolorImage
+ {
+ id: category_arrow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width
+ width: UM.Theme.getSize("standard_arrow").width
+ height: UM.Theme.getSize("standard_arrow").height
+ sourceSize.width: width
+ sourceSize.height: width
+ color:
+ {
+ if (!base.enabled) {
+ return UM.Theme.getColor("setting_category_disabled_text");
+ } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) {
+ return UM.Theme.getColor("setting_category_active_hover_text");
+ } else if (base.pressed || (base.checkable && base.checked)) {
+ return UM.Theme.getColor("setting_category_active_text");
+ } else if (base.hovered || base.activeFocus) {
+ return UM.Theme.getColor("setting_category_hover_text");
+ } else {
+ return UM.Theme.getColor("setting_category_text");
+ }
+ }
+ source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left")
+ }
+ }
+
+ UM.RecolorImage
+ {
+ id: icon
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: UM.Theme.getSize("default_margin").width
+ color:
+ {
+ if (!base.enabled) {
+ return UM.Theme.getColor("setting_category_disabled_text");
+ } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) {
+ return UM.Theme.getColor("setting_category_active_hover_text");
+ } else if(base.pressed || (base.checkable && base.checked)) {
+ return UM.Theme.getColor("setting_category_active_text");
+ } else if(base.hovered || base.activeFocus) {
+ return UM.Theme.getColor("setting_category_hover_text");
+ } else {
+ return UM.Theme.getColor("setting_category_text");
+ }
+ }
+ source: UM.Theme.getIcon(definition.icon)
+ width: UM.Theme.getSize("section_icon").width;
+ height: UM.Theme.getSize("section_icon").height;
+ sourceSize.width: width + 15 * screenScaleFactor
+ sourceSize.height: width + 15 * screenScaleFactor
+ }
checkable: true
checked: definition.expanded
onClicked:
{
- if(definition.expanded)
- {
+ if (definition.expanded) {
settingDefinitionsModel.collapse(definition.key);
- }
- else
- {
+ } else {
settingDefinitionsModel.expandAll(definition.key);
}
//Set focus so that tab navigation continues from this point on.
@@ -70,13 +192,14 @@ Button {
anchors {
right: inheritButton.visible ? inheritButton.left : parent.right
- rightMargin: inheritButton.visible? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("setting_preferences_button_margin").width
- verticalCenter: parent.verticalCenter;
+ // use 1.9 as the factor because there is a 0.1 difference between the settings and inheritance warning icons
+ rightMargin: inheritButton.visible ? UM.Theme.getSize("default_margin").width / 2 : category_arrow.width + UM.Theme.getSize("default_margin").width * 1.9
+ verticalCenter: parent.verticalCenter
}
- color: UM.Theme.getColor("setting_control_button");
+ color: UM.Theme.getColor("setting_control_button")
hoverColor: UM.Theme.getColor("setting_control_button_hover")
- iconSource: UM.Theme.getIcon("settings");
+ iconSource: UM.Theme.getIcon("settings")
onClicked: {
Cura.Actions.configureSettingVisibility.trigger(definition)
@@ -85,20 +208,20 @@ Button {
UM.SimpleButton
{
- id: inheritButton;
+ id: inheritButton
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width
+ anchors.rightMargin: category_arrow.width + UM.Theme.getSize("default_margin").width * 2
visible:
{
- if(Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0)
+ if (Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0)
{
var children_with_override = Cura.SettingInheritanceManager.getChildrenKeysWithOverride(definition.key)
- for(var i = 0; i < children_with_override.length; i++)
+ for (var i = 0; i < children_with_override.length; i++)
{
- if(!settingDefinitionsModel.getVisible(children_with_override[i]))
+ if (!settingDefinitionsModel.getVisible(children_with_override[i]))
{
return true
}
diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml
index 9029249249..2aad6181d8 100644
--- a/resources/qml/Settings/SettingCheckBox.qml
+++ b/resources/qml/Settings/SettingCheckBox.qml
@@ -1,10 +1,9 @@
// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
+import QtQuick 2.8
import QtQuick.Layouts 1.1
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls 2.1
import UM 1.2 as UM
diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml
index f2ec5fda65..63d13ae514 100644
--- a/resources/qml/Settings/SettingComboBox.qml
+++ b/resources/qml/Settings/SettingComboBox.qml
@@ -1,9 +1,8 @@
// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.1 as UM
@@ -17,95 +16,103 @@ SettingItem
id: control
model: definition.options
- textRole: "value";
+ textRole: "value"
anchors.fill: parent
MouseArea
{
- anchors.fill: parent;
- acceptedButtons: Qt.NoButton;
- onWheel: wheel.accepted = true;
+ anchors.fill: parent
+ acceptedButtons: Qt.NoButton
+ onWheel: wheel.accepted = true
}
- style: ComboBoxStyle
+ background: Rectangle
{
- background: Rectangle
+ color:
{
- color:
- {
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled")
- }
- if(control.hovered || control.activeFocus)
- {
- return UM.Theme.getColor("setting_control_highlight")
- }
- return UM.Theme.getColor("setting_control")
+ if (!enabled) {
+ return UM.Theme.getColor("setting_control_disabled")
}
- border.width: UM.Theme.getSize("default_lining").width
- border.color:
- {
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled_border")
- }
- if(control.hovered || control.activeFocus)
- {
- return UM.Theme.getColor("setting_control_border_highlight")
- }
- return UM.Theme.getColor("setting_control_border")
+
+ if (control.hovered || control.activeFocus) {
+ return UM.Theme.getColor("setting_control_highlight")
}
+
+ return UM.Theme.getColor("setting_control")
}
- label: Item
+
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color:
{
- Label
- {
- anchors.left: parent.left;
- anchors.leftMargin: UM.Theme.getSize("default_lining").width
- anchors.right: downArrow.left;
- anchors.rightMargin: UM.Theme.getSize("default_lining").width;
- anchors.verticalCenter: parent.verticalCenter;
-
- text: control.currentText;
- font: UM.Theme.getFont("default");
- color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text");
-
- elide: Text.ElideRight;
- verticalAlignment: Text.AlignVCenter;
+ if (!enabled) {
+ return UM.Theme.getColor("setting_control_disabled_border")
}
- UM.RecolorImage
- {
- id: downArrow
- anchors.right: parent.right;
- anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2;
- anchors.verticalCenter: parent.verticalCenter;
-
- source: UM.Theme.getIcon("arrow_bottom")
- width: UM.Theme.getSize("standard_arrow").width
- height: UM.Theme.getSize("standard_arrow").height
- sourceSize.width: width + 5 * screenScaleFactor
- sourceSize.height: width + 5 * screenScaleFactor
-
- color: UM.Theme.getColor("setting_control_text");
-
+ if (control.hovered || control.activeFocus) {
+ return UM.Theme.getColor("setting_control_border_highlight")
}
+
+ return UM.Theme.getColor("setting_control_border")
+ }
+ }
+
+ indicator: UM.RecolorImage
+ {
+ id: downArrow
+ x: control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: UM.Theme.getIcon("arrow_bottom")
+ width: UM.Theme.getSize("standard_arrow").width
+ height: UM.Theme.getSize("standard_arrow").height
+ sourceSize.width: width + 5 * screenScaleFactor
+ sourceSize.height: width + 5 * screenScaleFactor
+
+ color: UM.Theme.getColor("setting_control_text")
+ }
+
+ contentItem: Label
+ {
+ anchors.left: parent.left
+ anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: downArrow.left
+
+ text: control.currentText
+ font: UM.Theme.getFont("default")
+ color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text")
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ delegate: ItemDelegate
+ {
+ width: control.width
+ height: control.height
+ highlighted: control.highlightedIndex == index
+
+ contentItem: Text
+ {
+ text: modelData.value
+ color: control.contentItem.color
+ font: UM.Theme.getFont("default")
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
}
}
onActivated:
{
- forceActiveFocus();
- propertyProvider.setPropertyValue("value", definition.options[index].key);
+ forceActiveFocus()
+ propertyProvider.setPropertyValue("value", definition.options[index].key)
}
onActiveFocusChanged:
{
if(activeFocus)
{
- base.focusReceived();
+ base.focusReceived()
}
}
@@ -113,6 +120,7 @@ SettingItem
{
base.setActiveFocusToNextSetting(true)
}
+
Keys.onBacktabPressed:
{
base.setActiveFocusToNextSetting(false)
@@ -126,16 +134,14 @@ SettingItem
{
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
var value = undefined;
- if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1))
- {
+ if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) {
// We have a resolve function. Indicates that the setting is not settable per extruder and that
// we have to choose between the resolved value (default) and the global value
// (if user has explicitly set this).
value = base.resolve;
}
- if (value == undefined)
- {
+ if (value == undefined) {
value = propertyProvider.properties.value;
}
diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml
index ca99640f6d..b754c3fd74 100644
--- a/resources/qml/Settings/SettingExtruder.qml
+++ b/resources/qml/Settings/SettingExtruder.qml
@@ -1,9 +1,8 @@
// Copyright (c) 2016 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.1 as UM
import Cura 1.0 as Cura
@@ -65,83 +64,101 @@ SettingItem
value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : ""
}
- style: ComboBoxStyle
+ indicator: UM.RecolorImage
{
- background: Rectangle
+ id: downArrow
+ x: control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: UM.Theme.getIcon("arrow_bottom")
+ width: UM.Theme.getSize("standard_arrow").width
+ height: UM.Theme.getSize("standard_arrow").height
+ sourceSize.width: width + 5 * screenScaleFactor
+ sourceSize.height: width + 5 * screenScaleFactor
+
+ color: UM.Theme.getColor("setting_control_text");
+ }
+
+ background: Rectangle
+ {
+ color:
{
- color:
+ if (!enabled)
{
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled");
- }
- if(control.hovered || base.activeFocus)
- {
- return UM.Theme.getColor("setting_control_highlight");
- }
- return UM.Theme.getColor("setting_control");
+ return UM.Theme.getColor("setting_control_disabled");
}
- border.width: UM.Theme.getSize("default_lining").width
- border.color:
+ if (control.hovered || base.activeFocus)
{
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled_border")
- }
- if(control.hovered || control.activeFocus)
- {
- return UM.Theme.getColor("setting_control_border_highlight")
- }
- return UM.Theme.getColor("setting_control_border")
+ return UM.Theme.getColor("setting_control_highlight");
}
+ return UM.Theme.getColor("setting_control");
}
- label: Item
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color:
{
- Label
+ if (!enabled)
{
- id: extruderText
- anchors.verticalCenter: parent.verticalCenter
-
- text: control.currentText
- font: UM.Theme.getFont("default")
- color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
-
- elide: Text.ElideLeft
- verticalAlignment: Text.AlignVCenter
+ return UM.Theme.getColor("setting_control_disabled_border")
}
- Rectangle
+ if (control.hovered || control.activeFocus)
{
- id: swatch
- height: UM.Theme.getSize("setting_control").height / 2
- width: height
-
- anchors
- {
- right: arrow.left
- verticalCenter: parent.verticalCenter
- margins: UM.Theme.getSize("default_margin").width / 4
- }
-
- border.width: UM.Theme.getSize("default_lining").width * 2
- border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
- radius: width / 2
-
- color: control.color
+ return UM.Theme.getColor("setting_control_border_highlight")
}
- UM.RecolorImage
- {
- id: arrow
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
+ return UM.Theme.getColor("setting_control_border")
+ }
+ }
- source: UM.Theme.getIcon("arrow_bottom")
- width: UM.Theme.getSize("standard_arrow").width
- height: UM.Theme.getSize("standard_arrow").height
- sourceSize.width: width + 5 * screenScaleFactor
- sourceSize.height: width + 5 * screenScaleFactor
+ contentItem: Item
+ {
+ Label
+ {
+ id: extruderText
- color: UM.Theme.getColor("setting_control_text")
- }
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
+ anchors.right: swatch.left
+
+ text: control.currentText
+ font: UM.Theme.getFont("default")
+ color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
+
+ elide: Text.ElideLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Rectangle
+ {
+ id: swatch
+ height: UM.Theme.getSize("setting_control").height / 2
+ width: height
+
+ anchors.right: parent.right
+ anchors.rightMargin: downArrow.width + UM.Theme.getSize("setting_unit_margin").width
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: UM.Theme.getSize("default_margin").width / 4
+
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
+ radius: width / 2
+
+ color: control.color
+ }
+ }
+
+ delegate: ItemDelegate
+ {
+ width: control.width
+ height: control.height
+ highlighted: control.highlightedIndex == index
+
+ contentItem: Text
+ {
+ text: model.name
+ color: UM.Theme.getColor("setting_control_text")
+ font: UM.Theme.getFont("default")
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
}
}
}
diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml
index 4a89090984..1b1f302846 100644
--- a/resources/qml/Settings/SettingItem.qml
+++ b/resources/qml/Settings/SettingItem.qml
@@ -1,10 +1,9 @@
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
+import QtQuick 2.8
import QtQuick.Layouts 1.1
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick.Controls 2.1
import UM 1.1 as UM
import Cura 1.0 as Cura
diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml
index 1c286fcd2d..3bb2a2f1e0 100644
--- a/resources/qml/Settings/SettingOptionalExtruder.qml
+++ b/resources/qml/Settings/SettingOptionalExtruder.qml
@@ -1,9 +1,8 @@
// Copyright (c) 2016 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.1 as UM
import Cura 1.0 as Cura
@@ -84,83 +83,101 @@ SettingItem
value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : ""
}
- style: ComboBoxStyle
+ indicator: UM.RecolorImage
{
- background: Rectangle
+ id: downArrow
+ x: control.width - width - control.rightPadding
+ y: control.topPadding + (control.availableHeight - height) / 2
+
+ source: UM.Theme.getIcon("arrow_bottom")
+ width: UM.Theme.getSize("standard_arrow").width
+ height: UM.Theme.getSize("standard_arrow").height
+ sourceSize.width: width + 5 * screenScaleFactor
+ sourceSize.height: width + 5 * screenScaleFactor
+
+ color: UM.Theme.getColor("setting_control_text");
+ }
+
+ background: Rectangle
+ {
+ color:
{
- color:
+ if (!enabled)
{
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled");
- }
- if(control.hovered || control.activeFocus)
- {
- return UM.Theme.getColor("setting_control_highlight");
- }
- return UM.Theme.getColor("setting_control");
+ return UM.Theme.getColor("setting_control_disabled");
}
- border.width: UM.Theme.getSize("default_lining").width
- border.color:
+ if (control.hovered || control.activeFocus)
{
- if(!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled_border")
- }
- if(control.hovered || control.activeFocus)
- {
- return UM.Theme.getColor("setting_control_border_highlight")
- }
- return UM.Theme.getColor("setting_control_border")
+ return UM.Theme.getColor("setting_control_highlight");
}
+ return UM.Theme.getColor("setting_control");
}
- label: Item
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color:
{
- Label
+ if (!enabled)
{
- anchors.verticalCenter: parent.verticalCenter
- width: parent.width - swatch.width - arrow.width;
-
- text: control.currentText
- font: UM.Theme.getFont("default")
- color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
-
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
+ return UM.Theme.getColor("setting_control_disabled_border")
}
- Rectangle
+ if (control.hovered || control.activeFocus)
{
- id: swatch
- height: UM.Theme.getSize("setting_control").height / 2
- width: height
-
- anchors
- {
- right: arrow.left;
- verticalCenter: parent.verticalCenter
- margins: UM.Theme.getSize("default_margin").width / 4
- }
-
- border.width: UM.Theme.getSize("default_lining").width * 2
- border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
- radius: width / 2
-
- color: control.color
+ return UM.Theme.getColor("setting_control_border_highlight")
}
- UM.RecolorImage
- {
- id: arrow
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
+ return UM.Theme.getColor("setting_control_border")
+ }
+ }
- source: UM.Theme.getIcon("arrow_bottom")
- width: UM.Theme.getSize("standard_arrow").width
- height: UM.Theme.getSize("standard_arrow").height
- sourceSize.width: width + 5 * screenScaleFactor
- sourceSize.height: width + 5 * screenScaleFactor
+ contentItem: Item
+ {
+ Label
+ {
+ id: extruderText
- color: UM.Theme.getColor("setting_control_text")
- }
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
+ anchors.right: swatch.left
+
+ text: control.currentText
+ font: UM.Theme.getFont("default")
+ color: enabled ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
+
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Rectangle
+ {
+ id: swatch
+ height: UM.Theme.getSize("setting_control").height / 2
+ width: height
+
+ anchors.right: parent.right
+ anchors.rightMargin: downArrow.width + UM.Theme.getSize("setting_unit_margin").width
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.margins: UM.Theme.getSize("default_margin").width / 4
+
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
+ radius: width / 2
+
+ color: control.color
+ }
+ }
+
+ delegate: ItemDelegate
+ {
+ width: control.width
+ height: control.height
+ highlighted: control.highlightedIndex == index
+
+ contentItem: Text
+ {
+ text: model.name
+ color: UM.Theme.getColor("setting_control_text")
+ font: UM.Theme.getFont("default")
+ elide: Text.ElideRight
+ verticalAlignment: Text.AlignVCenter
}
}
}
diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml
index 8a51f2baff..30dff2490f 100644
--- a/resources/qml/Settings/SettingTextField.qml
+++ b/resources/qml/Settings/SettingTextField.qml
@@ -1,8 +1,8 @@
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.2
-import QtQuick.Controls 1.2
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.1 as UM
diff --git a/resources/qml/Settings/SettingUnknown.qml b/resources/qml/Settings/SettingUnknown.qml
index f4dadf8d75..82d54f96b8 100644
--- a/resources/qml/Settings/SettingUnknown.qml
+++ b/resources/qml/Settings/SettingUnknown.qml
@@ -1,8 +1,8 @@
// Copyright (c) 2015 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.1
-import QtQuick.Controls 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import UM 1.2 as UM
diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml
index 5d39572647..6929614830 100644
--- a/resources/qml/Settings/SettingView.qml
+++ b/resources/qml/Settings/SettingView.qml
@@ -1,7 +1,7 @@
// Copyright (c) 2017 Ultimaker B.V.
// Uranium is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.2
+import QtQuick 2.8
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml
index c18bc072a3..e6e0fee023 100644
--- a/resources/qml/Sidebar.qml
+++ b/resources/qml/Sidebar.qml
@@ -1,9 +1,8 @@
// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
-import QtQuick 2.2
-import QtQuick.Controls 1.1
-import QtQuick.Controls.Styles 1.1
+import QtQuick 2.8
+import QtQuick.Controls 2.1
import QtQuick.Layouts 1.1
import UM 1.2 as UM
@@ -12,9 +11,9 @@ import "Menus"
Rectangle
{
- id: base;
+ id: base
- property int currentModeIndex;
+ property int currentModeIndex
property bool hideSettings: PrintInformation.preSliced
property bool hideView: Cura.MachineManager.activeMachineName == ""
@@ -78,7 +77,7 @@ Rectangle
MouseArea
{
anchors.fill: parent
- acceptedButtons: Qt.AllButtons;
+ acceptedButtons: Qt.AllButtons
onWheel:
{
@@ -119,13 +118,14 @@ Rectangle
UM.Preferences.setValue("cura/active_mode", currentModeIndex);
if(modesListModel.count > base.currentModeIndex)
{
- sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "replace": true });
+ sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "replace": true })
}
}
- Label {
+ Label
+ {
id: settingsModeLabel
- text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox","Print Setup disabled\nG-code files cannot be modified");
+ text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified")
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width
anchors.top: headerSeparator.bottom
@@ -136,13 +136,18 @@ Rectangle
visible: !monitoringPrint && !hideView
}
- Rectangle {
+ // Settings mode selection toggle
+ Rectangle
+ {
id: settingsModeSelection
color: "transparent"
+
width: Math.floor(parent.width * 0.55)
height: UM.Theme.getSize("sidebar_header_mode_toggle").height
+
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width
+ anchors.topMargin: UM.Theme.getSize("sidebar_margin").height
anchors.top:
{
if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2)
@@ -154,66 +159,69 @@ Rectangle
return headerSeparator.bottom;
}
}
- anchors.topMargin: UM.Theme.getSize("sidebar_margin").height
+
visible: !monitoringPrint && !hideSettings && !hideView
- Component{
+
+ Component
+ {
id: wizardDelegate
- Button {
+
+ Button
+ {
+ id: control
+
height: settingsModeSelection.height
+ width: Math.floor(0.5 * parent.width)
+
anchors.left: parent.left
anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2)
anchors.verticalCenter: parent.verticalCenter
- width: Math.floor(0.5 * parent.width)
- text: model.text
- exclusiveGroup: modeMenuGroup;
- checkable: true;
+
+ ButtonGroup.group: modeMenuGroup
+
+ checkable: true
checked: base.currentModeIndex == index
onClicked: base.currentModeIndex = index
- onHoveredChanged: {
+ onHoveredChanged:
+ {
if (hovered)
{
tooltipDelayTimer.item = settingsModeSelection
tooltipDelayTimer.text = model.tooltipText
- tooltipDelayTimer.start();
+ tooltipDelayTimer.start()
}
else
{
- tooltipDelayTimer.stop();
- base.hideTooltip();
+ tooltipDelayTimer.stop()
+ base.hideTooltip()
}
}
- style: ButtonStyle {
- background: Rectangle {
- border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width
- border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") :
- control.hovered ? UM.Theme.getColor("action_button_hovered_border") :
- UM.Theme.getColor("action_button_border")
- color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") :
- control.hovered ? UM.Theme.getColor("action_button_hovered") :
- UM.Theme.getColor("action_button")
- Behavior on color { ColorAnimation { duration: 50; } }
- Label {
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
- anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2
- anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
- color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") :
- control.hovered ? UM.Theme.getColor("action_button_hovered_text") :
- UM.Theme.getColor("action_button_text")
- font: UM.Theme.getFont("default")
- text: control.text
- horizontalAlignment: Text.AlignHCenter
- elide: Text.ElideMiddle
- }
- }
- label: Item { }
+ background: Rectangle
+ {
+ border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width
+ border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border")
+
+ // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is
+ color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
+ }
+
+ contentItem: Text
+ {
+ text: model.text
+ font: UM.Theme.getFont("default")
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ elide: Text.ElideRight
}
}
}
- ExclusiveGroup { id: modeMenuGroup; }
+
+ ButtonGroup
+ {
+ id: modeMenuGroup
+ }
ListView
{
@@ -238,31 +246,21 @@ Rectangle
anchors.right: base.right
visible: !monitoringPrint && !hideSettings
- delegate: StackViewDelegate
- {
- function transitionFinished(properties)
- {
- properties.exitItem.opacity = 1
+ replaceEnter: Transition {
+ PropertyAnimation {
+ property: "opacity"
+ from: 0
+ to:1
+ duration: 100
}
+ }
- pushTransition: StackViewTransition
- {
- PropertyAnimation
- {
- target: enterItem
- property: "opacity"
- from: 0
- to: 1
- duration: 100
- }
- PropertyAnimation
- {
- target: exitItem
- property: "opacity"
- from: 1
- to: 0
- duration: 100
- }
+ replaceExit: Transition {
+ PropertyAnimation {
+ property: "opacity"
+ from: 1
+ to:0
+ duration: 100
}
}
}
@@ -559,19 +557,19 @@ Rectangle
SidebarTooltip
{
- id: tooltip;
+ id: tooltip
}
// Setting mode: Recommended or Custom
ListModel
{
- id: modesListModel;
+ id: modesListModel
}
SidebarSimple
{
- id: sidebarSimple;
- visible: false;
+ id: sidebarSimple
+ visible: false
onShowTooltip: base.showTooltip(item, location, text)
onHideTooltip: base.hideTooltip()
@@ -579,8 +577,8 @@ Rectangle
SidebarAdvanced
{
- id: sidebarAdvanced;
- visible: false;
+ id: sidebarAdvanced
+ visible: false
onShowTooltip: base.showTooltip(item, location, text)
onHideTooltip: base.hideTooltip()
@@ -598,7 +596,7 @@ Rectangle
tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup
Print with finegrained control over every last bit of the slicing process."),
item: sidebarAdvanced
})
- sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true });
+ sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "immediate": true })
var index = Math.floor(UM.Preferences.getValue("cura/active_mode"))
if(index)