From 4ab078b93e3b3c72cf7edf48b86b29262cd0b4cd Mon Sep 17 00:00:00 2001 From: Boris Yumankulov Date: Sat, 18 Oct 2025 12:12:01 +0500 Subject: [PATCH] fix: sync card_width between GameLibraryManager and MainWindow to prevent config overwrite Signed-off-by: Boris Yumankulov --- portprotonqt/game_library_manager.py | 3 +++ portprotonqt/main_window.py | 15 +++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/portprotonqt/game_library_manager.py b/portprotonqt/game_library_manager.py index 1166b11..858e045 100644 --- a/portprotonqt/game_library_manager.py +++ b/portprotonqt/game_library_manager.py @@ -33,6 +33,7 @@ class MainWindowProtocol(Protocol): # Required attributes searchEdit: CustomLineEdit _last_card_width: int + card_width: int current_hovered_card: GameCard | None current_focused_card: GameCard | None gamesListWidget: QWidget | None @@ -128,6 +129,8 @@ class GameLibraryManager: self.card_width = self.sizeSlider.value() self.sizeSlider.setToolTip(f"{self.card_width} px") save_card_size(self.card_width) + self.main_window.card_width = self.card_width + self.main_window._last_card_width = self.card_width for card in self.game_card_cache.values(): card.update_card_size(self.card_width) self.update_game_grid() diff --git a/portprotonqt/main_window.py b/portprotonqt/main_window.py index 597f8d4..051bbe2 100644 --- a/portprotonqt/main_window.py +++ b/portprotonqt/main_window.py @@ -3056,7 +3056,13 @@ class MainWindow(QMainWindow): """Обработчик закрытия окна: проверяет настройку minimize_to_tray. Если True — сворачиваем в трей (по умолчанию). Иначе — полностью закрываем. """ - minimize_to_tray = read_minimize_to_tray() # Импорт read_minimize_to_tray из config_utils + minimize_to_tray = read_minimize_to_tray() + save_card_size(self.card_width) + save_auto_card_size(self.auto_card_width) + # Сохраняем настройки окна + if not read_fullscreen_config(): + logger.debug(f"Saving window geometry: {self.width()}x{self.height()}") + save_window_geometry(self.width(), self.height()) if hasattr(self, 'is_exiting') and self.is_exiting or not minimize_to_tray: # Принудительное закрытие: завершаем процессы и приложение for proc in self.game_processes: @@ -3097,13 +3103,6 @@ class MainWindow(QMainWindow): self.wine_monitor_timer.deleteLater() self.wine_monitor_timer = None - # Сохраняем настройки окна - if not read_fullscreen_config(): - logger.debug(f"Saving window geometry: {self.width()}x{self.height()}") - save_window_geometry(self.width(), self.height()) - save_card_size(self.card_width) - save_auto_card_size(self.auto_card_width) - event.accept() else: # Сворачиваем в трей вместо закрытия