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:
Tamara Hogenhout 2015-07-08 18:01:03 +02:00
parent ef86eb480f
commit 53a94c23e1
5 changed files with 90 additions and 5 deletions

View file

@ -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

View file

@ -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
}
}

View file

@ -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()