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,
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
@ -273,6 +273,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
self._selected_weapon_stats: Optional[dict] = 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