Merge branch 'qtquick-controls-2.0' into feature_setting_visibility_profiles

This commit is contained in:
fieldOfView 2018-01-04 14:20:44 +01:00
commit d3c2e0d656
9 changed files with 468 additions and 279 deletions

View File

@ -2,17 +2,57 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1
import UM 1.1 as UM import UM 1.1 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
Button { Button
{
id: base; id: base;
anchors.left: parent.left
style: UM.Theme.styles.sidebar_category; 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 showTooltip(string text)
signal hideTooltip() signal hideTooltip()
@ -23,8 +63,121 @@ Button {
property var focusItem: base property var focusItem: base
//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 text: definition.label
iconSource: UM.Theme.getIcon(definition.icon) 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 * 3 - width / 2
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 checkable: true
checked: definition.expanded checked: definition.expanded

View File

@ -3,8 +3,7 @@
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import UM 1.2 as UM import UM 1.2 as UM

View File

@ -2,8 +2,7 @@
// Uranium is released under the terms of the LGPLv3 or higher. // Uranium is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import UM 1.1 as UM import UM 1.1 as UM
@ -17,71 +16,52 @@ SettingItem
id: control id: control
model: definition.options model: definition.options
textRole: "value"; textRole: "value"
anchors.fill: parent anchors.fill: parent
MouseArea MouseArea
{ {
anchors.fill: parent; anchors.fill: parent
acceptedButtons: Qt.NoButton; acceptedButtons: Qt.NoButton
onWheel: wheel.accepted = true; onWheel: wheel.accepted = true
} }
style: ComboBoxStyle
{
background: Rectangle background: Rectangle
{ {
color: color:
{ {
if(!enabled) if (!enabled) {
{
return UM.Theme.getColor("setting_control_disabled") return UM.Theme.getColor("setting_control_disabled")
} }
if(control.hovered || control.activeFocus)
{ if (control.hovered || control.activeFocus) {
return UM.Theme.getColor("setting_control_highlight") return UM.Theme.getColor("setting_control_highlight")
} }
return UM.Theme.getColor("setting_control") return UM.Theme.getColor("setting_control")
} }
border.width: UM.Theme.getSize("default_lining").width border.width: UM.Theme.getSize("default_lining").width
border.color: border.color:
{ {
if(!enabled) if (!enabled) {
{
return UM.Theme.getColor("setting_control_disabled_border") return UM.Theme.getColor("setting_control_disabled_border")
} }
if(control.hovered || control.activeFocus)
{ if (control.hovered || control.activeFocus) {
return UM.Theme.getColor("setting_control_border_highlight") return UM.Theme.getColor("setting_control_border_highlight")
} }
return UM.Theme.getColor("setting_control_border") return UM.Theme.getColor("setting_control_border")
} }
} }
label: Item
{
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; indicator: UM.RecolorImage
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;
}
UM.RecolorImage
{ {
id: downArrow id: downArrow
anchors.right: parent.right; x: control.width - width - control.rightPadding
anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2; y: control.topPadding + (control.availableHeight - height) / 2
anchors.verticalCenter: parent.verticalCenter;
source: UM.Theme.getIcon("arrow_bottom") source: UM.Theme.getIcon("arrow_bottom")
width: UM.Theme.getSize("standard_arrow").width width: UM.Theme.getSize("standard_arrow").width
@ -89,23 +69,50 @@ SettingItem
sourceSize.width: width + 5 * screenScaleFactor sourceSize.width: width + 5 * screenScaleFactor
sourceSize.height: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor
color: UM.Theme.getColor("setting_control_text"); 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: indicator.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: onActivated:
{ {
forceActiveFocus(); forceActiveFocus()
propertyProvider.setPropertyValue("value", definition.options[index].key); propertyProvider.setPropertyValue("value", definition.options[index].key)
} }
onActiveFocusChanged: onActiveFocusChanged:
{ {
if(activeFocus) if(activeFocus)
{ {
base.focusReceived(); base.focusReceived()
} }
} }
@ -113,6 +120,7 @@ SettingItem
{ {
base.setActiveFocusToNextSetting(true) base.setActiveFocusToNextSetting(true)
} }
Keys.onBacktabPressed: Keys.onBacktabPressed:
{ {
base.setActiveFocusToNextSetting(false) base.setActiveFocusToNextSetting(false)
@ -126,16 +134,14 @@ SettingItem
{ {
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model. // FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
var value = undefined; 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 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 // we have to choose between the resolved value (default) and the global value
// (if user has explicitly set this). // (if user has explicitly set this).
value = base.resolve; value = base.resolve;
} }
if (value == undefined) if (value == undefined) {
{
value = propertyProvider.properties.value; value = propertyProvider.properties.value;
} }

View File

@ -2,8 +2,7 @@
// Uranium is released under the terms of the LGPLv3 or higher. // Uranium is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import UM 1.1 as UM import UM 1.1 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -65,8 +64,21 @@ SettingItem
value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : ""
} }
style: ComboBoxStyle 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");
}
background: Rectangle background: Rectangle
{ {
color: color:
@ -95,12 +107,17 @@ SettingItem
return UM.Theme.getColor("setting_control_border") return UM.Theme.getColor("setting_control_border")
} }
} }
label: Item
contentItem: Item
{ {
Label Label
{ {
id: extruderText id: extruderText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.right: swatch.left
text: control.currentText text: control.currentText
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
@ -109,39 +126,39 @@ SettingItem
elide: Text.ElideLeft elide: Text.ElideLeft
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
Rectangle Rectangle
{ {
id: swatch id: swatch
height: UM.Theme.getSize("setting_control").height / 2 height: UM.Theme.getSize("setting_control").height / 2
width: height width: height
anchors anchors.right: parent.right
{ anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width
right: arrow.left anchors.verticalCenter: parent.verticalCenter
verticalCenter: parent.verticalCenter anchors.margins: UM.Theme.getSize("default_margin").width / 4
margins: UM.Theme.getSize("default_margin").width / 4
}
border.width: UM.Theme.getSize("default_lining").width * 2 border.width: UM.Theme.getSize("default_lining").width
border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
radius: width / 2 radius: width / 2
color: control.color color: control.color
} }
UM.RecolorImage
{
id: arrow
anchors.right: parent.right
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")
} }
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
} }
} }
} }

