mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 13:49:39 +08:00
Adds layer count
Brings back the layer count, the min & max. And it does not display these untill Cura is done slicing. Fixes #117
This commit is contained in:
parent
ef86eb480f
commit
53a94c23e1
@ -27,9 +27,13 @@ class LayerView(View):
|
||||
self._max_layers = 10
|
||||
self._current_layer_num = 10
|
||||
self._current_layer_mesh = None
|
||||
self._activity = False
|
||||
|
||||
self._solid_layers = 5
|
||||
|
||||
def getActivity(self):
|
||||
return self._activity
|
||||
|
||||
def getCurrentLayer(self):
|
||||
return self._current_layer_num
|
||||
|
||||
@ -114,13 +118,14 @@ class LayerView(View):
|
||||
|
||||
self._current_layer_mesh = None
|
||||
self.currentLayerNumChanged.emit()
|
||||
|
||||
|
||||
currentLayerNumChanged = Signal()
|
||||
|
||||
|
||||
def calculateMaxLayers(self):
|
||||
scene = self.getController().getScene()
|
||||
renderer = self.getRenderer()
|
||||
if renderer and self._material:
|
||||
self._activity = True
|
||||
renderer.setRenderSelection(False)
|
||||
self._old_max_layers = self._max_layers
|
||||
## Recalculate num max layers
|
||||
@ -138,10 +143,11 @@ class LayerView(View):
|
||||
if new_max_layers > 0 and new_max_layers != self._old_max_layers:
|
||||
self._max_layers = new_max_layers
|
||||
self.maxLayersChanged.emit()
|
||||
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)))
|
||||
|
||||
|
||||
maxLayersChanged = Signal()
|
||||
|
||||
## Hackish way to ensure the proxy is already created, which ensures that the layerview.qml is already created
|
||||
|
@ -18,6 +18,7 @@ Item
|
||||
width: 10
|
||||
height: 250
|
||||
anchors.right : parent.right
|
||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width * 2
|
||||
orientation: Qt.Vertical
|
||||
minimumValue: 0;
|
||||
maximumValue: UM.LayerView.numLayers;
|
||||
@ -26,6 +27,6 @@ Item
|
||||
value: UM.LayerView.currentLayer
|
||||
onValueChanged: UM.LayerView.setCurrentLayer(value)
|
||||
|
||||
style: UM.Theme.styles.slider;
|
||||
style: UM.LayerView.getLayerActivity ? UM.Theme.styles.layerViewSlider : UM.Theme.styles.slider
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,13 @@ class LayerViewProxy(QObject):
|
||||
|
||||
currentLayerChanged = pyqtSignal()
|
||||
maxLayersChanged = pyqtSignal()
|
||||
|
||||
activityChanged = pyqtSignal()
|
||||
|
||||
@pyqtProperty(bool, notify = activityChanged)
|
||||
def getLayerActivity(self):
|
||||
active_view = self._controller.getActiveView()
|
||||
return active_view.getActivity()
|
||||
|
||||
@pyqtProperty(int, notify = maxLayersChanged)
|
||||
def numLayers(self):
|
||||
active_view = self._controller.getActiveView()
|
||||
@ -30,9 +36,13 @@ class LayerViewProxy(QObject):
|
||||
active_view = self._controller.getActiveView()
|
||||
if type(active_view) == LayerView.LayerView.LayerView:
|
||||
active_view.setLayer(layer_num)
|
||||
|
||||
def _layerActivityChanged(self):
|
||||
self.activityChanged.emit()
|
||||
|
||||
def _onLayerChanged(self):
|
||||
self.currentLayerChanged.emit()
|
||||
self._layerActivityChanged()
|
||||
|
||||
def _onMaxLayersChanged(self):
|
||||
self.maxLayersChanged.emit()
|
||||
|
@ -272,6 +272,7 @@ QtObject {
|
||||
}
|
||||
|
||||
handle: UM.AngledCornerRectangle {
|
||||
id: scrollViewHandle
|
||||
implicitWidth: UM.Theme.sizes.scrollbar.width;
|
||||
|
||||
cornerSize: UM.Theme.sizes.scrollbar.width;
|
||||
@ -367,6 +368,72 @@ QtObject {
|
||||
}
|
||||
}
|
||||
|
||||
property Component layerViewSlider: Component {
|
||||
SliderStyle {
|
||||
groove: Rectangle {
|
||||
id: layerSliderGroove
|
||||
implicitWidth: control.width;
|
||||
implicitHeight: UM.Theme.sizes.slider_groove.height;
|
||||
|
||||
color: UM.Theme.colors.slider_groove;
|
||||
border.width: 1;
|
||||
border.color: UM.Theme.colors.slider_groove_border;
|
||||
Rectangle {
|
||||
anchors {
|
||||
left: parent.left;
|
||||
top: parent.top;
|
||||
bottom: parent.bottom;
|
||||
}
|
||||
color: UM.Theme.colors.slider_groove_fill;
|
||||
width: (control.value / (control.maximumValue - control.minimumValue)) * parent.width;
|
||||
}
|
||||
Label {
|
||||
id: maxValueLabel
|
||||
text: control.maximumValue + 1
|
||||
transformOrigin: Item.BottomLeft
|
||||
rotation: 90
|
||||
x: parent.x + parent.width - maxValueLabel.height
|
||||
y: parent.y
|
||||
}
|
||||
Label {
|
||||
id: minValueLabel
|
||||
text: '1'
|
||||
transformOrigin: Item.BottomLeft
|
||||
rotation: 90
|
||||
x: parent.x
|
||||
y: parent.y
|
||||
}
|
||||
}
|
||||
handle: Rectangle {
|
||||
id: layerSliderControl
|
||||
width: UM.Theme.sizes.slider_handle.width;
|
||||
height: UM.Theme.sizes.slider_handle.height;
|
||||
color: control.hovered ? UM.Theme.colors.slider_handle_hover : UM.Theme.colors.slider_handle;
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
Label {
|
||||
id: valueLabel
|
||||
text: control.value + 1
|
||||
anchors.bottom: layerSliderControl.bottom
|
||||
anchors.right: layerSliderControl.left
|
||||
anchors.bottomMargin: parent.width + UM.Theme.sizes.default_margin.width
|
||||
transformOrigin: Item.BottomRight
|
||||
rotation: 90
|
||||
Rectangle {
|
||||
width: (parent.width + UM.Theme.sizes.tooltip_margins.width) < 35 ? 35 : parent.width + UM.Theme.sizes.tooltip_margins.width
|
||||
height: parent.height + UM.Theme.sizes.tooltip_margins.height
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
z: parent.z - 1
|
||||
color: UM.Theme.colors.slider_text_background
|
||||
border.width: 1
|
||||
border.color: UM.Theme.colors.slider_groove_fill;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
property Component text_field: Component {
|
||||
TextFieldStyle {
|
||||
textColor: UM.Theme.colors.setting_control_text;
|
||||
|
@ -100,6 +100,7 @@
|
||||
"slider_groove_fill": [160, 163, 171, 255],
|
||||
"slider_handle": [12, 169, 227, 255],
|
||||
"slider_handle_hover": [34, 150, 190, 255],
|
||||
"slider_text_background": [255, 255, 255, 255],
|
||||
|
||||
"checkbox": [255, 255, 255, 255],
|
||||
"checkbox_hover": [245, 245, 245, 255],
|
||||
|
Loading…
x
Reference in New Issue
Block a user