diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 13e389f247..cad15047e3 100644 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -146,9 +146,11 @@ class LayerView(View): self._current_layer_num = self._max_layers # This makes sure we update the current layer - self.setLayer(int(self._max_layers * (self._current_layer_num / self._old_max_layers))) + self.setLayer(int(self._max_layers)) + self.currentLayerNumChanged.emit() maxLayersChanged = Signal() + currentLayerNumChanged = Signal() ## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created # as this caused some issues. diff --git a/plugins/LayerView/LayerView.qml b/plugins/LayerView/LayerView.qml index 3f6e0deb37..4d0da440d1 100644 --- a/plugins/LayerView/LayerView.qml +++ b/plugins/LayerView/LayerView.qml @@ -15,10 +15,11 @@ Item Slider { + id: slider width: 10 height: 250 anchors.right : parent.right - anchors.rightMargin: UM.Theme.sizes.default_margin.width * 2 + anchors.rightMargin: UM.Theme.sizes.slider_layerview_margin.width orientation: Qt.Vertical minimumValue: 0; maximumValue: UM.LayerView.numLayers; @@ -27,6 +28,31 @@ Item value: UM.LayerView.currentLayer onValueChanged: UM.LayerView.setCurrentLayer(value) - style: UM.LayerView.getLayerActivity ? UM.Theme.styles.layerViewSlider : UM.Theme.styles.slider + style: UM.Theme.styles.layerViewSlider + } + Rectangle { + anchors.right: parent.right + y: -UM.Theme.sizes.slider_layerview_background_extension.height + z: slider.z - 1 + width: UM.Theme.sizes.button.width + height: UM.Theme.sizes.slider_layerview_background_extension.height + color: UM.Theme.colors.slider_text_background + } + UM.AngledCornerRectangle { + anchors.right : parent.right + anchors.verticalCenter: parent.verticalCenter + z: slider.z - 1 + cornerSize: UM.Theme.sizes.default_margin.width; + width: UM.Theme.sizes.slider_layerview_background.width + height: slider.height + UM.Theme.sizes.default_margin.height * 2 + color: UM.Theme.colors.slider_text_background + MouseArea { + id: sliderMouseArea + property double manualStepSize: slider.maximumValue / 11 + anchors.fill: parent + onWheel: { + slider.value = wheel.angleDelta.y < 0 ? slider.value - sliderMouseArea.manualStepSize : slider.value + sliderMouseArea.manualStepSize + } + } } } diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml index 91a8d512e0..e40552cd32 100644 --- a/resources/themes/cura/styles.qml +++ b/resources/themes/cura/styles.qml @@ -368,7 +368,7 @@ QtObject { } } - property Component layerViewSlider: Component { + property Component layerViewSlider: Component { SliderStyle { groove: Rectangle { id: layerSliderGroove @@ -389,19 +389,23 @@ QtObject { } Label { id: maxValueLabel + visible: UM.LayerView.getLayerActivity ? true : false text: control.maximumValue + 1 + font: control.maximumValue > 998 ? UM.Theme.fonts.small : UM.Theme.fonts.default transformOrigin: Item.BottomLeft rotation: 90 x: parent.x + parent.width - maxValueLabel.height - y: parent.y + y: control.maximumValue > 998 ? parent.y + UM.Theme.sizes.slider_layerview_smalltext_margin.width : parent.y } Label { id: minValueLabel + visible: UM.LayerView.getLayerActivity ? true : false text: '1' + font: control.maximumValue > 998 ? UM.Theme.fonts.small : UM.Theme.fonts.default transformOrigin: Item.BottomLeft rotation: 90 x: parent.x - y: parent.y + y: control.maximumValue > 998 ? parent.y + UM.Theme.sizes.slider_layerview_smalltext_margin.width : parent.y } } handle: Rectangle { @@ -412,10 +416,12 @@ QtObject { Behavior on color { ColorAnimation { duration: 50; } } Label { id: valueLabel + visible: UM.LayerView.getLayerActivity ? true : false text: control.value + 1 anchors.bottom: layerSliderControl.bottom anchors.right: layerSliderControl.left anchors.bottomMargin: parent.width + UM.Theme.sizes.default_margin.width + font: UM.Theme.fonts.default transformOrigin: Item.BottomRight rotation: 90 Rectangle { diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index 910081e829..5b247045b8 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -155,6 +155,10 @@ "slider_groove": [0.5, 0.5], "slider_handle": [1.5, 1.5], + "slider_layerview_background": [6.0, 0.0], + "slider_layerview_smalltext_margin": [0.3, 0.00], + "slider_layerview_background_extension": [0.0, 2.2], + "slider_layerview_margin": [3.0, 3.0], "checkbox": [1.5, 1.5],