mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-01 08:01:22 +03:00
refactored logic
This commit is contained in:
parent
f9f6907a2c
commit
fc431e457d
94
prefs.py
94
prefs.py
@ -8,7 +8,7 @@ from os.path import exists, expanduser, expandvars, join, normpath
|
|||||||
from sys import platform
|
from sys import platform
|
||||||
from tkinter import colorchooser as tkColorChooser # type: ignore
|
from tkinter import colorchooser as tkColorChooser # type: ignore
|
||||||
from tkinter import ttk
|
from tkinter import ttk
|
||||||
from typing import TYPE_CHECKING, Any, Callable, Optional
|
from typing import TYPE_CHECKING, Any, Callable, Optional, Union
|
||||||
|
|
||||||
import myNotebook as nb
|
import myNotebook as nb
|
||||||
import plug
|
import plug
|
||||||
@ -202,17 +202,19 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
"""The EDMC preferences dialog."""
|
"""The EDMC preferences dialog."""
|
||||||
|
|
||||||
def __init__(self, parent: tk.Tk, callback: Optional[Callable]):
|
def __init__(self, parent: tk.Tk, callback: Optional[Callable]):
|
||||||
|
# TODO: Ive read books shorter than this method.
|
||||||
tk.Toplevel.__init__(self, parent)
|
tk.Toplevel.__init__(self, parent)
|
||||||
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.title(platform == 'darwin' and _('Preferences') or _('Settings'))
|
self.title(_('Preferences') if platform == 'darwin' else _('Settings'))
|
||||||
|
|
||||||
if parent.winfo_viewable():
|
if parent.winfo_viewable():
|
||||||
self.transient(parent)
|
self.transient(parent)
|
||||||
|
|
||||||
# position over parent
|
# position over parent
|
||||||
if platform != 'darwin' or parent.winfo_rooty() > 0: # http://core.tcl.tk/tk/tktview/c84f660833546b1b84e7
|
if platform != 'darwin' or parent.winfo_rooty() > 0: # http://core.tcl.tk/tk/tktview/c84f660833546b1b84e7
|
||||||
|
# TODO this is fixed supposedly.
|
||||||
self.geometry(f'+{parent.winfo_rootx()}+{parent.winfo_rooty()}')
|
self.geometry(f'+{parent.winfo_rootx()}+{parent.winfo_rooty()}')
|
||||||
|
|
||||||
# remove decoration
|
# remove decoration
|
||||||
@ -225,8 +227,8 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
self.resizable(tk.FALSE, tk.FALSE)
|
self.resizable(tk.FALSE, tk.FALSE)
|
||||||
|
|
||||||
self.cmdr = False # Note if Cmdr changes in the Journal
|
self.cmdr: Union[str, bool, None] = False # Note if Cmdr changes in the Journal
|
||||||
self.is_beta = False # Note if Beta status changes in the Journal
|
self.is_beta: bool = False # Note if Beta status changes in the Journal
|
||||||
self.cmdrchanged_alarm: Optional[str] = None # This stores an ID that can be used to cancel a scheduled call
|
self.cmdrchanged_alarm: Optional[str] = None # This stores an ID that can be used to cancel a scheduled call
|
||||||
|
|
||||||
frame = ttk.Frame(self)
|
frame = ttk.Frame(self)
|
||||||
@ -253,7 +255,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
# the middle without worrying about updating `row=X` elements.
|
# the middle without worrying about updating `row=X` elements.
|
||||||
self.out_label = nb.Label(outframe, text=_('Please choose what data to save'))
|
self.out_label = nb.Label(outframe, text=_('Please choose what data to save'))
|
||||||
self.out_label.grid(columnspan=2, padx=PADX, sticky=tk.W)
|
self.out_label.grid(columnspan=2, padx=PADX, sticky=tk.W)
|
||||||
self.out_csv = tk.IntVar(value=(output & config.OUT_MKT_CSV) and 1)
|
self.out_csv = tk.IntVar(value=1 if (output & config.OUT_MKT_CSV) else 0)
|
||||||
self.out_csv_button = nb.Checkbutton(
|
self.out_csv_button = nb.Checkbutton(
|
||||||
outframe,
|
outframe,
|
||||||
text=_('Market data in CSV format file'),
|
text=_('Market data in CSV format file'),
|
||||||
@ -262,7 +264,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.out_csv_button.grid(columnspan=2, padx=BUTTONX, sticky=tk.W)
|
self.out_csv_button.grid(columnspan=2, padx=BUTTONX, sticky=tk.W)
|
||||||
self.out_td = tk.IntVar(value=(output & config.OUT_MKT_TD) and 1)
|
self.out_td = tk.IntVar(value=1 if (output & config.OUT_MKT_TD) else 0)
|
||||||
self.out_td_button = nb.Checkbutton(
|
self.out_td_button = nb.Checkbutton(
|
||||||
outframe,
|
outframe,
|
||||||
text=_('Market data in Trade Dangerous format file'),
|
text=_('Market data in Trade Dangerous format file'),
|
||||||
@ -271,7 +273,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.out_td_button.grid(columnspan=2, padx=BUTTONX, sticky=tk.W)
|
self.out_td_button.grid(columnspan=2, padx=BUTTONX, sticky=tk.W)
|
||||||
self.out_ship = tk.IntVar(value=(output & config.OUT_SHIP and 1))
|
self.out_ship = tk.IntVar(value=1 if (output & config.OUT_SHIP) else 0)
|
||||||
|
|
||||||
# Output setting
|
# Output setting
|
||||||
self.out_ship_button = nb.Checkbutton(
|
self.out_ship_button = nb.Checkbutton(
|
||||||
@ -301,7 +303,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.outdir_entry.grid(columnspan=2, padx=PADX, pady=(0, PADY), sticky=tk.EW)
|
self.outdir_entry.grid(columnspan=2, padx=PADX, pady=(0, PADY), sticky=tk.EW)
|
||||||
self.outbutton = nb.Button(
|
self.outbutton = nb.Button(
|
||||||
outframe,
|
outframe,
|
||||||
text=(platform == 'darwin' and _('Change...') or _('Browse...')),
|
text=(_('Change...') if platform == 'darwin' else _('Browse...')),
|
||||||
command=lambda: self.filebrowse(_('File location'), self.outdir)
|
command=lambda: self.filebrowse(_('File location'), self.outdir)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -332,7 +334,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.logdir_entry.grid(columnspan=4, padx=PADX, pady=(0, PADY), sticky=tk.EW)
|
self.logdir_entry.grid(columnspan=4, padx=PADX, pady=(0, PADY), sticky=tk.EW)
|
||||||
self.logbutton = nb.Button(
|
self.logbutton = nb.Button(
|
||||||
configframe,
|
configframe,
|
||||||
text=(platform == 'darwin' and _('Change...') or _('Browse...')),
|
text=(_('Change...') if platform == 'darwin' else _('Browse...')),
|
||||||
command=lambda: self.filebrowse(_('E:D journal file location'), self.logdir)
|
command=lambda: self.filebrowse(_('E:D journal file location'), self.logdir)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -343,7 +345,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
configframe,
|
configframe,
|
||||||
text=_('Default'),
|
text=_('Default'),
|
||||||
command=self.logdir_reset,
|
command=self.logdir_reset,
|
||||||
state=config.get('journaldir') and tk.NORMAL or tk.DISABLED
|
state=tk.NORMAL if config.get('journaldir') else tk.DISABLED
|
||||||
).grid(row=10, column=2, pady=PADY, sticky=tk.EW)
|
).grid(row=10, column=2, pady=PADY, sticky=tk.EW)
|
||||||
|
|
||||||
if platform in ['darwin', 'win32']:
|
if platform in ['darwin', 'win32']:
|
||||||
@ -352,10 +354,12 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.hotkey_mods = config.getint('hotkey_mods')
|
self.hotkey_mods = config.getint('hotkey_mods')
|
||||||
self.hotkey_only = tk.IntVar(value=not config.getint('hotkey_always'))
|
self.hotkey_only = tk.IntVar(value=not config.getint('hotkey_always'))
|
||||||
self.hotkey_play = tk.IntVar(value=not config.getint('hotkey_mute'))
|
self.hotkey_play = tk.IntVar(value=not config.getint('hotkey_mute'))
|
||||||
nb.Label(configframe, text=platform == 'darwin' and
|
nb.Label(
|
||||||
_('Keyboard shortcut') or # Hotkey/Shortcut settings prompt on OSX
|
configframe,
|
||||||
_('Hotkey') # Hotkey/Shortcut settings prompt on Windows
|
text=_('Keyboard shortcut') if # Hotkey/Shortcut settings prompt on OSX
|
||||||
).grid(row=20, padx=PADX, sticky=tk.W)
|
platform == 'darwin' else
|
||||||
|
_('Hotkey') # Hotkey/Shortcut settings prompt on Windows
|
||||||
|
).grid(row=20, padx=PADX, sticky=tk.W)
|
||||||
|
|
||||||
if platform == 'darwin' and not was_accessible_at_launch:
|
if platform == 'darwin' and not was_accessible_at_launch:
|
||||||
if AXIsProcessTrusted():
|
if AXIsProcessTrusted():
|
||||||
@ -376,13 +380,12 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
padx=PADX, sticky=tk.E) # Shortcut settings button on OSX
|
padx=PADX, sticky=tk.E) # Shortcut settings button on OSX
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.hotkey_text = nb.Entry(configframe, width=(platform == 'darwin' and 20 or 30), justify=tk.CENTER)
|
self.hotkey_text = nb.Entry(configframe, width=(20 if platform == 'darwin' else 30), justify=tk.CENTER)
|
||||||
self.hotkey_text.insert(
|
self.hotkey_text.insert(
|
||||||
0,
|
0,
|
||||||
# No hotkey/shortcut currently defined
|
# No hotkey/shortcut currently defined
|
||||||
self.hotkey_code and hotkeymgr.display( # type: ignore # Only shows up on darwin or windows
|
# TODO: display Only shows up on darwin or windows
|
||||||
self.hotkey_code, self.hotkey_mods
|
hotkeymgr.display(self.hotkey_code, self.hotkey_mods) if self.hotkey_code else _('None')
|
||||||
) or _('None')
|
|
||||||
)
|
)
|
||||||
|
|
||||||
self.hotkey_text.bind('<FocusIn>', self.hotkeystart)
|
self.hotkey_text.bind('<FocusIn>', self.hotkeystart)
|
||||||
@ -394,7 +397,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
configframe,
|
configframe,
|
||||||
text=_('Only when Elite: Dangerous is the active app'),
|
text=_('Only when Elite: Dangerous is the active app'),
|
||||||
variable=self.hotkey_only,
|
variable=self.hotkey_only,
|
||||||
state=self.hotkey_code and tk.NORMAL or tk.DISABLED
|
state=tk.NORMAL if self.hotkey_code else tk.DISABLED
|
||||||
)
|
)
|
||||||
|
|
||||||
self.hotkey_only_btn.grid(columnspan=4, padx=PADX, pady=(5, 0), sticky=tk.W)
|
self.hotkey_only_btn.grid(columnspan=4, padx=PADX, pady=(5, 0), sticky=tk.W)
|
||||||
@ -404,7 +407,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
configframe,
|
configframe,
|
||||||
text=_('Play sound'),
|
text=_('Play sound'),
|
||||||
variable=self.hotkey_play,
|
variable=self.hotkey_play,
|
||||||
state=self.hotkey_code and tk.NORMAL or tk.DISABLED
|
state=tk.NORMAL if self.hotkey_code else tk.DISABLED
|
||||||
)
|
)
|
||||||
|
|
||||||
self.hotkey_play_btn.grid(columnspan=4, padx=PADX, sticky=tk.W)
|
self.hotkey_play_btn.grid(columnspan=4, padx=PADX, sticky=tk.W)
|
||||||
@ -449,9 +452,9 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
self.alt_shipyard_open_btn.grid(row=31, column=2, sticky=tk.W)
|
self.alt_shipyard_open_btn.grid(row=31, column=2, sticky=tk.W)
|
||||||
|
|
||||||
|
system_provider = config.get('system_provider')
|
||||||
self.system_provider = tk.StringVar(
|
self.system_provider = tk.StringVar(
|
||||||
value=str(config.get('system_provider') in plug.provides('system_url')
|
value=str(system_provider if system_provider in plug.provides('system_url') else 'EDSM')
|
||||||
and config.get('system_provider') or 'EDSM')
|
|
||||||
)
|
)
|
||||||
|
|
||||||
nb.Label(configframe, text=_('System')).grid(row=32, padx=PADX, pady=2*PADY, sticky=tk.W)
|
nb.Label(configframe, text=_('System')).grid(row=32, padx=PADX, pady=2*PADY, sticky=tk.W)
|
||||||
@ -465,9 +468,9 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.system_button.configure(width=15)
|
self.system_button.configure(width=15)
|
||||||
self.system_button.grid(row=32, column=1, sticky=tk.W)
|
self.system_button.grid(row=32, column=1, sticky=tk.W)
|
||||||
|
|
||||||
|
station_provider = config.get('station_provider')
|
||||||
self.station_provider = tk.StringVar(
|
self.station_provider = tk.StringVar(
|
||||||
value=str(config.get('station_provider') in plug.provides('station_url')
|
value=str(station_provider if station_provider in plug.provides('station_url') else 'eddb')
|
||||||
and config.get('station_provider') or 'eddb')
|
|
||||||
)
|
)
|
||||||
|
|
||||||
nb.Label(configframe, text=_('Station')).grid(row=33, padx=PADX, pady=2*PADY, sticky=tk.W)
|
nb.Label(configframe, text=_('Station')).grid(row=33, padx=PADX, pady=2*PADY, sticky=tk.W)
|
||||||
@ -494,11 +497,9 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
if not current_loglevel:
|
if not current_loglevel:
|
||||||
current_loglevel = logging.getLevelName(logging.INFO)
|
current_loglevel = logging.getLevelName(logging.INFO)
|
||||||
self.select_loglevel = tk.StringVar(value=str(current_loglevel))
|
self.select_loglevel = tk.StringVar(value=str(current_loglevel))
|
||||||
loglevels = [
|
loglevels = list(
|
||||||
logging.getLevelName(level) for level in (
|
map(logging.getLevelName, (logging.CRITICAL, logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG))
|
||||||
logging.CRITICAL, logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG
|
)
|
||||||
)
|
|
||||||
]
|
|
||||||
|
|
||||||
self.loglevel_dropdown = nb.OptionMenu(
|
self.loglevel_dropdown = nb.OptionMenu(
|
||||||
configframe,
|
configframe,
|
||||||
@ -635,7 +636,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
text=_("Tip: You can disable a plugin by{CR}adding '{EXT}' to its folder name").format(EXT='.disabled')
|
text=_("Tip: You can disable a plugin by{CR}adding '{EXT}' to its folder name").format(EXT='.disabled')
|
||||||
).grid(columnspan=2, padx=PADX, pady=10, sticky=tk.NSEW)
|
).grid(columnspan=2, padx=PADX, pady=10, sticky=tk.NSEW)
|
||||||
|
|
||||||
enabled_plugins = [x for x in plug.PLUGINS if x.folder and x.module]
|
enabled_plugins = list(filter(lambda x: x.folder and x.module, plug.PLUGINS))
|
||||||
if len(enabled_plugins):
|
if len(enabled_plugins):
|
||||||
ttk.Separator(plugsframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY * 8, sticky=tk.EW)
|
ttk.Separator(plugsframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY * 8, sticky=tk.EW)
|
||||||
nb.Label(
|
nb.Label(
|
||||||
@ -649,6 +650,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
label = nb.Label(plugsframe, text=f'{plugin.folder} ({plugin.name})')
|
label = nb.Label(plugsframe, text=f'{plugin.folder} ({plugin.name})')
|
||||||
|
|
||||||
label.grid(columnspan=2, padx=PADX*2, sticky=tk.W)
|
label.grid(columnspan=2, padx=PADX*2, sticky=tk.W)
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
@ -670,7 +672,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
).grid(columnspan=2, padx=PADX, sticky=tk.W)
|
).grid(columnspan=2, padx=PADX, sticky=tk.W)
|
||||||
############################################################
|
############################################################
|
||||||
|
|
||||||
disabled_plugins = [x for x in plug.PLUGINS if x.folder and not x.module]
|
disabled_plugins = list(filter(lambda x: x.folder and not x.module, plug.PLUGINS))
|
||||||
if len(disabled_plugins):
|
if len(disabled_plugins):
|
||||||
ttk.Separator(plugsframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY * 8, sticky=tk.EW)
|
ttk.Separator(plugsframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY * 8, sticky=tk.EW)
|
||||||
nb.Label(
|
nb.Label(
|
||||||
@ -753,18 +755,18 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.displaypath(self.logdir, self.logdir_entry)
|
self.displaypath(self.logdir, self.logdir_entry)
|
||||||
|
|
||||||
logdir = self.logdir.get()
|
logdir = self.logdir.get()
|
||||||
logvalid = logdir and exists(logdir)
|
logvalid = exists(logdir) if logdir else False
|
||||||
|
|
||||||
self.out_label['state'] = tk.NORMAL
|
self.out_label['state'] = tk.NORMAL
|
||||||
self.out_csv_button['state'] = tk.NORMAL
|
self.out_csv_button['state'] = tk.NORMAL
|
||||||
self.out_td_button['state'] = tk.NORMAL
|
self.out_td_button['state'] = tk.NORMAL
|
||||||
self.out_ship_button['state'] = tk.NORMAL
|
self.out_ship_button['state'] = tk.NORMAL
|
||||||
|
|
||||||
local = self.out_td.get() or self.out_csv.get() or self.out_ship.get()
|
local = any((self.out_td.get(), self.out_csv.get(), self.out_ship.get()))
|
||||||
self.out_auto_button['state'] = local and logvalid and tk.NORMAL or tk.DISABLED
|
self.out_auto_button['state'] = tk.NORMAL if local and logvalid else tk.DISABLED
|
||||||
self.outdir_label['state'] = local and tk.NORMAL or tk.DISABLED
|
self.outdir_label['state'] = tk.NORMAL if local else tk.DISABLED
|
||||||
self.outbutton['state'] = local and tk.NORMAL or tk.DISABLED
|
self.outbutton['state'] = tk.NORMAL if local else tk.DISABLED
|
||||||
self.outdir_entry['state'] = local and 'readonly' or tk.DISABLED
|
self.outdir_entry['state'] = tk.NORMAL if local else tk.DISABLED
|
||||||
|
|
||||||
def filebrowse(self, title, pathvar):
|
def filebrowse(self, title, pathvar):
|
||||||
"""
|
"""
|
||||||
@ -774,7 +776,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
:param pathvar: the path to start the dialog on
|
:param pathvar: the path to start the dialog on
|
||||||
"""
|
"""
|
||||||
import tkinter.filedialog
|
import tkinter.filedialog
|
||||||
d = tkinter.filedialog.askdirectory(
|
directory = tkinter.filedialog.askdirectory(
|
||||||
parent=self,
|
parent=self,
|
||||||
initialdir=expanduser(pathvar.get()),
|
initialdir=expanduser(pathvar.get()),
|
||||||
title=title,
|
title=title,
|
||||||
@ -796,7 +798,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
entryfield['state'] = tk.NORMAL # must be writable to update
|
entryfield['state'] = tk.NORMAL # must be writable to update
|
||||||
entryfield.delete(0, tk.END)
|
entryfield.delete(0, tk.END)
|
||||||
if platform == 'win32':
|
if platform == 'win32':
|
||||||
start = pathvar.get().lower().startswith(config.home.lower()) and len(config.home.split('\\')) or 0
|
start = len(config.home.split('\\')) if pathvar.get().lower().startswith(config.home.lower()) else 0
|
||||||
display = []
|
display = []
|
||||||
components = normpath(pathvar.get()).split('\\')
|
components = normpath(pathvar.get()).split('\\')
|
||||||
buf = ctypes.create_unicode_buffer(MAX_PATH)
|
buf = ctypes.create_unicode_buffer(MAX_PATH)
|
||||||
@ -869,7 +871,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
"""Update theme examples."""
|
"""Update theme examples."""
|
||||||
self.theme_button_0['foreground'], self.theme_button_1['foreground'] = self.theme_colors
|
self.theme_button_0['foreground'], self.theme_button_1['foreground'] = self.theme_colors
|
||||||
|
|
||||||
state = self.theme.get() and tk.NORMAL or tk.DISABLED
|
state = tk.NORMAL if self.theme.get() else tk.DISABLED
|
||||||
self.theme_label_0['state'] = state
|
self.theme_label_0['state'] = state
|
||||||
self.theme_label_1['state'] = state
|
self.theme_label_1['state'] = state
|
||||||
self.theme_button_0['state'] = state
|
self.theme_button_0['state'] = state
|
||||||
@ -888,8 +890,10 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
event.widget.unbind('<KeyRelease>')
|
event.widget.unbind('<KeyRelease>')
|
||||||
hotkeymgr.acquire_stop() # in case focus was lost while in the middle of acquiring
|
hotkeymgr.acquire_stop() # in case focus was lost while in the middle of acquiring
|
||||||
event.widget.delete(0, tk.END)
|
event.widget.delete(0, tk.END)
|
||||||
self.hotkey_text.insert(0, self.hotkey_code and hotkeymgr.display(
|
self.hotkey_text.insert(
|
||||||
self.hotkey_code, self.hotkey_mods) or _('None')) # No hotkey/shortcut currently defined
|
0,
|
||||||
|
# No hotkey/shortcut currently defined
|
||||||
|
hotkeymgr.display(self.hotkey_code, self.hotkey_mods) if self.hotkey_code else _('None'))
|
||||||
|
|
||||||
def hotkeylisten(self, event: 'tk.Event[Any]') -> str:
|
def hotkeylisten(self, event: 'tk.Event[Any]') -> str:
|
||||||
"""
|
"""
|
||||||
@ -943,7 +947,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
config.set(
|
config.set(
|
||||||
'outdir',
|
'outdir',
|
||||||
self.outdir.get().startswith('~') and join(config.home, self.outdir.get()[2:]) or self.outdir.get()
|
join(config.home, self.outdir.get()[2:]) if self.outdir.get().startswith('~') else self.outdir.get()
|
||||||
)
|
)
|
||||||
|
|
||||||
logdir = self.logdir.get()
|
logdir = self.logdir.get()
|
||||||
@ -966,7 +970,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
edmclogger.get_streamhandler().setLevel(self.select_loglevel.get())
|
edmclogger.get_streamhandler().setLevel(self.select_loglevel.get())
|
||||||
|
|
||||||
lang_codes = {v: k for k, v in self.languages.items()} # Codes by name
|
lang_codes = {v: k for k, v in self.languages.items()} # Codes by name
|
||||||
config.set('language', lang_codes.get(self.lang.get()) or '')
|
config.set('language', lang_codes.get(self.lang.get()) or '') # or '' used here due to Default being None above
|
||||||
Translations.install(config.get('language') or None) # type: ignore # This sets self in weird ways.
|
Translations.install(config.get('language') or None) # type: ignore # This sets self in weird ways.
|
||||||
|
|
||||||
config.set('ui_scale', self.ui_scale.get())
|
config.set('ui_scale', self.ui_scale.get())
|
||||||
@ -990,7 +994,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.after_cancel(self.cmdrchanged_alarm)
|
self.after_cancel(self.cmdrchanged_alarm)
|
||||||
self.cmdrchanged_alarm = None
|
self.cmdrchanged_alarm = None
|
||||||
|
|
||||||
self.parent.wm_attributes('-topmost', config.getint('always_ontop') and 1 or 0)
|
self.parent.wm_attributes('-topmost', 1 if config.getint('always_ontop') else 0)
|
||||||
self.destroy()
|
self.destroy()
|
||||||
|
|
||||||
if platform == 'darwin':
|
if platform == 'darwin':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user