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
This commit is contained in:
LemonNexus 2026-02-11 09:08:04 +00:00
parent a216afde2d
commit 5837333d69
1 changed files with 18 additions and 1 deletions

View File

@ -21,7 +21,7 @@ from PyQt6.QtWidgets import (
QMessageBox, QGroupBox, QFrame, QApplication, QMessageBox, QGroupBox, QFrame, QApplication,
QTreeWidget, QTreeWidgetItem, QHeaderView 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 from PyQt6.QtGui import QAction, QFont, QColor, QPalette, QIcon
@ -273,6 +273,9 @@ class MainWindow(QMainWindow):
# Player settings # Player settings
self.player_name: str = "" # Set via Settings dialog self.player_name: str = "" # Set via Settings dialog
# Load persistent settings
self._load_settings()
# Selected gear # Selected gear
self._selected_weapon: Optional[str] = None self._selected_weapon: Optional[str] = None
self._selected_weapon_stats: Optional[dict] = None self._selected_weapon_stats: Optional[dict] = None
@ -1612,11 +1615,25 @@ class MainWindow(QMainWindow):
dialog = SettingsDialog(self, self.player_name) dialog = SettingsDialog(self, self.player_name)
if dialog.exec() == QDialog.DialogCode.Accepted: if dialog.exec() == QDialog.DialogCode.Accepted:
self.player_name = dialog.get_player_name() self.player_name = dialog.get_player_name()
self._save_settings() # Save to persistent storage
if self.player_name: if self.player_name:
self.log_info("Settings", f"Avatar name set to: {self.player_name}") self.log_info("Settings", f"Avatar name set to: {self.player_name}")
else: else:
self.log_info("Settings", "Warning: No avatar name set. Global tracking may not work correctly.") 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): def on_loadout_manager(self):
"""Open Loadout Manager dialog.""" """Open Loadout Manager dialog."""
from ui.loadout_manager_simple import LoadoutManagerDialog from ui.loadout_manager_simple import LoadoutManagerDialog