From 4e9f87556777fa75cb62c564c963da8d13a8ed1c Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Sat, 9 Jan 2016 13:21:48 +0000 Subject: [PATCH] Tidy plugin widget creation. So that widgets are created in logical tab-traversal order. --- EDMarketConnector.py | 33 ++++++++++++--------------------- prefs.py | 12 +++++------- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index c7c177f5..b11bf69f 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -87,41 +87,32 @@ class AppWindow: frame = ttk.Frame(self.w, name=appname.lower()) frame.grid(sticky=tk.NSEW) - rows = 4 - plugin_items = list() - for plugname in plug.PLUGINS: - appitem = plug.get_plugin_app(plugname, frame) - if appitem: - plugin_items.append(appitem) - - rows += len(plugin_items) - frame.columnconfigure(1, weight=1) - frame.rowconfigure(rows, weight=1) ttk.Label(frame, text=_('Cmdr')+':').grid(row=0, column=0, sticky=tk.W) # Main window ttk.Label(frame, text=_('System')+':').grid(row=1, column=0, sticky=tk.W) # Main window ttk.Label(frame, text=_('Station')+':').grid(row=2, column=0, sticky=tk.W) # Main window - nextrow = 3 - for plugin_item in plugin_items: - plugin_item.grid(row=nextrow, column=0, sticky=tk.W) - nextrow += 1 - self.cmdr = ttk.Label(frame, width=-21) self.system = HyperlinkLabel(frame, compound=tk.RIGHT, url = self.system_url, popup_copy = True) self.station = HyperlinkLabel(frame, url = self.station_url, popup_copy = lambda x: x!=self.STATION_UNDOCKED) - self.button = ttk.Button(frame, name='update', text=_('Update'), command=self.getandsend, default=tk.ACTIVE, state=tk.DISABLED) # Update button in main window - self.status = ttk.Label(frame, name='status', width=-25) - self.w.bind('', self.getandsend) - self.w.bind('', self.getandsend) self.cmdr.grid(row=0, column=1, sticky=tk.EW) self.system.grid(row=1, column=1, sticky=tk.EW) self.station.grid(row=2, column=1, sticky=tk.EW) - self.button.grid(row=nextrow + 1, column=0, columnspan=2, sticky=tk.NSEW) - self.status.grid(row=nextrow + 2, column=0, columnspan=2, sticky=tk.EW) + for plugname in plug.PLUGINS: + appitem = plug.get_plugin_app(plugname, frame) + if appitem: + appitem.grid(columnspan=2, sticky=tk.W) + + self.button = ttk.Button(frame, name='update', text=_('Update'), command=self.getandsend, default=tk.ACTIVE, state=tk.DISABLED) # Update button in main window + self.status = ttk.Label(frame, name='status', width=-25) + self.button.grid(columnspan=2, sticky=tk.NSEW) + self.status.grid(columnspan=2, sticky=tk.EW) + + self.w.bind('', self.getandsend) + self.w.bind('', self.getandsend) for child in frame.winfo_children(): child.grid_configure(padx=5, pady=(platform=='darwin' and 3 or 2)) diff --git a/prefs.py b/prefs.py index e5e3c7e4..e301e053 100644 --- a/prefs.py +++ b/prefs.py @@ -218,7 +218,11 @@ class PreferencesDialog(tk.Toplevel): _('Keyboard shortcut') or # Tab heading in settings on OSX _('Hotkey')) # Tab heading in settings on Windows - + # build plugin prefs tabs + for plugname in plug.PLUGINS: + plugframe = plug.get_plugin_pref(plugname, notebook) + if plugframe: + notebook.add(plugframe, text=plugname) if platform=='darwin': self.protocol("WM_DELETE_WINDOW", self.apply) # close button applies changes @@ -238,12 +242,6 @@ class PreferencesDialog(tk.Toplevel): # disable hotkey for the duration hotkeymgr.unregister() - # build plugin prefs tabs - for plugname in plug.PLUGINS: - plugframe = plug.get_plugin_pref(plugname, notebook) - if plugframe: - notebook.add(plugframe, text=plugname) - # wait for window to appear on screen before calling grab_set self.wait_visibility() self.grab_set()