mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-06-09 11:52:27 +03:00
autoformatted and sorted imports
This commit is contained in:
parent
faf4906eea
commit
ebc34d858c
76
prefs.py
76
prefs.py
@ -1,24 +1,23 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from os.path import dirname, expanduser, expandvars, exists, isdir, join, normpath
|
import logging
|
||||||
from sys import platform
|
|
||||||
import webbrowser
|
|
||||||
|
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
from tkinter import ttk
|
import webbrowser
|
||||||
|
from os.path import exists, expanduser, expandvars, join, normpath
|
||||||
|
from sys import platform
|
||||||
from tkinter import colorchooser as tkColorChooser
|
from tkinter import colorchooser as tkColorChooser
|
||||||
from ttkHyperlinkLabel import HyperlinkLabel
|
from tkinter import ttk
|
||||||
import myNotebook as nb
|
|
||||||
|
|
||||||
from config import appname, applongname, config, appversion
|
import myNotebook as nb
|
||||||
|
import plug
|
||||||
|
from config import applongname, appname, appversion, config
|
||||||
|
from EDMCLogging import edmclogger
|
||||||
from hotkey import hotkeymgr
|
from hotkey import hotkeymgr
|
||||||
from l10n import Translations
|
from l10n import Translations
|
||||||
from monitor import monitor
|
from monitor import monitor
|
||||||
from theme import theme
|
from theme import theme
|
||||||
|
from ttkHyperlinkLabel import HyperlinkLabel
|
||||||
|
|
||||||
import plug
|
|
||||||
import logging
|
|
||||||
logger = logging.getLogger(appname)
|
logger = logging.getLogger(appname)
|
||||||
from EDMCLogging import edmclogger
|
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Versioned preferences, so we know whether to set an 'on' default on
|
# Versioned preferences, so we know whether to set an 'on' default on
|
||||||
@ -26,6 +25,8 @@ from EDMCLogging import edmclogger
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
# May be imported by plugins
|
# May be imported by plugins
|
||||||
|
|
||||||
|
|
||||||
class PrefsVersion(object):
|
class PrefsVersion(object):
|
||||||
versions = {
|
versions = {
|
||||||
'0.0.0.0': 1,
|
'0.0.0.0': 1,
|
||||||
@ -33,7 +34,8 @@ class PrefsVersion(object):
|
|||||||
'3.4.6.0': 3,
|
'3.4.6.0': 3,
|
||||||
'3.5.1.0': 4,
|
'3.5.1.0': 4,
|
||||||
# Only add new versions that add new Preferences
|
# Only add new versions that add new Preferences
|
||||||
'current': 4, # Should always match the last specific version, but only increment after you've added the new version. Guess at it if anticipating a new version.
|
# Should always match the last specific version, but only increment after you've added the new version. Guess at it if anticipating a new version.
|
||||||
|
'current': 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -81,6 +83,7 @@ class PrefsVersion(object):
|
|||||||
return False
|
return False
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
|
|
||||||
prefsVersion = PrefsVersion()
|
prefsVersion = PrefsVersion()
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
@ -127,6 +130,7 @@ elif platform=='win32':
|
|||||||
except: # Not supported under Wine 4.0
|
except: # Not supported under Wine 4.0
|
||||||
CalculatePopupWindowPosition = None
|
CalculatePopupWindowPosition = None
|
||||||
|
|
||||||
|
|
||||||
class PreferencesDialog(tk.Toplevel):
|
class PreferencesDialog(tk.Toplevel):
|
||||||
|
|
||||||
def __init__(self, parent, callback):
|
def __init__(self, parent, callback):
|
||||||
@ -134,8 +138,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.title(platform=='darwin' and _('Preferences') or
|
self.title(platform == 'darwin' and _('Preferences') or _('Settings'))
|
||||||
_('Settings'))
|
|
||||||
|
|
||||||
if parent.winfo_viewable():
|
if parent.winfo_viewable():
|
||||||
self.transient(parent)
|
self.transient(parent)
|
||||||
@ -240,13 +243,17 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
).grid(row=20, padx=PADX, sticky=tk.W)
|
).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():
|
||||||
nb.Label(configframe, text = _('Re-start {APP} to use shortcuts').format(APP=applongname), foreground='firebrick').grid(padx=PADX, sticky=tk.W) # Shortcut settings prompt on OSX
|
nb.Label(configframe, text=_('Re-start {APP} to use shortcuts').format(APP=applongname),
|
||||||
|
foreground='firebrick').grid(padx=PADX, sticky=tk.W) # Shortcut settings prompt on OSX
|
||||||
else:
|
else:
|
||||||
nb.Label(configframe, text = _('{APP} needs permission to use shortcuts').format(APP=applongname), foreground='firebrick').grid(columnspan=4, padx=PADX, sticky=tk.W) # Shortcut settings prompt on OSX
|
nb.Label(configframe, text=_('{APP} needs permission to use shortcuts').format(
|
||||||
nb.Button(configframe, text = _('Open System Preferences'), command = self.enableshortcuts).grid(padx=PADX, sticky=tk.E) # Shortcut settings button on OSX
|
APP=applongname), foreground='firebrick').grid(columnspan=4, padx=PADX, sticky=tk.W) # Shortcut settings prompt on OSX
|
||||||
|
nb.Button(configframe, text=_('Open System Preferences'), command=self.enableshortcuts).grid(
|
||||||
|
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=(platform == 'darwin' and 20 or 30), justify=tk.CENTER)
|
||||||
self.hotkey_text.insert(0, self.hotkey_code and hotkeymgr.display(self.hotkey_code, self.hotkey_mods) or _('None')) # No hotkey/shortcut currently defined
|
self.hotkey_text.insert(0, self.hotkey_code and hotkeymgr.display(
|
||||||
|
self.hotkey_code, self.hotkey_mods) or _('None')) # No hotkey/shortcut currently defined
|
||||||
self.hotkey_text.bind('<FocusIn>', self.hotkeystart)
|
self.hotkey_text.bind('<FocusIn>', self.hotkeystart)
|
||||||
self.hotkey_text.bind('<FocusOut>', self.hotkeyend)
|
self.hotkey_text.bind('<FocusOut>', self.hotkeyend)
|
||||||
self.hotkey_text.grid(row=20, column=1, columnspan=2, pady=(5, 0), sticky=tk.W)
|
self.hotkey_text.grid(row=20, column=1, columnspan=2, pady=(5, 0), sticky=tk.W)
|
||||||
@ -258,16 +265,19 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
# Option to disabled Automatic Check For Updates whilst in-game
|
# Option to disabled Automatic Check For Updates whilst in-game
|
||||||
ttk.Separator(configframe, orient=tk.HORIZONTAL).grid(columnspan=4, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
ttk.Separator(configframe, orient=tk.HORIZONTAL).grid(columnspan=4, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
||||||
self.disable_autoappupdatecheckingame = tk.IntVar(value=config.getint('disable_autoappupdatecheckingame'))
|
self.disable_autoappupdatecheckingame = tk.IntVar(value=config.getint('disable_autoappupdatecheckingame'))
|
||||||
self.disable_autoappupdatecheckingame_btn = nb.Checkbutton(configframe, text=_('Disable Automatic Application Updates Check when in-game'), variable=self.disable_autoappupdatecheckingame, command=self.disable_autoappupdatecheckingame_changed)
|
self.disable_autoappupdatecheckingame_btn = nb.Checkbutton(configframe, text=_(
|
||||||
|
'Disable Automatic Application Updates Check when in-game'), variable=self.disable_autoappupdatecheckingame, command=self.disable_autoappupdatecheckingame_changed)
|
||||||
self.disable_autoappupdatecheckingame_btn.grid(columnspan=4, padx=PADX, sticky=tk.W)
|
self.disable_autoappupdatecheckingame_btn.grid(columnspan=4, padx=PADX, sticky=tk.W)
|
||||||
|
|
||||||
|
|
||||||
ttk.Separator(configframe, orient=tk.HORIZONTAL).grid(columnspan=4, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
ttk.Separator(configframe, orient=tk.HORIZONTAL).grid(columnspan=4, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
||||||
nb.Label(configframe, text=_('Preferred websites')).grid(row=30, columnspan=4, padx=PADX, sticky=tk.W) # Settings prompt for preferred ship loadout, system and station info websites
|
# Settings prompt for preferred ship loadout, system and station info websites
|
||||||
|
nb.Label(configframe, text=_('Preferred websites')).grid(row=30, columnspan=4, padx=PADX, sticky=tk.W)
|
||||||
|
|
||||||
self.shipyard_provider = tk.StringVar(value=config.get('shipyard_provider') in plug.provides('shipyard_url') and config.get('shipyard_provider') or 'EDSY')
|
self.shipyard_provider = tk.StringVar(value=config.get('shipyard_provider') in plug.provides('shipyard_url') and config.get('shipyard_provider') or 'EDSY')
|
||||||
nb.Label(configframe, text=_('Shipyard')).grid(row=31, padx=PADX, pady=2*PADY, sticky=tk.W) # Setting to decide which ship outfitting website to link to - either E:D Shipyard or Coriolis
|
# Setting to decide which ship outfitting website to link to - either E:D Shipyard or Coriolis
|
||||||
self.shipyard_button = nb.OptionMenu(configframe, self.shipyard_provider, self.shipyard_provider.get(), *plug.provides('shipyard_url'))
|
nb.Label(configframe, text=_('Shipyard')).grid(row=31, padx=PADX, pady=2*PADY, sticky=tk.W)
|
||||||
|
self.shipyard_button = nb.OptionMenu(configframe, self.shipyard_provider,
|
||||||
|
self.shipyard_provider.get(), *plug.provides('shipyard_url'))
|
||||||
self.shipyard_button.configure(width=15)
|
self.shipyard_button.configure(width=15)
|
||||||
self.shipyard_button.grid(row=31, column=1, sticky=tk.W)
|
self.shipyard_button.grid(row=31, column=1, sticky=tk.W)
|
||||||
# Option for alternate URL opening
|
# Option for alternate URL opening
|
||||||
@ -279,7 +289,8 @@ 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)
|
||||||
|
|
||||||
self.system_provider = tk.StringVar(value = config.get('system_provider') in plug.provides('system_url') and config.get('system_provider') or 'EDSM')
|
self.system_provider = tk.StringVar(value=config.get('system_provider') in plug.provides(
|
||||||
|
'system_url') 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)
|
||||||
self.system_button = nb.OptionMenu(configframe, self.system_provider,self.system_provider.get(), *plug.provides('system_url'))
|
self.system_button = nb.OptionMenu(configframe, self.system_provider,self.system_provider.get(), *plug.provides('system_url'))
|
||||||
self.system_button.configure(width=15)
|
self.system_button.configure(width=15)
|
||||||
@ -308,7 +319,6 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
|
|
||||||
notebook.add(configframe, text=_('Configuration')) # Tab heading in settings
|
notebook.add(configframe, text=_('Configuration')) # Tab heading in settings
|
||||||
|
|
||||||
|
|
||||||
self.languages = Translations.available_names()
|
self.languages = Translations.available_names()
|
||||||
self.lang = tk.StringVar(value=self.languages.get(config.get('language'), _('Default'))) # Appearance theme and language setting
|
self.lang = tk.StringVar(value=self.languages.get(config.get('language'), _('Default'))) # Appearance theme and language setting
|
||||||
self.always_ontop = tk.BooleanVar(value=config.getint('always_ontop'))
|
self.always_ontop = tk.BooleanVar(value=config.getint('always_ontop'))
|
||||||
@ -325,10 +335,13 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.lang_button.grid(row=10, column=1, columnspan=2, padx=PADX, sticky=tk.W)
|
self.lang_button.grid(row=10, column=1, columnspan=2, padx=PADX, sticky=tk.W)
|
||||||
ttk.Separator(themeframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
ttk.Separator(themeframe, orient=tk.HORIZONTAL).grid(columnspan=3, padx=PADX, pady=PADY*4, sticky=tk.EW)
|
||||||
nb.Label(themeframe, text=_('Theme')).grid(columnspan=3, padx=PADX, sticky=tk.W) # Appearance setting
|
nb.Label(themeframe, text=_('Theme')).grid(columnspan=3, padx=PADX, sticky=tk.W) # Appearance setting
|
||||||
nb.Radiobutton(themeframe, text=_('Default'), variable=self.theme, value=0, command=self.themevarchanged).grid(columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme and language setting
|
nb.Radiobutton(themeframe, text=_('Default'), variable=self.theme, value=0, command=self.themevarchanged).grid(
|
||||||
nb.Radiobutton(themeframe, text=_('Dark'), variable=self.theme, value=1, command=self.themevarchanged).grid(columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme setting
|
columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme and language setting
|
||||||
|
nb.Radiobutton(themeframe, text=_('Dark'), variable=self.theme, value=1, command=self.themevarchanged).grid(
|
||||||
|
columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme setting
|
||||||
if platform == 'win32':
|
if platform == 'win32':
|
||||||
nb.Radiobutton(themeframe, text=_('Transparent'), variable=self.theme, value=2, command=self.themevarchanged).grid(columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme setting
|
nb.Radiobutton(themeframe, text=_('Transparent'), variable=self.theme, value=2, command=self.themevarchanged).grid(
|
||||||
|
columnspan=3, padx=BUTTONX, sticky=tk.W) # Appearance theme setting
|
||||||
self.theme_label_0 = nb.Label(themeframe, text=self.theme_prompts[0])
|
self.theme_label_0 = nb.Label(themeframe, text=self.theme_prompts[0])
|
||||||
self.theme_label_0.grid(row=20, padx=PADX, sticky=tk.W)
|
self.theme_label_0.grid(row=20, padx=PADX, sticky=tk.W)
|
||||||
self.theme_button_0 = nb.ColoredButton(themeframe, text=_('Station'), background='grey4', command=lambda: self.themecolorbrowse(0)) # Main window
|
self.theme_button_0 = nb.ColoredButton(themeframe, text=_('Station'), background='grey4', command=lambda: self.themecolorbrowse(0)) # Main window
|
||||||
@ -555,7 +568,8 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
config.set('use_alt_shipyard_open', self.alt_shipyard_open.get())
|
config.set('use_alt_shipyard_open', self.alt_shipyard_open.get())
|
||||||
|
|
||||||
def themecolorbrowse(self, index):
|
def themecolorbrowse(self, index):
|
||||||
(rgb, color) = tkColorChooser.askcolor(self.theme_colors[index], title=self.theme_prompts[index], parent=self.parent)
|
(rgb, color) = tkColorChooser.askcolor(
|
||||||
|
self.theme_colors[index], title=self.theme_prompts[index], parent=self.parent)
|
||||||
if color:
|
if color:
|
||||||
self.theme_colors[index] = color
|
self.theme_colors[index] = color
|
||||||
self.themevarchanged()
|
self.themevarchanged()
|
||||||
@ -580,7 +594,8 @@ 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_code, self.hotkey_mods) or _('None')) # No hotkey/shortcut currently defined
|
self.hotkey_text.insert(0, self.hotkey_code and hotkeymgr.display(
|
||||||
|
self.hotkey_code, self.hotkey_mods) or _('None')) # No hotkey/shortcut currently defined
|
||||||
|
|
||||||
def hotkeylisten(self, event):
|
def hotkeylisten(self, event):
|
||||||
good = hotkeymgr.fromevent(event)
|
good = hotkeymgr.fromevent(event)
|
||||||
@ -609,7 +624,6 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
self.hotkey_only_btn.focus() # move to next widget - calls hotkeyend() implicitly
|
self.hotkey_only_btn.focus() # move to next widget - calls hotkeyend() implicitly
|
||||||
return('break') # stops further processing - insertion, Tab traversal etc
|
return('break') # stops further processing - insertion, Tab traversal etc
|
||||||
|
|
||||||
|
|
||||||
def apply(self):
|
def apply(self):
|
||||||
config.set('PrefsVersion', prefsVersion.stringToSerial(appversion))
|
config.set('PrefsVersion', prefsVersion.stringToSerial(appversion))
|
||||||
config.set('output',
|
config.set('output',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user