Complete pylint(1) fixes for GUI
authorAlexander Vasarab <alexander@wylark.com>
Mon, 29 Jun 2020 20:14:14 +0000 (13:14 -0700)
committerAlexander Vasarab <alexander@wylark.com>
Mon, 29 Jun 2020 20:14:14 +0000 (13:14 -0700)
This largely involved corraling all of the individual, federated Wx item
class members into one super dict. It's cleaner, arguably, but quite
verbose.

munter/gui.py

index 50ee5d5e16b17d4a69e2ee1df25a2e91486eea84..59ff7f676653aeef04ae1675017cdd18a8544f45 100644 (file)
@@ -27,6 +27,13 @@ class MainFrame(wx.Frame):
         self.props = self.init_props()
         self.pnl = wx.Panel(self)
 
+        # wx item vars
+        self.wx_items = dict()
+        self.wx_items['StaticText'] = dict()
+        self.wx_items['TextEntry'] = dict()
+        self.wx_items['RadioButton'] = dict()
+        self.wx_items['ComboBox'] = dict()
+
         # setup the GUI itself
         self.create_wx_items()
         self.establish_wx_bindings()
@@ -55,46 +62,62 @@ class MainFrame(wx.Frame):
         self.program_name.SetFont(font)
 
         # text entry fields
-        self.st_distance = wx.StaticText(self.pnl, label="Distance: ", style=wx.ALIGN_RIGHT)
-        self.te_distance = wx.TextCtrl(self.pnl, value="0", size=(140, -1))
-
-        self.st_elevation = wx.StaticText(self.pnl, label="Elevation: ", style=wx.ALIGN_RIGHT)
-        self.te_elevation = wx.TextCtrl(self.pnl, value="0", size=(140, -1))
-
-        self.st_fitness = wx.StaticText(self.pnl, label="Fitness: ", style=wx.ALIGN_RIGHT)
+        self.wx_items['StaticText']['distance'] = wx.StaticText(self.pnl,
+                                                                label="Distance: ",
+                                                                style=wx.ALIGN_RIGHT)
+        self.wx_items['TextEntry']['distance'] = wx.TextCtrl(self.pnl,
+                                                             value="0",
+                                                             size=(140, -1))
+
+        self.wx_items['StaticText']['elevation'] = wx.StaticText(self.pnl,
+                                                                 label="Elevation: ",
+                                                                 style=wx.ALIGN_RIGHT)
+        self.wx_items['TextEntry']['elevation'] = wx.TextCtrl(self.pnl,
+                                                              value="0",
+                                                              size=(140, -1))
+
+        self.wx_items['StaticText']['fitness'] = wx.StaticText(self.pnl,
+                                                               label="Fitness: ",
+                                                               style=wx.ALIGN_RIGHT)
         rb_fitness_choices = ['slow', 'average', 'fast']
         rb_fitness_default = 'average'
-        self.rb_fitness = wx.ComboBox(self.pnl, choices=rb_fitness_choices,
-                                      value=rb_fitness_default,
-                                      style=wx.CB_READONLY)
-
-        self.st_travel_mode = wx.StaticText(self.pnl,
-                                            label="Travel Mode: ",
-                                            style=wx.ALIGN_RIGHT)
+        self.wx_items['RadioButton']['fitness'] = wx.ComboBox(self.pnl,
+                                                              choices=rb_fitness_choices,
+                                                              value=rb_fitness_default,
+                                                              style=wx.CB_READONLY)
+
+        self.wx_items['StaticText']['travel_mode'] = wx.StaticText(self.pnl,
+                                                                   label="Travel Mode: ",
+                                                                   style=wx.ALIGN_RIGHT)
         rb_travel_mode_choices = ['uphill', 'flat', 'downhill', 'bushwhacking']
         rb_travel_mode_default = 'uphill'
-        self.rb_travel_mode = wx.ComboBox(self.pnl,
-                                          choices=rb_travel_mode_choices,
-                                          value=rb_travel_mode_default,
-                                          style=wx.CB_READONLY)
-
-        self.st_units = wx.StaticText(self.pnl, label="Units: ", style=wx.ALIGN_RIGHT)
+        self.wx_items['RadioButton']['travel_mode'] = wx.ComboBox(self.pnl,
+                                                                  choices=rb_travel_mode_choices,
+                                                                  value=rb_travel_mode_default,
+                                                                  style=wx.CB_READONLY)
+
+        self.wx_items['StaticText']['units'] = wx.StaticText(self.pnl,
+                                                             label="Units: ",
+                                                             style=wx.ALIGN_RIGHT)
         rb_units_choices = ['imperial', 'metric']
         rb_units_default = 'imperial'
 
