diff --git a/src/platform_ops.py b/src/platform_ops.py index 493bc55..6200360 100644 --- a/src/platform_ops.py +++ b/src/platform_ops.py @@ -105,6 +105,7 @@ def request_defender_exclusion(path: str) -> bool: def launch_executable(executable: str, cwd: str) -> None: """Launch the managed executable using native process semantics.""" if sys.platform != "win32": + # TODO: implement solution to run game on linux .... raise RuntimeError("native Linux game launching is not configured") flags = (getattr(subprocess, "DETACHED_PROCESS", 0) | getattr(subprocess, "CREATE_BREAKAWAY_FROM_JOB", 0)) diff --git a/src/ui.py b/src/ui.py index e0ad943..957f257 100644 --- a/src/ui.py +++ b/src/ui.py @@ -29,6 +29,7 @@ from .client import * from .torrent import * from .mods import * from .platform_ops import open_directory, launch_executable, request_defender_exclusion +from . import config # News tab: the latest announcement (forum 2, full post) fills the left panel, @@ -73,6 +74,8 @@ C_PARCH_LINK = "#a3561c" C_PARCH_EDGE = "#b7a678" FONT_BODY = ("Segoe UI", 9) +FONT_MONO = ("TkDefaultFont", 10) +FONT_VER = ("TkDefaultFont", 8) NEWS_FEATURED_URL = f"{SERVER}/forum/octonews.php?forum=2&mode=full" PATCHNOTES_URL = f"{SERVER}/forum/octonews.php?mode=list&forum=4&limit=8" @@ -215,7 +218,7 @@ class OctoUpdaterApp(tk.Tk): _relocate_legacy_data() # Detect first run before anything writes the config. - self._first_run = not os.path.exists(CONFIG_FILE) + self._first_run = not os.path.exists(config.CONFIG_FILE) # Set when the user adds a Defender exclusion via Settings; checked at # the next reconcile to skip the auto-prompt (so a manual add isn't # double-prompted), then reset — so each folder change offers one unless @@ -249,7 +252,7 @@ class OctoUpdaterApp(tk.Tk): # effect only once Settings is closed (see _close_settings), so no # live trace fires mid-edit. self._game_path = tk.StringVar( - value=os.path.normpath(self._cfg.get("out_dir", DEFAULT_GAME_DIR))) + value=os.path.normpath(self._cfg.get("out_dir", config.DEFAULT_GAME_DIR))) # Count of mods with an update available — shown as a badge on the # MODS nav tab. @@ -295,7 +298,7 @@ class OctoUpdaterApp(tk.Tk): self._build() - out_dir = self._cfg.get("out_dir", DEFAULT_GAME_DIR) + out_dir = self._cfg.get("out_dir", config.DEFAULT_GAME_DIR) if not os.path.exists(out_dir): def _wipe(c): c.pop("mods", None) @@ -598,13 +601,13 @@ class OctoUpdaterApp(tk.Tk): hdr.bind("", lambda e: self._on_hdr_motion(None)) self._clear_wdb_var = tk.BooleanVar( - value=bool(self._cfg.get("clear_wdb_on_launch", False))) + value=bool(self._cfg.get("clear_wdb_on_launch", True))) self._close_on_launch_var = tk.BooleanVar( - value=bool(self._cfg.get("close_on_launch", False))) + value=bool(self._cfg.get("close_on_launch", True))) self._auto_mods_var = tk.BooleanVar( - value=bool(self._cfg.get("auto_install_mods", True))) + value=bool(self._cfg.get("auto_install_mods", False))) self._auto_addons_var = tk.BooleanVar( - value=bool(self._cfg.get("auto_install_addons", True))) + value=bool(self._cfg.get("auto_install_addons", False))) self._ignore_speech_var = tk.BooleanVar( value=bool(self._cfg.get("ignore_speech", False))) # Deferred "install missing" pending from turning an auto-install