1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-14 08:17:13 +03:00

Tidy plugin widget creation.

So that widgets are created in logical tab-traversal order.
This commit is contained in:
Jonathan Harris 2016-01-09 13:21:48 +00:00
parent c8e7d42b00
commit 4e9f875567
2 changed files with 17 additions and 28 deletions

View File

@ -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('<Return>', self.getandsend)
self.w.bind('<KP_Enter>', 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('<Return>', self.getandsend)
self.w.bind('<KP_Enter>', self.getandsend)
for child in frame.winfo_children():
child.grid_configure(padx=5, pady=(platform=='darwin' and 3 or 2))

View File

@ -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()