Merge Library and Status into a unified Games tab
This commit is contained in:
+7
-11
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user