From 3be8f45636b973370e44191badf4be52adb07268 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 27 Sep 2017 15:18:53 +0200 Subject: [PATCH] Move the quality indicator to the center when there is only one quality available Fixes #2485 CURA-4383 --- resources/qml/SidebarSimple.qml | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 3a104e81a1..e222de8aa5 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -186,7 +186,10 @@ Item x: { // Make sure the text aligns correctly with each tick - if (index == 0) { + if (qualityModel.totalTicks == 0) { + // If there is only one tick, align it centrally + return ((base.width * 0.55) - width) / 2 + } else if (index == 0) { return (base.width * 0.55 / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { return (base.width * 0.55 / qualityModel.totalTicks) * index - width @@ -223,7 +226,7 @@ Item Repeater { id: qualityRepeater - model: qualityModel + model: qualityModel.availableTotalTicks > 0 ? qualityModel : 0 Rectangle { @@ -236,13 +239,22 @@ Item } } + Rectangle { + id: disabledHandleButton + visible: !qualitySlider.visible + anchors.centerIn: parent + color: UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: width / 2 + } Slider { id: qualitySlider height: UM.Theme.getSize("sidebar_margin").height anchors.bottom: speedSlider.bottom - enabled: qualityModel.availableTotalTicks > 0 + visible: qualityModel.availableTotalTicks > 0 updateValueWhileDragging : false minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 @@ -262,16 +274,16 @@ Item groove: Rectangle { implicitHeight: 2 * screenScaleFactor color: UM.Theme.getColor("quality_slider_available") - radius: 1 * screenScaleFactor + radius: height / 2 } handle: Item { Rectangle { id: qualityhandleButton anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + color: UM.Theme.getColor("quality_slider_available") implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: implicitWidth / 2 } } }