chiark / gitweb /
Add flip/swap buttons to project planner.
authordaid <daid303@gmail.com>
Mon, 14 May 2012 14:11:21 +0000 (16:11 +0200)
committerdaid <daid303@gmail.com>
Mon, 14 May 2012 14:11:21 +0000 (16:11 +0200)
Cura/gui/projectPlanner.py

index ee9e9d23b8a876bb83c2e2c5793bbb14f335788c..ea643b045b525f90ec95bb2e4eda1ff062cfb7cd 100644 (file)
@@ -196,6 +196,17 @@ class projectPlanner(wx.Frame):
                toolbarUtil.NormalButton(self.toolbar2, self.OnAutoPlace, 'autoplace.png', 'Automaticly organize the objects on the platform.')\r
                toolbarUtil.NormalButton(self.toolbar2, self.OnSlice, 'slice.png', 'Slice to project into a gcode file.')\r
                self.toolbar2.Realize()\r
+\r
+               self.toolbar3 = toolbarUtil.Toolbar(self.panel)\r
+               self.mirrorX = toolbarUtil.ToggleButton(self.toolbar3, 'flip_x', 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Mirror X', callback=self.OnMirrorChange)\r
+               self.mirrorY = toolbarUtil.ToggleButton(self.toolbar3, 'flip_y', 'object-mirror-y-on.png', 'object-mirror-y-off.png', 'Mirror Y', callback=self.OnMirrorChange)\r
+               self.mirrorZ = toolbarUtil.ToggleButton(self.toolbar3, 'flip_z', 'object-mirror-z-on.png', 'object-mirror-z-off.png', 'Mirror Z', callback=self.OnMirrorChange)\r
+               self.toolbar3.AddSeparator()\r
+\r
+               # Swap\r
+               self.swapXZ = toolbarUtil.ToggleButton(self.toolbar3, 'swap_xz', 'object-swap-xz-on.png', 'object-swap-xz-off.png', 'Swap XZ', callback=self.OnMirrorChange)\r
+               self.swapYZ = toolbarUtil.ToggleButton(self.toolbar3, 'swap_yz', 'object-swap-yz-on.png', 'object-swap-yz-off.png', 'Swap YZ', callback=self.OnMirrorChange)\r
+               self.toolbar3.Realize()\r
                \r
                sizer = wx.GridBagSizer(2,2)\r
                self.panel.SetSizer(sizer)\r
@@ -210,10 +221,11 @@ class projectPlanner(wx.Frame):
                sizer.Add(self.toolbar2, (0,1), span=(1,2), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)\r
                sizer.Add(self.preview, (1,0), span=(4,1), flag=wx.EXPAND)\r
                sizer.Add(self.listbox, (1,1), span=(1,2), flag=wx.EXPAND)\r
-               sizer.Add(self.addButton, (2,1), span=(1,1))\r
-               sizer.Add(self.remButton, (2,2), span=(1,1))\r
-               sizer.Add(self.sliceButton, (3,1), span=(1,1))\r
-               sizer.Add(self.autoPlaceButton, (3,2), span=(1,1))\r
+               sizer.Add(self.toolbar3, (2,1), span=(1,2), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)\r
+               sizer.Add(self.addButton, (3,1), span=(1,1))\r
+               sizer.Add(self.remButton, (3,2), span=(1,1))\r
+               sizer.Add(self.sliceButton, (4,1), span=(1,1))\r
+               sizer.Add(self.autoPlaceButton, (4,2), span=(1,1))\r
                sizer.AddGrowableCol(0)\r
                sizer.AddGrowableRow(1)\r
                \r
@@ -345,6 +357,13 @@ class projectPlanner(wx.Frame):
                self.rotateCtrl.SetValue(int(self.selection.rotate))\r
                if int(profile.getPreference('extruder_amount')) > 1:\r
                        self.extruderCtrl.SetValue(str(self.selection.extruder+1))\r
+\r
+               self.mirrorX.SetValue(self.selection.flipX)\r
+               self.mirrorY.SetValue(self.selection.flipY)\r
+               self.mirrorZ.SetValue(self.selection.flipZ)\r
+               self.swapXZ.SetValue(self.selection.swapXZ)\r
+               self.swapYZ.SetValue(self.selection.swapYZ)\r
+               \r
                self.preview.Refresh()\r
        \r
        def OnAddModel(self, e):\r
@@ -568,6 +587,17 @@ class projectPlanner(wx.Frame):
                        return\r
                self.selection.extruder = int(self.extruderCtrl.GetValue()) - 1\r
                self.preview.Refresh()\r
+               \r
+       def OnMirrorChange(self):\r
+               if self.selection == None:\r
+                       return\r
+               self.selection.flipX = self.mirrorX.GetValue()\r
+               self.selection.flipY = self.mirrorY.GetValue()\r
+               self.selection.flipZ = self.mirrorZ.GetValue()\r
+               self.selection.swapXZ = self.swapXZ.GetValue()\r
+               self.selection.swapYZ = self.swapYZ.GetValue()\r
+               self.selection.updateModelTransform()\r
+               self.preview.Refresh()\r
 \r
 class PreviewGLCanvas(glcanvas.GLCanvas):\r
        def __init__(self, parent, projectPlannerWindow):\r