diff --git a/dzgui/app_init.py b/dzgui/app_init.py index c200189..95da728 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 a1fa7a5..02061ea 100644 --- a/dzgui/const/constants.py +++ b/dzgui/const/constants.py @@ -89,6 +89,7 @@ FLATPAK_ROOT_PATH = ".var/app/com.valvesoftware.Steam" FLATPAK_STEAM_PATH = FLATPAK_ROOT_PATH + "/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..cbbb3b5 100644 --- a/dzgui/views/base.py +++ b/dzgui/views/base.py @@ -7,12 +7,11 @@ from dzgui.const.constants import ( APP_NAME, APP_NAME_LOWER, GTK_APP_ID, - STEAM_ICON, ) from dzgui.const.enum import NotebookPage from dzgui.controllers.emitter import Emitter from dzgui.controllers.mc import Controller -from dzgui.util import css, strings +from dzgui.util import css from dzgui.util.keys import is_ctrl_mask from dzgui.views.components.connect_panel import ConnectPanel from dzgui.views.components.crumbs import Breadcrumbs @@ -332,13 +331,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) diff --git a/dzgui/views/components/buttons.py b/dzgui/views/components/buttons.py index 45df27d..54f5097 100644 --- a/dzgui/views/components/buttons.py +++ b/dzgui/views/components/buttons.py @@ -65,6 +65,7 @@ class IconButton(Gtk.Button): self.set_image(self.icon) self.set_image_position(position) self.set_focus_on_click(False) + self.set_always_show_image(True) def swap_icon(self, icon: str) -> None: start = self.icon.get_margin_start()