mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 07:27:29 -06:00
WIP second slider LayerView
This commit is contained in:
parent
e3d77de6df
commit
73a8859b0e
4 changed files with 51 additions and 1 deletions
|
@ -81,6 +81,8 @@ class LayerPass(RenderPass):
|
||||||
for layer, counts in element_counts.items():
|
for layer, counts in element_counts.items():
|
||||||
if layer > self._layer_view._current_layer_num:
|
if layer > self._layer_view._current_layer_num:
|
||||||
break
|
break
|
||||||
|
if self._layer_view._minimum_layer_num > layer:
|
||||||
|
start += counts
|
||||||
end += counts
|
end += counts
|
||||||
|
|
||||||
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
||||||
|
|
|
@ -41,6 +41,7 @@ class LayerView(View):
|
||||||
|
|
||||||
self._max_layers = 0
|
self._max_layers = 0
|
||||||
self._current_layer_num = 0
|
self._current_layer_num = 0
|
||||||
|
self._minimum_layer_num = 0
|
||||||
self._current_layer_mesh = None
|
self._current_layer_mesh = None
|
||||||
self._current_layer_jumps = None
|
self._current_layer_jumps = None
|
||||||
self._top_layers_job = None
|
self._top_layers_job = None
|
||||||
|
@ -94,6 +95,9 @@ class LayerView(View):
|
||||||
def getCurrentLayer(self):
|
def getCurrentLayer(self):
|
||||||
return self._current_layer_num
|
return self._current_layer_num
|
||||||
|
|
||||||
|
def getMinimumLayer(self):
|
||||||
|
return self._minimum_layer_num
|
||||||
|
|
||||||
def _onSceneChanged(self, node):
|
def _onSceneChanged(self, node):
|
||||||
self.calculateMaxLayers()
|
self.calculateMaxLayers()
|
||||||
|
|
||||||
|
@ -144,6 +148,18 @@ class LayerView(View):
|
||||||
|
|
||||||
self.currentLayerNumChanged.emit()
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
||||||
|
def setMinimumLayer(self, value):
|
||||||
|
if self._minimum_layer_num != value:
|
||||||
|
self._minimum_layer_num = value
|
||||||
|
if self._minimum_layer_num < 0:
|
||||||
|
self._minimum_layer_num = 0
|
||||||
|
if self._minimum_layer_num > self._current_layer_num:
|
||||||
|
self._minimum_layer_num = self._current_layer_num
|
||||||
|
|
||||||
|
self._startUpdateTopLayers()
|
||||||
|
|
||||||
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
||||||
def setLayerViewType(self, layer_view_type):
|
def setLayerViewType(self, layer_view_type):
|
||||||
self._layer_view_type = layer_view_type
|
self._layer_view_type = layer_view_type
|
||||||
self.currentLayerNumChanged.emit()
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
|
@ -13,13 +13,33 @@ Item
|
||||||
width: UM.Theme.getSize("button").width
|
width: UM.Theme.getSize("button").width
|
||||||
height: UM.Theme.getSize("slider_layerview_size").height
|
height: UM.Theme.getSize("slider_layerview_size").height
|
||||||
|
|
||||||
|
Slider
|
||||||
|
{
|
||||||
|
id: slider2
|
||||||
|
width: UM.Theme.getSize("slider_layerview_size").width
|
||||||
|
height: UM.Theme.getSize("slider_layerview_size").height
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.2
|
||||||
|
orientation: Qt.Vertical
|
||||||
|
minimumValue: 0;
|
||||||
|
maximumValue: UM.LayerView.numLayers;
|
||||||
|
stepSize: 1
|
||||||
|
|
||||||
|
property real pixelsPerStep: ((height - UM.Theme.getSize("slider_handle").height) / (maximumValue - minimumValue)) * stepSize;
|
||||||
|
|
||||||
|
value: UM.LayerView.minimumLayer
|
||||||
|
onValueChanged: UM.LayerView.setMinimumLayer(value)
|
||||||
|
|
||||||
|
style: UM.Theme.styles.slider;
|
||||||
|
}
|
||||||
|
|
||||||
Slider
|
Slider
|
||||||
{
|
{
|
||||||
id: slider
|
id: slider
|
||||||
width: UM.Theme.getSize("slider_layerview_size").width
|
width: UM.Theme.getSize("slider_layerview_size").width
|
||||||
height: UM.Theme.getSize("slider_layerview_size").height
|
height: UM.Theme.getSize("slider_layerview_size").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width/2
|
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width * 0.8
|
||||||
orientation: Qt.Vertical
|
orientation: Qt.Vertical
|
||||||
minimumValue: 0;
|
minimumValue: 0;
|
||||||
maximumValue: UM.LayerView.numLayers;
|
maximumValue: UM.LayerView.numLayers;
|
||||||
|
|
|
@ -35,6 +35,12 @@ class LayerViewProxy(QObject):
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
return active_view.getCurrentLayer()
|
return active_view.getCurrentLayer()
|
||||||
|
|
||||||
|
@pyqtProperty(int, notify = currentLayerChanged)
|
||||||
|
def minimumLayer(self):
|
||||||
|
active_view = self._controller.getActiveView()
|
||||||
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
|
return active_view.getMinimumLayer()
|
||||||
|
|
||||||
busyChanged = pyqtSignal()
|
busyChanged = pyqtSignal()
|
||||||
@pyqtProperty(bool, notify = busyChanged)
|
@pyqtProperty(bool, notify = busyChanged)
|
||||||
def busy(self):
|
def busy(self):
|
||||||
|
@ -50,6 +56,12 @@ class LayerViewProxy(QObject):
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
active_view.setLayer(layer_num)
|
active_view.setLayer(layer_num)
|
||||||
|
|
||||||
|
@pyqtSlot(int)
|
||||||
|
def setMinimumLayer(self, layer_num):
|
||||||
|
active_view = self._controller.getActiveView()
|
||||||
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
|
active_view.setMinimumLayer(layer_num)
|
||||||
|
|
||||||
@pyqtSlot(int)
|
@pyqtSlot(int)
|
||||||
def setLayerViewType(self, layer_view_type):
|
def setLayerViewType(self, layer_view_type):
|
||||||
active_view = self._controller.getActiveView()
|
active_view = self._controller.getActiveView()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue