mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-10 21:09:00 +08:00
Rescale the current layer number based on the maximum layer
This makes sure we still have the top layer selected when we receive new data. Contributes to Asana issue 34806173176751
This commit is contained in:
parent
8db06b8305
commit
d9ad54cd0d
@ -18,10 +18,10 @@ class LayerView(View):
|
||||
self._material = None
|
||||
self._num_layers = 0
|
||||
self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100)
|
||||
self._current_layer_num = 0
|
||||
self._proxy = LayerViewProxy.LayerViewProxy()
|
||||
self._controller.getScene().sceneChanged.connect(self._onSceneChanged)
|
||||
self._max_layers = 10
|
||||
self._current_layer_num = 10
|
||||
|
||||
def getCurrentLayer(self):
|
||||
return self._current_layer_num
|
||||
@ -87,7 +87,7 @@ class LayerView(View):
|
||||
renderer.setRenderSelection(False)
|
||||
self._old_max_layers = self._max_layers
|
||||
## Recalculate num max layers
|
||||
self._max_layers = 0
|
||||
new_max_layers = 0
|
||||
for node in DepthFirstIterator(scene.getRoot()):
|
||||
if not node.render(renderer):
|
||||
if node.getMeshData() and node.isVisible():
|
||||
@ -95,11 +95,15 @@ class LayerView(View):
|
||||
layer_data = node.getMeshData().layerData
|
||||
except AttributeError:
|
||||
continue
|
||||
if self._max_layers < len(layer_data.getLayers()):
|
||||
self._max_layers = len(layer_data.getLayers())
|
||||
|
||||
if self._max_layers != self._old_max_layers:
|
||||
if new_max_layers < len(layer_data.getLayers()):
|
||||
new_max_layers = len(layer_data.getLayers())
|
||||
|
||||
if new_max_layers > 0 and new_max_layers != self._old_max_layers:
|
||||
self._max_layers = new_max_layers
|
||||
self.maxLayersChanged.emit()
|
||||
|
||||
# This makes sure we update the current layer
|
||||
self.setLayer(int(self._max_layers * (self._current_layer_num / self._old_max_layers)))
|
||||
|
||||
maxLayersChanged = Signal()
|
||||
|
||||
|
@ -21,6 +21,7 @@ Item
|
||||
orientation: Qt.Vertical
|
||||
minimumValue: 0;
|
||||
maximumValue: UM.LayerView.numLayers;
|
||||
stepSize: 1
|
||||
|
||||
value: UM.LayerView.currentLayer
|
||||
onValueChanged: UM.LayerView.setCurrentLayer(value)
|
||||
|
Loading…
x
Reference in New Issue
Block a user