From 0bc860a5d67d39a2c5cb31344f8ff1345615ea84 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 24 Apr 2015 12:31:40 +0200 Subject: [PATCH 1/3] Layer view now has an awesome slider! --- LayerView.py | 15 ++++++++++++--- LayerView.qml | 35 +++++++++++++++++++++++++++++++++++ __init__.py | 3 ++- 3 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 LayerView.qml diff --git a/LayerView.py b/LayerView.py index 401ae862fd..f1acc8a6a4 100644 --- a/LayerView.py +++ b/LayerView.py @@ -7,11 +7,14 @@ class LayerView(View): def __init__(self): super().__init__() self._material = None + self._num_layers = + self._layer_percentage = 0 #what percentage of layers need to be shown (SLider gives value between 0 - 100) def beginRendering(self): scene = self.getController().getScene() renderer = self.getRenderer() renderer.setRenderSelection(False) + self._num_layers = 0 if not self._material: self._material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, 'basic.vert'), Resources.getPath(Resources.ShadersLocation, 'vertexcolor.frag')) @@ -22,11 +25,17 @@ class LayerView(View): if not node.render(renderer): if node.getMeshData() and node.isVisible(): try: - layerData = node.getMeshData().layerData + layer_data = node.getMeshData().layerData + if self._num_layers < len(layer_data.getLayers()): + self._num_layers = len(layer_data.getLayers()) + except AttributeError: continue - renderer.queueNode(node, mesh = layerData, material = self._material, mode = Renderer.RenderLines) - + renderer.queueNode(node, mesh = layer_data, material = self._material, mode = Renderer.RenderLines) + + def setLayer(self, value): + self._layer_percentage = value + def endRendering(self): pass diff --git a/LayerView.qml b/LayerView.qml new file mode 100644 index 0000000000..16c9768eef --- /dev/null +++ b/LayerView.qml @@ -0,0 +1,35 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.2 +import QtQuick.Layouts 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.0 as UM + +Item +{ + width: 250 + height: 250 + /*Rectangle + { + color: "blue" + width: 250 + height:250 + }*/ + Slider + { + width: 10 + height: 250 + anchors.right : parent.right + //anchors.fill: parent + //Layout.preferredHeight: UM.Theme.sizes.section.height; + orientation: Qt.Vertical + minimumValue: 0; + maximumValue: 100; + + value: 50; + onValueChanged: UM.ActiveView.triggerAction("setLayer", value) + + style: UM.Theme.styles.slider; + //Component.onCompleted: {console.log(UM.Theme.styles.slider)} + } +} \ No newline at end of file diff --git a/__init__.py b/__init__.py index 48da12a459..ef71dffe0d 100644 --- a/__init__.py +++ b/__init__.py @@ -7,7 +7,8 @@ def getMetaData(): "name": "Layer View" }, 'view': { - 'name': 'Layers' + 'name': 'Layers', + 'view_panel': 'LayerView.qml' } } From ee52f96f296e8aa908cad5f9ce5e7213b7ca3996 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 24 Apr 2015 13:53:27 +0200 Subject: [PATCH 2/3] More documentation --- LayerView.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/LayerView.py b/LayerView.py index f1acc8a6a4..b79f789f84 100644 --- a/LayerView.py +++ b/LayerView.py @@ -3,12 +3,13 @@ from UM.View.Renderer import Renderer from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Resources import Resources +## View used to display g-code paths. class LayerView(View): def __init__(self): super().__init__() self._material = None self._num_layers = - self._layer_percentage = 0 #what percentage of layers need to be shown (SLider gives value between 0 - 100) + self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100) def beginRendering(self): scene = self.getController().getScene() @@ -18,7 +19,6 @@ class LayerView(View): if not self._material: self._material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, 'basic.vert'), Resources.getPath(Resources.ShadersLocation, 'vertexcolor.frag')) - self._material.setUniformValue("u_color", [1.0, 0.0, 0.0, 1.0]) for node in DepthFirstIterator(scene.getRoot()): @@ -26,7 +26,7 @@ class LayerView(View): if node.getMeshData() and node.isVisible(): try: layer_data = node.getMeshData().layerData - if self._num_layers < len(layer_data.getLayers()): + if self._num_layers < len(layer_data.getLayers()): self._num_layers = len(layer_data.getLayers()) except AttributeError: From 2bde36790e7544738bd9e71ca35d2cde63c5b0a5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 24 Apr 2015 15:31:02 +0200 Subject: [PATCH 3/3] Fixed caused by cleanup --- LayerView.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LayerView.py b/LayerView.py index b79f789f84..5f8a1f7d5f 100644 --- a/LayerView.py +++ b/LayerView.py @@ -8,7 +8,7 @@ class LayerView(View): def __init__(self): super().__init__() self._material = None - self._num_layers = + self._num_layers = 0 self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100) def beginRendering(self):