View File

@ -3,8 +3,7 @@
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import UM 1.1 as UM import UM 1.1 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura

View File

@ -2,8 +2,7 @@
// Uranium is released under the terms of the LGPLv3 or higher. // Uranium is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import UM 1.1 as UM import UM 1.1 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
@ -84,8 +83,21 @@ SettingItem
value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : "" value: control.currentText != "" ? control.model.getItem(control.currentIndex).color : ""
} }
style: ComboBoxStyle 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");
}
background: Rectangle background: Rectangle
{ {
color: color:
@ -114,12 +126,17 @@ SettingItem
return UM.Theme.getColor("setting_control_border") return UM.Theme.getColor("setting_control_border")
} }
} }
label: Item
contentItem: Item
{ {
Label Label
{ {
id: extruderText
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
width: parent.width - swatch.width - arrow.width; anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width
anchors.right: swatch.left
text: control.currentText text: control.currentText
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
@ -128,39 +145,39 @@ SettingItem
elide: Text.ElideRight elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
Rectangle Rectangle
{ {
id: swatch id: swatch
height: UM.Theme.getSize("setting_control").height / 2 height: UM.Theme.getSize("setting_control").height / 2
width: height width: height
anchors anchors.right: parent.right
{ anchors.rightMargin: control.indicator.width + UM.Theme.getSize("setting_unit_margin").width
right: arrow.left; anchors.verticalCenter: parent.verticalCenter
verticalCenter: parent.verticalCenter anchors.margins: UM.Theme.getSize("default_margin").width / 4
margins: UM.Theme.getSize("default_margin").width / 4
}
border.width: UM.Theme.getSize("default_lining").width * 2 border.width: UM.Theme.getSize("default_lining").width
border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border")
radius: width / 2 radius: width / 2
color: control.color color: control.color
} }
UM.RecolorImage
{
id: arrow
anchors.right: parent.right
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")
} }
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
} }
} }
} }

View File

@ -2,7 +2,7 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.2 import QtQuick.Controls 2.0
import UM 1.1 as UM import UM 1.1 as UM

View File

@ -2,7 +2,7 @@
// Uranium is released under the terms of the LGPLv3 or higher. // Uranium is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import UM 1.2 as UM import UM 1.2 as UM

View File