-        self.rb_units = []
+        self.wx_items['RadioButton']['units'] = []
         for choice in rb_units_choices:
             label = choice
             style = wx.RB_GROUP if choice == rb_units_default else 0
-            self.rb_units.append(wx.RadioButton(self.pnl, label=label, style=style))
+            self.wx_items['RadioButton']['units'].append(wx.RadioButton(self.pnl,
+                                                                        label=label,
+                                                                        style=style))
 
         # static text
-        self.st_mtc = wx.StaticText(self.pnl, label="",
-                                    style=wx.ALIGN_CENTRE_HORIZONTAL)
+        self.wx_items['StaticText']['mtc'] = wx.StaticText(self.pnl,
+                                                           label="",
+                                                           style=wx.ALIGN_CENTRE_HORIZONTAL)
 
         st_mtc_font = self.program_name.GetFont()
         st_mtc_font.PointSize += 10
-        self.st_mtc.SetFont(st_mtc_font)
+        self.wx_items['StaticText']['mtc'].SetFont(st_mtc_font)
 
         # buttons
         self.b_reset = wx.Button(self.pnl, wx.NewId(), '&Reset', (-1, -1),
@@ -102,13 +125,13 @@ class MainFrame(wx.Frame):
 
     def establish_wx_bindings(self):
         """establish wxPython bindings"""
-        self.pnl.Bind(wx.EVT_TEXT, self.update_distance, self.te_distance)
-        self.pnl.Bind(wx.EVT_TEXT, self.update_elevation, self.te_elevation)
-        self.rb_fitness.Bind(wx.EVT_COMBOBOX, self.update_fitness)
-        self.rb_travel_mode.Bind(wx.EVT_COMBOBOX, self.update_travel_mode)
+        self.pnl.Bind(wx.EVT_TEXT, self.update_distance, self.wx_items['TextEntry']['distance'])
+        self.pnl.Bind(wx.EVT_TEXT, self.update_elevation, self.wx_items['TextEntry']['elevation'])
+        self.wx_items['RadioButton']['fitness'].Bind(wx.EVT_COMBOBOX, self.update_fitness)
+        self.wx_items['RadioButton']['travel_mode'].Bind(wx.EVT_COMBOBOX, self.update_travel_mode)
         self.b_reset.Bind(wx.EVT_BUTTON, self.reset)
 
-        for rb_unit in self.rb_units:
+        for rb_unit in self.wx_items['RadioButton']['units']:
             rb_unit.Bind(wx.EVT_RADIOBUTTON, self.update_units)
 
     def do_wx_layout(self):
@@ -122,34 +145,37 @@ class MainFrame(wx.Frame):
         static_line = wx.StaticLine(self.pnl, wx.NewId(), style=wx.LI_HORIZONTAL)
 
         hsizer_distance = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_distance.Add(self.st_distance, 0, wx.RIGHT, border)
-        hsizer_distance.Add(self.te_distance, 1, wx.GROW, border)
-        hsizer_distance.SetItemMinSize(self.st_distance, (width, -1))
+        hsizer_distance.Add(self.wx_items['StaticText']['distance'], 0, wx.RIGHT, border)
+        hsizer_distance.Add(self.wx_items['TextEntry']['distance'], 1, wx.GROW, border)
+        hsizer_distance.SetItemMinSize(self.wx_items['StaticText']['distance'], (width, -1))
 
         hsizer_elevation = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_elevation.Add(self.st_elevation, 0, wx.RIGHT, border)
-        hsizer_elevation.Add(self.te_elevation, 1, wx.GROW, border)
-        hsizer_elevation.SetItemMinSize(self.st_elevation, (width, -1))
+        hsizer_elevation.Add(self.wx_items['StaticText']['elevation'], 0, wx.RIGHT, border)
+        hsizer_elevation.Add(self.wx_items['TextEntry']['elevation'], 1, wx.GROW, border)
+        hsizer_elevation.SetItemMinSize(self.wx_items['StaticText']['elevation'], (width, -1))
 
         hsizer_fitness = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_fitness.Add(self.st_fitness, 0, wx.RIGHT, border)
-        hsizer_fitness.Add(self.rb_fitness, 1, wx.GROW, border)
-        hsizer_fitness.SetItemMinSize(self.st_fitness, (width, -1))
+        hsizer_fitness.Add(self.wx_items['StaticText']['fitness'], 0, wx.RIGHT, border)
+        hsizer_fitness.Add(self.wx_items['RadioButton']['fitness'], 1, wx.GROW, border)
+        hsizer_fitness.SetItemMinSize(self.wx_items['StaticText']['fitness'], (width, -1))
 
         hsizer_travel_mode = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_travel_mode.Add(self.st_travel_mode, 0, wx.RIGHT, border)
-        hsizer_travel_mode.Add(self.rb_travel_mode, 1, wx.GROW, border)
-        hsizer_travel_mode.SetItemMinSize(self.st_travel_mode, (width, -1))
+        hsizer_travel_mode.Add(self.wx_items['StaticText']['travel_mode'], 0, wx.RIGHT, border)
+        hsizer_travel_mode.Add(self.wx_items['RadioButton']['travel_mode'], 1, wx.GROW, border)
+        hsizer_travel_mode.SetItemMinSize(self.wx_items['StaticText']['travel_mode'], (width, -1))
 
         hsizer_units = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_units.Add(self.st_units, 0, wx.RIGHT, border)
-        for rb_unit in range(len(self.rb_units)):
-            hsizer_units.Add(self.rb_units[rb_unit], rb_unit + 1, wx.GROW, border)
-        hsizer_units.SetItemMinSize(self.st_units, (width, -1))
+        hsizer_units.Add(self.wx_items['StaticText']['units'], 0, wx.RIGHT, border)
+        for rb_unit in range(len(self.wx_items['RadioButton']['units'])):
+            hsizer_units.Add(self.wx_items['RadioButton']['units'][rb_unit],
+                             rb_unit + 1,
+                             wx.GROW,
+                             border)
+        hsizer_units.SetItemMinSize(self.wx_items['StaticText']['units'], (width, -1))
 
         hsizer_mtc = wx.BoxSizer(wx.HORIZONTAL)
-        hsizer_mtc.Add(self.st_mtc, 1, wx.GROW, border)
-        hsizer_mtc.SetItemMinSize(self.st_mtc, (width, -1))
+        hsizer_mtc.Add(self.wx_items['StaticText']['mtc'], 1, wx.GROW, border)
+        hsizer_mtc.SetItemMinSize(self.wx_items['StaticText']['mtc'], (width, -1))
 
         hsizer5 = wx.BoxSizer(wx.HORIZONTAL)
         hsizer5.Add(self.b_reset, 0)
@@ -178,7 +204,7 @@ class MainFrame(wx.Frame):
                 self.props['distance'] = new_val
             except ValueError:
                 # reset GUI to last-accepted val
-                self.te_distance.SetValue(str(self.props['distance']))
+                self.wx_items['TextEntry']['distance'].SetValue(str(self.props['distance']))
         self.update_mtc()
 
     def update_elevation(self, event):
@@ -190,7 +216,7 @@ class MainFrame(wx.Frame):
                 self.props['elevation'] = new_val
             except ValueError:
                 # reset GUI to last-accepted val
-                self.te_elevation.SetValue(str(self.props['elevation']))
+                self.wx_items['TextEntry']['elevation'].SetValue(str(self.props['elevation']))
         self.update_mtc()
 
     def update_fitness(self, event):
@@ -218,10 +244,10 @@ class MainFrame(wx.Frame):
         """resets all values"""
         event.GetTimestamp()
         self.props = self.init_props()
-        self.te_distance.SetValue(str(self.props['distance']))
-        self.te_elevation.SetValue(str(self.props['elevation']))
-        self.rb_fitness.SetValue(str(self.props['fitness']))
-        self.rb_travel_mode.SetValue(str(self.props['travel_mode']))
+        self.wx_items['TextEntry']['distance'].SetValue(str(self.props['distance']))
+        self.wx_items['TextEntry']['elevation'].SetValue(str(self.props['elevation']))
+        self.wx_items['RadioButton']['fitness'].SetValue(str(self.props['fitness']))
+        self.wx_items['RadioButton']['travel_mode'].SetValue(str(self.props['travel_mode']))
         # leave units as the user selected
         self.update_mtc()
 
@@ -239,7 +265,7 @@ class MainFrame(wx.Frame):
 
         hours = int(est['time'])
         minutes = int((est['time'] - hours) * 60)
-        self.st_mtc.SetLabel("{human_time}".format(
+        self.wx_items['StaticText']['mtc'].SetLabel("{human_time}".format(
             human_time="{hours} hours {minutes} minutes".format(
                 hours=hours,
                 minutes=minutes)))