From f8e8dcacdf931b12bdddd1093edb2e1d1245f60c Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 27 Sep 2017 13:55:57 +0200 Subject: [PATCH] CURA-4381 use modulus to set infill slider step size and tick show --- resources/qml/SidebarSimple.qml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index b94c1ced4e..6d67b927bd 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -393,7 +393,7 @@ Item minimumValue: 0 maximumValue: 100 - stepSize: 10 + stepSize: (parseInt(infillDensity.properties.value) % 10 == 0) ? 10 : 1 tickmarksEnabled: true // disable slider when gradual support is enabled @@ -403,12 +403,12 @@ Item value: parseInt(infillDensity.properties.value) onValueChanged: { + // Explicitly cast to string to make sure the value passed to Python is an integer. infillDensity.setPropertyValue("value", String(parseInt(infillSlider.value))) } style: SliderStyle { - groove: Rectangle { id: groove implicitWidth: 200 @@ -431,6 +431,18 @@ Item tickmarks: Repeater { id: repeater model: control.maximumValue / control.stepSize + 1 + + // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) + function shouldShowTick (index) { + if ((parseInt(infillDensity.properties.value) % 10 == 0)) { + return true + } else if (index % 10 == 0) { + return true + } else { + return false + } + } + Rectangle { anchors.verticalCenter: parent.verticalCenter color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") @@ -438,6 +450,7 @@ Item height: 6 y: 0 x: styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1)) + visible: shouldShowTick(index) } } }