From da48834fa72b32e6eecdd67bc5ed7700c103f1d5 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Thu, 22 Oct 2026 10:11:55 +0900 Subject: [PATCH] feat: load Steam icon into search paths --- dzgui/app_init.py | 30 ++++++++++++++++++++++++++++-- dzgui/const/constants.py | 1 + dzgui/views/base.py | 9 --------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/dzgui/app_init.py b/dzgui/app_init.py index 643d32c..f1366c4 100644 --- a/dzgui/app_init.py +++ b/dzgui/app_init.py @@ -1,10 +1,13 @@ import logging import os import shutil + +from pathlib import Path from typing import TYPE_CHECKING +from warnings import deprecated -from dzgui.const.constants import APP_NAME +from dzgui.const.constants import APP_NAME, STEAM_ICON, STEAM_ICONS_PATH from dzgui.const.enum import Preferences from dzgui.config.query import lookup from dzgui.config.userprefs import UserPrefs @@ -23,7 +26,7 @@ from dzgui.util.dirs import make_parents from dzgui.util.localize import set_locale from dzgui.util.map_count import test_map_count from dzgui.util.redact import RedactionFilter, REDACTION_PATTERNS -from dzgui.util.strings import init +from dzgui.util.strings import init, steam_icon_missing from dzgui.views.base import App from dzgui.views.dialogs.boot import BootWindow @@ -96,6 +99,28 @@ def copy_bare_configs(config: "Path", resolution: "Path") -> tuple[bool, bool]: return (config_changed, state_changed) +@deprecated("Currently unused") +def load_steam_icon(config: Path) -> None: + import gi + + gi.require_version("Gtk", "3.0") + from gi.repository import Gtk # noqa + + default = lookup(config, Preferences.DEFAULT) + icon_path = Path(default).joinpath(STEAM_ICONS_PATH) + try: + theme = Gtk.IconTheme.get_default() + paths = theme.get_search_path() + theme.set_search_path(paths + [str(icon_path)]) + paths = theme.get_search_path() + icons = theme.list_icons(None) + if STEAM_ICON not in icons: + logger.warning(steam_icon_missing) + except Exception as e: + print(e) + logger.warning(e) + + def load_gui(version: str, is_debug: bool) -> None: lock = lock_acquire() # noqa @@ -143,6 +168,7 @@ def load_gui(version: str, is_debug: bool) -> None: local_coords, latest_release = bootwin.get_results() use_miles = lookup(XDG.config, Preferences.DIST) + prefs = UserPrefs( is_steam_deck=_is_steam_deck, is_game_mode=_is_game_mode, diff --git a/dzgui/const/constants.py b/dzgui/const/constants.py index 57c011a..d4c29c5 100644 --- a/dzgui/const/constants.py +++ b/dzgui/const/constants.py @@ -88,6 +88,7 @@ DEFAULT_STEAM_PATH = ".local/share/Steam" FLATPAK_STEAM_PATH = ".var/app/com.valvesoftware.Steam/data/Steam" UBUNTU_STEAM_PATH = ".steam/steam" DEBIAN_STEAM_PATH = ".steam/debian-installation" +STEAM_ICONS_PATH = "public" LOG_FILTERS = ("CRITICAL", "WARNING", "INFO", "DEBUG") diff --git a/dzgui/views/base.py b/dzgui/views/base.py index dda1ac8..00e8241 100644 --- a/dzgui/views/base.py +++ b/dzgui/views/base.py @@ -332,13 +332,4 @@ class App(ColorAwareApp, Gtk.Application): # type: ignore ) -> None: self.win.halt_proc_and_quit() - MainController = Controller() - -try: - theme = Gtk.IconTheme.get_default() - icons = theme.list_icons(None) - if STEAM_ICON not in icons: - logger.warning(strings.steam_icon_missing) -except Exception as e: - logger.warning(e)