Finish layer slider label positions and cursor manipulation - CURA-4412

This commit is contained in:
ChrisTerBeke 2017-10-09 17:00:03 +02:00
parent 30a14dd7d6
commit e7e5e86611
2 changed files with 15 additions and 15 deletions

View File

@ -38,7 +38,7 @@ Item {
property bool layersVisible: true property bool layersVisible: true
function getUpperValue () { function getUpperValueFromSliderHandle () {
return upperHandle.getValue() return upperHandle.getValue()
} }
@ -47,7 +47,7 @@ Item {
updateRangeHandle() updateRangeHandle()
} }
function getLowerValue () { function getLowerValueFromSliderHandle () {
return lowerHandle.getValue() return lowerHandle.getValue()
} }
@ -90,7 +90,7 @@ Item {
upperHandle.y = y - upperHandle.height upperHandle.y = y - upperHandle.height
lowerHandle.y = y + height lowerHandle.y = y + height
var upperValue = sliderRoot.getUpperValue() var upperValue = sliderRoot.getUpperValueFromSliderHandle()
var lowerValue = upperValue - (sliderRoot.upperValue - sliderRoot.lowerValue) var lowerValue = upperValue - (sliderRoot.upperValue - sliderRoot.lowerValue)
// update the Python values // update the Python values
@ -156,15 +156,16 @@ Item {
// set the slider position based on the upper value // set the slider position based on the upper value
function setValue (value) { function setValue (value) {
// TODO: improve this?
UM.LayerView.setCurrentLayer(value)
var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue) var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue)
var newUpperYPosition = Math.round(diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize))) var newUpperYPosition = Math.round(diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize)))
y = newUpperYPosition y = newUpperYPosition
// update the rangle handle // update the rangle handle
sliderRoot.updateRangeHandle() sliderRoot.updateRangeHandle()
// TODO: improve this?
UM.LayerView.setCurrentLayer(getValue())
} }
// dragging // dragging
@ -192,7 +193,7 @@ Item {
// custom properties // custom properties
maximumValue: sliderRoot.maximumValue maximumValue: sliderRoot.maximumValue
value: sliderRoot.getUpperValue() value: sliderRoot.upperValue
busy: UM.LayerView.busy busy: UM.LayerView.busy
setValue: sliderRoot.setUpperValue // connect callback functions setValue: sliderRoot.setUpperValue // connect callback functions
} }
@ -218,8 +219,8 @@ Item {
upperHandle.y = y - (upperHandle.heigth + sliderRoot.minimumRangeHandleSize) upperHandle.y = y - (upperHandle.heigth + sliderRoot.minimumRangeHandleSize)
} }
// update the range handle // update the rangle handle
rangeHandle.height = y - (upperHandle.y + upperHandle.height) sliderRoot.updateRangeHandle()
// TODO: improve this? // TODO: improve this?
UM.LayerView.setMinimumLayer(getValue()) UM.LayerView.setMinimumLayer(getValue())
@ -235,15 +236,16 @@ Item {
// set the slider position based on the lower value // set the slider position based on the lower value
function setValue (value) { function setValue (value) {
// TODO: improve this?
UM.LayerView.setMinimumLayer(value)
var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue) var diff = (value - sliderRoot.maximumValue) / (sliderRoot.minimumValue - sliderRoot.maximumValue)
var newLowerYPosition = Math.round((sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize) + diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize))) var newLowerYPosition = Math.round((sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize) + diff * (sliderRoot.height - (2 * sliderRoot.handleSize + sliderRoot.minimumRangeHandleSize)))
y = newLowerYPosition y = newLowerYPosition
// update the rangle handle // update the rangle handle
sliderRoot.updateRangeHandle() sliderRoot.updateRangeHandle()
// TODO: improve this?
UM.LayerView.setMinimumLayer(getValue())
} }
// dragging // dragging
@ -271,7 +273,7 @@ Item {
// custom properties // custom properties
maximumValue: sliderRoot.maximumValue maximumValue: sliderRoot.maximumValue
value: sliderRoot.getLowerValue() value: sliderRoot.lowerValue
busy: UM.LayerView.busy busy: UM.LayerView.busy
setValue: sliderRoot.setLowerValue // connect callback functions setValue: sliderRoot.setLowerValue // connect callback functions
} }

View File

@ -49,9 +49,7 @@ UM.PointingRectangle {
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
// width is based on text field contents, but never smaller than 20pts
width: 40 * screenScaleFactor width: 40 * screenScaleFactor
text: sliderLabelRoot.value + 1 // the current handle value, add 1 because layers is an array text: sliderLabelRoot.value + 1 // the current handle value, add 1 because layers is an array
horizontalAlignment: TextInput.AlignRight horizontalAlignment: TextInput.AlignRight