From 33ee21c94258f032bcf2d2056e9edc45d5f96753 Mon Sep 17 00:00:00 2001 From: daid303 Date: Thu, 31 Jan 2013 13:27:13 +0100 Subject: [PATCH] Allow unselection of tools, and fix the scaling size indication. --- Cura/gui/configWizard.py | 2 +- Cura/gui/preview3d.py | 27 +++++++++++++++++++-------- Cura/gui/util/opengl.py | 22 +++++++++++----------- Cura/gui/util/previewTools.py | 21 ++++++++++++++++++++- 4 files changed, 51 insertions(+), 21 deletions(-) diff --git a/Cura/gui/configWizard.py b/Cura/gui/configWizard.py index 8e2871ed..01645ec7 100644 --- a/Cura/gui/configWizard.py +++ b/Cura/gui/configWizard.py @@ -761,7 +761,7 @@ class bedLevelWizardMain(InfoPage): self._wizardState = 0 def AllowNext(self): - return False + return True def OnResume(self, e): feedZ = profile.getProfileSettingFloat('max_z_speed') * 60 diff --git a/Cura/gui/preview3d.py b/Cura/gui/preview3d.py index aabbf7ed..4f668ecc 100644 --- a/Cura/gui/preview3d.py +++ b/Cura/gui/preview3d.py @@ -118,11 +118,10 @@ class previewPanel(wx.Panel): self.openFileButton = openglGui.glButton(self.glCanvas, 3, 'Load file', -1,0, lambda : self.GetParent().GetParent().GetParent()._showModelLoadDialog(1)) - self.infoToolButton.setSelected(True) self.returnToModelViewAndUpdateModel() self.matrix = numpy.matrix(numpy.array(profile.getObjectMatrix(), numpy.float64).reshape((3,3,))) - self.tool = previewTools.toolInfo(self.glCanvas) + self.tool = previewTools.toolNone(self.glCanvas) def returnToModelViewAndUpdateModel(self): if self.glCanvas.viewMode == 'GCode' or self.glCanvas.viewMode == 'Mixed': @@ -134,24 +133,36 @@ class previewPanel(wx.Panel): self.updateModelTransform() def OnInfoSelect(self): - self.infoToolButton.setSelected(True) + if self.infoToolButton.getSelected(): + self.infoToolButton.setSelected(False) + self.tool = previewTools.toolNone(self.glCanvas) + else: + self.infoToolButton.setSelected(True) + self.tool = previewTools.toolInfo(self.glCanvas) self.rotateToolButton.setSelected(False) self.scaleToolButton.setSelected(False) - self.tool = previewTools.toolInfo(self.glCanvas) self.returnToModelViewAndUpdateModel() def OnRotateSelect(self): self.infoToolButton.setSelected(False) - self.rotateToolButton.setSelected(True) + if self.rotateToolButton.getSelected(): + self.rotateToolButton.setSelected(False) + self.tool = previewTools.toolNone(self.glCanvas) + else: + self.rotateToolButton.setSelected(True) + self.tool = previewTools.toolRotate(self.glCanvas) self.scaleToolButton.setSelected(False) - self.tool = previewTools.toolRotate(self.glCanvas) self.returnToModelViewAndUpdateModel() def OnScaleSelect(self): self.infoToolButton.setSelected(False) self.rotateToolButton.setSelected(False) - self.scaleToolButton.setSelected(True) - self.tool = previewTools.toolScale(self.glCanvas) + if self.scaleToolButton.getSelected(): + self.scaleToolButton.setSelected(False) + self.tool = previewTools.toolNone(self.glCanvas) + else: + self.scaleToolButton.setSelected(True) + self.tool = previewTools.toolScale(self.glCanvas) self.returnToModelViewAndUpdateModel() def OnMove(self, e = None): diff --git a/Cura/gui/util/opengl.py b/Cura/gui/util/opengl.py index b1dc7e8f..47266d7f 100644 --- a/Cura/gui/util/opengl.py +++ b/Cura/gui/util/opengl.py @@ -377,13 +377,13 @@ def DrawGCodeLayer(layer): lineWidth = profile.getProfileSettingFloat('nozzle_size') / 2 / 10 fillCycle = 0 - fillColorCycle = [[0.5, 0.5, 0.0], [0.0, 0.5, 0.5], [0.5, 0.0, 0.5]] - moveColor = [0, 0, 1] - retractColor = [1, 0, 0.5] - supportColor = [0, 1, 1] - extrudeColor = [1, 0, 0] - innerWallColor = [0, 1, 0] - skirtColor = [0, 0.5, 0.5] + fillColorCycle = [[0.5, 0.5, 0.0, 1], [0.0, 0.5, 0.5, 1], [0.5, 0.0, 0.5, 1]] + moveColor = [0, 0, 1, 0.5] + retractColor = [1, 0, 0.5, 0.5] + supportColor = [0, 1, 1, 1] + extrudeColor = [1, 0, 0, 1] + innerWallColor = [0, 1, 0, 1] + skirtColor = [0, 0.5, 0.5, 1] prevPathWasRetract = False glDisable(GL_CULL_FACE) @@ -408,7 +408,7 @@ def DrawGCodeLayer(layer): else: c = extrudeColor if path.type == 'retract': - c = [0, 1, 1] + c = retractColor if path.type == 'extrude': drawLength = 0.0 prevNormal = None @@ -432,7 +432,7 @@ def DrawGCodeLayer(layer): vv1 = v1 - normal * lineWidth glBegin(GL_QUADS) - glColor3fv(c) + glColor4fv(c) glVertex3f(vv0.x, vv0.y, vv0.z - zOffset) glVertex3f(vv1.x, vv1.y, vv1.z - zOffset) glVertex3f(vv3.x, vv3.y, vv3.z - zOffset) @@ -444,7 +444,7 @@ def DrawGCodeLayer(layer): vv4 = v0 + n * lineWidth vv5 = v0 - n * lineWidth glBegin(GL_QUADS) - glColor3fv(c) + glColor4fv(c) glVertex3f(vv2.x, vv2.y, vv2.z - zOffset) glVertex3f(vv4.x, vv4.y, vv4.z - zOffset) glVertex3f(prevVv3.x, prevVv3.y, prevVv3.z - zOffset) @@ -461,7 +461,7 @@ def DrawGCodeLayer(layer): prevVv3 = vv3 else: glBegin(GL_LINE_STRIP) - glColor3fv(c) + glColor4fv(c) for v in path.list: glVertex3f(v.x, v.y, v.z) glEnd() diff --git a/Cura/gui/util/previewTools.py b/Cura/gui/util/previewTools.py index 553ead0a..cf7cbe56 100644 --- a/Cura/gui/util/previewTools.py +++ b/Cura/gui/util/previewTools.py @@ -11,6 +11,25 @@ from OpenGL.GL import * from Cura.gui.util import opengl +class toolNone(object): + def __init__(self, parent): + self.parent = parent + + def OnMouseMove(self, p0, p1): + pass + + def OnDragStart(self, p0, p1): + return False + + def OnDrag(self, p0, p1): + pass + + def OnDragEnd(self): + pass + + def OnDraw(self): + pass + class toolInfo(object): def __init__(self, parent): self.parent = parent @@ -372,7 +391,7 @@ class toolScale(object): glTranslate(0, (radius + 5) * (90 - self.parent.pitch) / 10,0) else: glTranslate(0,-(radius + 5),0) - opengl.glDrawStringCenter("%dx%dx%d" % (size[0] * scaleX, size[1] * scaleY, size[2] * scaleZ)) + opengl.glDrawStringCenter("%dx%dx%d" % (size[0], size[1], size[2])) glPopMatrix() glLineWidth(1) -- 2.30.2