chiark / gitweb /
Make the layer-selection keep the same layer value after a re-slice.
authordaid <daid303@gmail.com>
Tue, 25 Jun 2013 07:27:39 +0000 (09:27 +0200)
committerdaid <daid303@gmail.com>
Tue, 25 Jun 2013 07:27:39 +0000 (09:27 +0200)
Cura/gui/sceneView.py
Cura/gui/util/openglGui.py

index 02ddc2c34ed63bbd3a08e2de79bb94ffa52da144..8400fd0f79ffce4c38e073e1afb2219bb3448e31 100644 (file)
@@ -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
index 7d611e9d56edd0c9bf43c983ddf7400ba244f616..020874b7dce0482bc6d0348978e78c9eb11e28ab 100644 (file)
@@ -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)