@ -2,8 +2,7 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2 import QtQuick 2.2
import QtQuick.Controls 1.1 import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.1
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import UM 1.2 as UM import UM 1.2 as UM
@ -119,11 +118,12 @@ Rectangle
UM.Preferences.setValue("cura/active_mode", currentModeIndex); UM.Preferences.setValue("cura/active_mode", currentModeIndex);
if(modesListModel.count > base.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 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.left: parent.left
@ -136,13 +136,18 @@ Rectangle
visible: !monitoringPrint && !hideView visible: !monitoringPrint && !hideView
} }
Rectangle { // Settings mode selection toggle
Rectangle
{
id: settingsModeSelection id: settingsModeSelection
color: "transparent" color: "transparent"
width: Math.floor(parent.width * 0.55) width: Math.floor(parent.width * 0.55)
height: UM.Theme.getSize("sidebar_header_mode_toggle").height height: UM.Theme.getSize("sidebar_header_mode_toggle").height
anchors.right: parent.right anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width
anchors.topMargin: UM.Theme.getSize("sidebar_margin").height
anchors.top: anchors.top:
{ {
if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2) if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2)
@ -154,66 +159,69 @@ Rectangle
return headerSeparator.bottom; return headerSeparator.bottom;
} }
} }
anchors.topMargin: UM.Theme.getSize("sidebar_margin").height
visible: !monitoringPrint && !hideSettings && !hideView visible: !monitoringPrint && !hideSettings && !hideView
Component{
Component
{
id: wizardDelegate id: wizardDelegate
Button {
Button
{
id: control
height: settingsModeSelection.height height: settingsModeSelection.height
width: Math.floor(0.5 * parent.width)
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
width: Math.floor(0.5 * parent.width)
text: model.text ButtonGroup.group: modeMenuGroup
exclusiveGroup: modeMenuGroup;
checkable: true; checkable: true
checked: base.currentModeIndex == index checked: base.currentModeIndex == index
onClicked: base.currentModeIndex = index onClicked: base.currentModeIndex = index
onHoveredChanged: { onHoveredChanged:
{
if (hovered) if (hovered)
{ {
tooltipDelayTimer.item = settingsModeSelection tooltipDelayTimer.item = settingsModeSelection
tooltipDelayTimer.text = model.tooltipText tooltipDelayTimer.text = model.tooltipText
tooltipDelayTimer.start(); tooltipDelayTimer.start()
} }
else else
{ {
tooltipDelayTimer.stop(); tooltipDelayTimer.stop()
base.hideTooltip(); base.hideTooltip()
} }
} }
style: ButtonStyle { background: Rectangle
background: Rectangle { {
border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width 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") : 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")
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") : color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
control.hovered ? UM.Theme.getColor("action_button_hovered") : }
UM.Theme.getColor("action_button")
Behavior on color { ColorAnimation { duration: 50; } } contentItem: Text
Label { {
anchors.left: parent.left text: model.text
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") font: UM.Theme.getFont("default")
text: control.text
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
elide: Text.ElideMiddle verticalAlignment: Text.AlignVCenter
} elide: Text.ElideRight
}
label: Item { }
} }
} }
} }
ExclusiveGroup { id: modeMenuGroup; }
ButtonGroup
{
id: modeMenuGroup
}
ListView ListView
{ {
@ -238,34 +246,24 @@ Rectangle
anchors.right: base.right anchors.right: base.right
visible: !monitoringPrint && !hideSettings visible: !monitoringPrint && !hideSettings
delegate: StackViewDelegate replaceEnter: Transition {
{ PropertyAnimation {
function transitionFinished(properties)
{
properties.exitItem.opacity = 1
}
pushTransition: StackViewTransition
{
PropertyAnimation
{
target: enterItem
property: "opacity" property: "opacity"
from: 0 from: 0
to: 1 to:1
duration: 100 duration: 100
} }
PropertyAnimation }
{
target: exitItem replaceExit: Transition {
PropertyAnimation {
property: "opacity" property: "opacity"
from: 1 from: 1
to: 0 to:0
duration: 100 duration: 100
} }
} }
} }
}
Loader Loader
{ {
@ -598,7 +596,7 @@ Rectangle
tooltipText: catalog.i18nc("@tooltip", "<b>Custom Print Setup</b><br/><br/>Print with finegrained control over every last bit of the slicing process."), tooltipText: catalog.i18nc("@tooltip", "<b>Custom Print Setup</b><br/><br/>Print with finegrained control over every last bit of the slicing process."),
item: sidebarAdvanced 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")) var index = Math.floor(UM.Preferences.getValue("cura/active_mode"))
if(index) if(index)