From 5837333d6961b96110dc9accf673d907df3175ea Mon Sep 17 00:00:00 2001 From: LemonNexus Date: Wed, 11 Feb 2026 09:08:04 +0000 Subject: [PATCH] feat: add persistent settings for avatar name - Add QSettings import from PyQt6.QtCore - Add _load_settings() method to load player name on startup - Add _save_settings() method to save player name when settings change - Settings stored in Lemontropia/Suite registry/file - Player name now persists between app launches --- ui/main_window.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ui/main_window.py b/ui/main_window.py index 6ddf261..57144a8 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -21,7 +21,7 @@ from PyQt6.QtWidgets import ( QMessageBox, QGroupBox, QFrame, QApplication, QTreeWidget, QTreeWidgetItem, QHeaderView ) -from PyQt6.QtCore import Qt, pyqtSignal, QTimer, QSize +from PyQt6.QtCore import Qt, pyqtSignal, QTimer, QSize, QSettings from PyQt6.QtGui import QAction, QFont, QColor, QPalette, QIcon @@ -272,6 +272,9 @@ class MainWindow(QMainWindow): # Player settings self.player_name: str = "" # Set via Settings dialog + + # Load persistent settings + self._load_settings() # Selected gear self._selected_weapon: Optional[str] = None @@ -1612,11 +1615,25 @@ class MainWindow(QMainWindow): dialog = SettingsDialog(self, self.player_name) if dialog.exec() == QDialog.DialogCode.Accepted: self.player_name = dialog.get_player_name() + self._save_settings() # Save to persistent storage if self.player_name: self.log_info("Settings", f"Avatar name set to: {self.player_name}") else: self.log_info("Settings", "Warning: No avatar name set. Global tracking may not work correctly.") + def _load_settings(self): + """Load persistent settings from QSettings.""" + settings = QSettings("Lemontropia", "Suite") + self.player_name = settings.value("player/name", "", type=str) + if self.player_name: + self.log_info("Settings", f"Loaded avatar name: {self.player_name}") + + def _save_settings(self): + """Save persistent settings to QSettings.""" + settings = QSettings("Lemontropia", "Suite") + settings.setValue("player/name", self.player_name) + settings.sync() # Ensure settings are written immediately + def on_loadout_manager(self): """Open Loadout Manager dialog.""" from ui.loadout_manager_simple import LoadoutManagerDialog