From 8bcb1260d828badbad1f46f582bf804dab81363d Mon Sep 17 00:00:00 2001 From: daid Date: Tue, 25 Jun 2013 09:27:39 +0200 Subject: [PATCH] Make the layer-selection keep the same layer value after a re-slice. --- Cura/gui/sceneView.py | 9 ++------- Cura/gui/util/openglGui.py | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 02ddc2c3..8400fd0f 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -99,7 +99,7 @@ class SceneView(openglGui.glGuiPanel): self.scaleUniform = openglGui.glCheckbox(self.scaleForm, True, (1,8), None) self.viewSelection = openglGui.glComboButton(self, 'View mode', [7,19,11,15,23], ['Normal', 'Overhang', 'Transparent', 'X-Ray', 'Layers'], (-1,0), self.OnViewChange) - self.layerSelect = openglGui.glSlider(self, 100, 0, 100, (-1,-2), lambda : self.QueueRefresh()) + self.layerSelect = openglGui.glSlider(self, 10000, 0, 1, (-1,-2), lambda : self.QueueRefresh()) self.notification = openglGui.glNotification(self, (0, 0)) @@ -273,7 +273,6 @@ class SceneView(openglGui.glGuiPanel): self.viewMode = 'gcode' if self._gcode is not None and self._gcode.layerList is not None: self.layerSelect.setRange(1, len(self._gcode.layerList) - 1) - self.layerSelect.setValue(len(self._gcode.layerList) - 1) self._selectObject(None) elif self.viewSelection.getValue() == 1: self.viewMode = 'overhang' @@ -454,11 +453,7 @@ class SceneView(openglGui.glGuiPanel): time.sleep(0.1) if self._gcode is None: return True - if self.layerSelect.getValue() == self.layerSelect.getMaxValue(): - self.layerSelect.setRange(1, len(self._gcode.layerList) - 1) - self.layerSelect.setValue(self.layerSelect.getMaxValue()) - else: - self.layerSelect.setRange(1, len(self._gcode.layerList) - 1) + self.layerSelect.setRange(1, len(self._gcode.layerList) - 1) if self.viewMode == 'gcode': self._queueRefresh() return False diff --git a/Cura/gui/util/openglGui.py b/Cura/gui/util/openglGui.py index 7d611e9d..020874b7 100644 --- a/Cura/gui/util/openglGui.py +++ b/Cura/gui/util/openglGui.py @@ -958,10 +958,12 @@ class glSlider(glGuiControl): def setValue(self, value): self._value = value - self._value = max(self._minValue, self._value) - self._value = min(self._maxValue, self._value) def getValue(self): + if self._value < self._minValue: + return self._minValue + if self._value > self._maxValue: + return self._maxValue return self._value def setRange(self, minValue, maxValue): @@ -969,8 +971,6 @@ class glSlider(glGuiControl): maxValue = minValue self._minValue = minValue self._maxValue = maxValue - self._value = max(minValue, self._value) - self._value = min(maxValue, self._value) def getMinValue(self): return self._minValue @@ -1010,6 +1010,10 @@ class glSlider(glGuiControl): glVertex2f( w/2, h/2) glEnd() scrollLength = h - w + if self._maxValue-self._minValue != 0: + valueNormalized = ((self.getValue()-self._minValue)/(self._maxValue-self._minValue)) + else: + valueNormalized = 0 glTranslate(0.0,scrollLength/2,0) if self._focus: glColor4ub(0,0,0,255) @@ -1018,13 +1022,11 @@ class glSlider(glGuiControl): opengl.glDrawStringRight(str(self._minValue)) glTranslate(0,-scrollLength,0) opengl.glDrawStringRight(str(self._maxValue)) - if self._maxValue-self._minValue > 0: - glTranslate(w,scrollLength-scrollLength*((self._value-self._minValue)/(self._maxValue-self._minValue)),0) - opengl.glDrawStringLeft(str(self._value)) + glTranslate(w,scrollLength-scrollLength*valueNormalized,0) + opengl.glDrawStringLeft(str(self.getValue())) glPopMatrix() glColor4ub(255,255,255,240) - if self._maxValue - self._minValue != 0: - glTranslate(0.0,-scrollLength*((self._value-self._minValue)/(self._maxValue-self._minValue)),0) + glTranslate(0.0,-scrollLength*valueNormalized,0) glBegin(GL_QUADS) glVertex2f( w/2,-w/2) glVertex2f(-w/2,-w/2) -- 2.30.2