Merge Library and Status into a unified Games tab

This commit is contained in:
2026-10-13 17:16:23 +02:00
parent 5d917dd4b9
commit 1643da4bb6
26 changed files with 1777 additions and 1786 deletions
+7 -11
View File
@@ -8,15 +8,14 @@ from src.auth import AuthManager
from src.config import AppConfig
from src.constants import APP_TITLE
from src.ui.tab_auth import AuthTab
from src.ui.tab_games import GamesTab
from src.ui.tab_languages import LanguagesTab
from src.ui.tab_library import LibraryTab
from src.ui.tab_prune import PruneTab
from src.ui.tab_settings import SettingsTab
from src.ui.tab_status import StatusTab
class MainWindow(QMainWindow):
"""Main GOGUpdater window with 5 tabs."""
"""Main GOGUpdater window. The Games tab merges the former Library + Status tabs."""
def __init__(self, auth: AuthManager, api: GogApi, config: AppConfig) -> None:
super().__init__()
@@ -35,17 +34,15 @@ class MainWindow(QMainWindow):
self.setCentralWidget(self.tabs)
self.auth_tab = AuthTab(self.auth)
self.library_tab = LibraryTab(self.api, self.config)
self.games_tab = GamesTab(self.api, self.config)
self.languages_tab = LanguagesTab(self.config)
self.settings_tab = SettingsTab(self.api, self.config)
self.status_tab = StatusTab(self.api, self.config)
self.prune_tab = PruneTab(self.config)
self.tabs.addTab(self.auth_tab, "Login")
self.tabs.addTab(self.library_tab, "Library")
self.tabs.addTab(self.games_tab, "Games")
self.tabs.addTab(self.languages_tab, "Languages")
self.tabs.addTab(self.settings_tab, "Settings")
self.tabs.addTab(self.status_tab, "Status")
self.tabs.addTab(self.prune_tab, "Pruning")
self._update_tab_states()
@@ -53,14 +50,12 @@ class MainWindow(QMainWindow):
def _connect_signals(self) -> None:
self.auth_tab.login_state_changed.connect(self._on_login_changed)
self.settings_tab.english_only_changed.connect(self._on_english_only_changed)
self.library_tab.library_refreshed.connect(self.status_tab.check_updates_from_cache)
def _on_login_changed(self, logged_in: bool) -> None:
logger.info(f"Login state changed: logged_in={logged_in}")
self._update_tab_states()
def _on_english_only_changed(self, english_only: bool) -> None:
"""Enable/disable Languages tab based on english_only setting."""
logger.info(f"English only changed: {english_only}")
self._update_tab_states()
@@ -69,6 +64,7 @@ class MainWindow(QMainWindow):
logged_in = self.auth.is_logged_in
for i in range(1, self.tabs.count()):
self.tabs.setTabEnabled(i, logged_in)
# Languages tab (index 2) disabled when english_only
# Languages tab is meaningless in English-only mode.
languages_index = self.tabs.indexOf(self.languages_tab)
if logged_in and self.config.english_only:
self.tabs.setTabEnabled(2, False)
self.tabs.setTabEnabled(languages_index, False)