chiark / gitweb /
Viewmode as radio button, still needs proper icons
authordaid <daid303@gmail.com>
Wed, 18 Apr 2012 13:14:43 +0000 (15:14 +0200)
committerdaid <daid303@gmail.com>
Wed, 18 Apr 2012 13:14:43 +0000 (15:14 +0200)
Cura/gui/mainWindow.py
Cura/gui/preview3d.py
Cura/gui/simpleMode.py

index 207bf4580a807f84462fbc86dc3ce19f342c202f..fd5ded49b6a1ab5b548ddac8a65d97fa3a1c8899 100644 (file)
@@ -267,7 +267,7 @@ class mainWindow(configBase.configWindowBase):
                                return
                        self.lastPath = os.path.split(self.filename)[0]
                        self.preview3d.loadModelFile(self.filename)
-                       self.preview3d.setViewMode("Model - Normal")
+                       self.preview3d.setViewMode("Normal")
                dlg.Destroy()
        
        def OnSlice(self, e):
index d657d98099cb7bd89c43085ef793a13dee84df02..969ddc77ad8fa46665ad434dfca63c23021cf157 100644 (file)
@@ -51,10 +51,14 @@ class previewPanel(wx.Panel):
                toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Topdown view', callback=self.OnTopClick)\r
                self.toolbar.AddSeparator()\r
 \r
-               self.viewSelect = wx.ComboBox(self.toolbar, -1, 'Model - Normal', choices=['Model - Normal', 'Model - Transparent', 'Model - X-Ray', 'GCode', 'Mixed'], style=wx.CB_DROPDOWN|wx.CB_READONLY)\r
-               self.toolbar.AddControl(self.viewSelect)\r
-               self.viewSelect.Bind(wx.EVT_COMBOBOX, self.OnViewChange)\r
-               self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+               group = []\r
+               self.normalViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Normal model view', callback=self.OnViewChange)\r
+               self.transparentViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Transparent model view', callback=self.OnViewChange)\r
+               self.xrayViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'X-Ray view', callback=self.OnViewChange)\r
+               self.gcodeViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'GCode view', callback=self.OnViewChange)\r
+               self.mixedViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Mixed model/GCode view', callback=self.OnViewChange)\r
+               self.OnViewChange()\r
+               self.toolbar.AddSeparator()\r
 \r
                self.layerSpin = wx.SpinCtrl(self.toolbar, -1, '', size=(21*4,21), style=wx.SP_ARROW_KEYS)\r
                self.toolbar.AddControl(self.layerSpin)\r
@@ -183,8 +187,11 @@ class previewPanel(wx.Panel):
                self.glCanvas.Refresh()\r
        \r
        def setViewMode(self, mode):\r
-               self.viewSelect.SetValue(mode)\r
-               self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+               if mode == "Normal":\r
+                       self.normalViewButton.SetValue(True)\r
+               if mode == "GCode":\r
+                       self.gcodeViewButton.SetValue(True)\r
+               self.glCanvas.viewMode = mode\r
                wx.CallAfter(self.glCanvas.Refresh)\r
        \r
        def loadModelFile(self, filename):\r
@@ -262,8 +269,17 @@ class previewPanel(wx.Panel):
                        self.layerSpin.SetRange(1, len(self.gcode.layerList))\r
                self.toolbar.Realize()\r
        \r
-       def OnViewChange(self, e):\r
-               self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+       def OnViewChange(self):\r
+               if self.normalViewButton.GetValue():\r
+                       self.glCanvas.viewMode = "Normal"\r
+               elif self.transparentViewButton.GetValue():\r
+                       self.glCanvas.viewMode = "Transparent"\r
+               elif self.xrayViewButton.GetValue():\r
+                       self.glCanvas.viewMode = "X-Ray"\r
+               elif self.gcodeViewButton.GetValue():\r
+                       self.glCanvas.viewMode = "GCode"\r
+               elif self.mixedViewButton.GetValue():\r
+                       self.glCanvas.viewMode = "Mixed"\r
                self.glCanvas.Refresh()\r
        \r
        def updateModelTransform(self, f=0):\r
@@ -522,7 +538,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                                glPopMatrix()\r
                                glEndList()\r
                        \r
-                       if self.viewMode == "Model - Transparent" or self.viewMode == "Mixed":\r
+                       if self.viewMode == "Transparent" or self.viewMode == "Mixed":\r
                                glLightfv(GL_LIGHT0, GL_DIFFUSE,  [0.5, 0.4, 0.3, 1.0])\r
                                glLightfv(GL_LIGHT0, GL_AMBIENT,  [0.1, 0.1, 0.1, 0.0])\r
                                #If we want transparent, then first render a solid black model to remove the printer size lines.\r
@@ -539,7 +555,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
                                glBlendFunc(GL_ONE, GL_ONE)\r
                                glEnable(GL_LIGHTING)\r
                                glCallList(self.modelDisplayList)\r
-                       elif self.viewMode == "Model - X-Ray":\r
+                       elif self.viewMode == "X-Ray":\r
                                glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE)\r
                                glDisable(GL_DEPTH_TEST)\r
                                glEnable(GL_STENCIL_TEST);\r
@@ -580,13 +596,13 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
 \r
                                glDisable(GL_STENCIL_TEST);\r
                                glEnable(GL_DEPTH_TEST)\r
-                       elif self.viewMode == "Model - Normal":\r
+                       elif self.viewMode == "Normal":\r
                                glLightfv(GL_LIGHT0, GL_DIFFUSE,  [1.0, 0.8, 0.6, 1.0])\r
                                glLightfv(GL_LIGHT0, GL_AMBIENT,  [0.2, 0.2, 0.2, 0.0])\r
                                glEnable(GL_LIGHTING)\r
                                glCallList(self.modelDisplayList)\r
                        \r
-                       if self.viewMode == "Model - Normal" or self.viewMode == "Model - Transparent" or self.viewMode == "Model - X-Ray":\r
+                       if self.viewMode == "Normal" or self.viewMode == "Transparent" or self.viewMode == "X-Ray":\r
                                glDisable(GL_LIGHTING)\r
                                glDisable(GL_DEPTH_TEST)\r
                                glDisable(GL_BLEND)\r
index 3a59728f662172969442ea0fbaa5f7595acb175d..f49f1e0a41fc8278b666f3aeb544ee512db7d499 100644 (file)
@@ -159,7 +159,7 @@ class simpleModeWindow(configBase.configWindowBase):
                                return
                        self.lastPath = os.path.split(self.filename)[0]
                        self.preview3d.loadModelFile(self.filename)
-                       self.preview3d.setViewMode("Model - Normal")
+                       self.preview3d.setViewMode("Normal")
                dlg.Destroy()
        
        def OnSlice(self, e):