printrun-src/printrun/gui/widgets.py

changeset 46
cce0af6351f0
parent 26
5c98c7e24b02
child 48
3c27b4ee6fec
--- a/printrun-src/printrun/gui/widgets.py	Tue Jan 19 20:45:09 2021 +0100
+++ b/printrun-src/printrun/gui/widgets.py	Wed Jan 20 10:15:13 2021 +0100
@@ -120,8 +120,7 @@
                    "UI": _("User interface"),
                    "Viewer": _("Viewer"),
                    "Colors": _("Colors"),
-                   "External": _("External commands"),
-                   "Laser": "Lasercut options"}
+                   "External": _("External commands")}
 
 class PronterOptionsDialog(wx.Dialog):
     """Options editor"""
@@ -131,11 +130,11 @@
         panel = wx.Panel(self)
         header = wx.StaticBox(panel, label = _("Settings"))
         sbox = wx.StaticBoxSizer(header, wx.VERTICAL)
-        notebook = wx.Notebook(panel)
+        self.notebook = notebook = wx.Notebook(panel)
         all_settings = pronterface.settings._all_settings()
         group_list = []
         groups = {}
-        for group in ["Printer", "UI", "Viewer", "Colors", "External", "Laser"]:
+        for group in ["Printer", "UI", "Viewer", "Colors", "External"]:
             group_list.append(group)
             groups[group] = []
         for setting in all_settings:
@@ -162,8 +161,9 @@
                     label.SetFont(font)
                 grid.Add(label, pos = (current_row, 0),
                          flag = wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT)
+                expand = 0 if isinstance(widget, (wx.SpinCtrlDouble, wx.Choice, wx.ComboBox)) else wx.EXPAND
                 grid.Add(widget, pos = (current_row, 1),
-                         flag = wx.ALIGN_CENTER_VERTICAL | wx.EXPAND)
+                         flag = wx.ALIGN_CENTER_VERTICAL | expand)
                 if hasattr(label, "set_default"):
                     label.Bind(wx.EVT_MOUSE_EVENTS, label.set_default)
                     if hasattr(widget, "Bind"):
@@ -175,28 +175,25 @@
         panel.SetSizer(sbox)
         topsizer = wx.BoxSizer(wx.VERTICAL)
         topsizer.Add(panel, 1, wx.ALL | wx.EXPAND)
-        topsizer.Add(self.CreateButtonSizer(wx.OK | wx.CANCEL), 0, wx.ALIGN_RIGHT)
+        topsizer.Add(self.CreateButtonSizer(wx.OK | wx.CANCEL), 0, wx.ALIGN_CENTER)
         self.SetSizerAndFit(topsizer)
         self.SetMinSize(self.GetSize())
 
-        self.notebook = notebook
-        self.group_list = group_list
-
-    def setPage(self, name):
-        self.notebook.ChangeSelection(self.group_list.index(name))
-
-def PronterOptions(pronterface, defaulttab = None):
+notebookSelection = 0
+def PronterOptions(pronterface):
     dialog = PronterOptionsDialog(pronterface)
-    if defaulttab:
-        # set the active tab before open dialog
-        dialog.setPage(defaulttab)
-
+    global notebookSelection
+    dialog.notebook.Selection = notebookSelection
     if dialog.ShowModal() == wx.ID_OK:
+        changed_settings = []
         for setting in pronterface.settings._all_settings():
             old_value = setting.value
             setting.update()
             if setting.value != old_value:
                 pronterface.set(setting.name, setting.value)
+                changed_settings.append(setting)
+        pronterface.on_settings_change(changed_settings)
+    notebookSelection = dialog.notebook.Selection
     dialog.Destroy()
 
 class ButtonEdit(wx.Dialog):
@@ -236,7 +233,7 @@
                 valid = True
             elif macro in self.pronterface.macros:
                 valid = True
-            elif hasattr(self.pronterface.__class__, u"do_" + macro):
+            elif hasattr(self.pronterface.__class__, "do_" + macro):
                 valid = False
             elif len([c for c in macro if not c.isalnum() and c != "_"]):
                 valid = False
@@ -268,7 +265,7 @@
         self.Bind(wx.EVT_PAINT, self.paint)
         self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
         self.bgcolor = wx.Colour()
-        self.bgcolor.SetFromName(bgcolor)
+        self.bgcolor.Set(bgcolor)
         self.width, self.height = size
         self.title = title
         self.max = maxval
@@ -299,17 +296,17 @@
             lo, hi, val, valhi = cmid, cmax, val - vmid, vmax - vmid
         vv = float(val) / valhi
         rgb = lo.Red() + (hi.Red() - lo.Red()) * vv, lo.Green() + (hi.Green() - lo.Green()) * vv, lo.Blue() + (hi.Blue() - lo.Blue()) * vv
-        rgb = map(lambda x: x * 0.8, rgb)
-        return wx.Colour(*map(int, rgb))
+        rgb = (int(x * 0.8) for x in rgb)
+        return wx.Colour(*rgb)
 
     def paint(self, ev):
-        self.width, self.height = self.GetClientSizeTuple()
+        self.width, self.height = self.GetClientSize()
         self.recalc()
         x0, y0, x1, y1, xE, yE = 1, 1, self.ypt + 1, 1, self.width + 1 - 2, 20
         dc = wx.PaintDC(self)
         dc.SetBackground(wx.Brush(self.bgcolor))
         dc.Clear()
-        cold, medium, hot = wx.Colour(0, 167, 223), wx.Colour(239, 233, 119), wx.Colour(210, 50.100)
+        cold, medium, hot = wx.Colour(0, 167, 223), wx.Colour(239, 233, 119), wx.Colour(210, 50, 0)
         # gauge1, gauge2 = wx.Colour(255, 255, 210), (self.gaugeColour or wx.Colour(234, 82, 0))
         gauge1 = wx.Colour(255, 255, 210)
         shadow1, shadow2 = wx.Colour(110, 110, 110), self.bgcolor
@@ -361,7 +358,7 @@
         setp_path.AddLineToPoint(setpoint, yE - 5)
         gc.DrawPath(setp_path)
         # draw readout
-        text = u"T\u00B0 %u/%u" % (self.value, self.setpoint)
+        text = "T\u00B0 %u/%u" % (self.value, self.setpoint)
         # gc.SetFont(gc.CreateFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD), wx.WHITE))
         # gc.DrawText(text, 29,-2)
         gc.SetFont(gc.CreateFont(wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD), wx.WHITE))
@@ -371,7 +368,7 @@
         gc.DrawText(self.title, x0 + 18, y0 + 3)
         gc.DrawText(text, x0 + 118, y0 + 3)
 
-class SpecialButton(object):
+class SpecialButton:
 
     label = None
     command = None

mercurial