GUI State manager: for handlign Qsettings - WIP

This commit is contained in:
appleb_m committed 2026-03-27 16:57:07 +01:00
1 parent 66f11fcf0e
commit f29378f68e
1 file changed
+48
+48
View File
@@ -0,0 +1,48 @@
import json
from PySide6.QtCore import QSettings
class UIStateManager:
def __init__(self, organization="PSI", app="AareGUI"):
self.settings = QSettings(organization, app)
def save_window(self, window):
self.settings.setValue("main_window/geometry", window.saveGeometry())
self.settings.setValue("main_window/state", window.saveState())
def restore_window(self, window):
geometry = self.settings.value("main_window/geometry")
if geometry:
window.restoreGeometry(geometry)
state = self.settings.value("main_window/state")
if state:
window.restoreState(state)
def save_model(self, key: str, model):
try:
data = model.to_list()
self.settings.setValue(key, json.dumps(data))
except Exception as e:
print(f"Failed to save model {key}: {e}")
def restore_model(self, key: str, model):
try:
raw = self.settings.value(key)
if not raw:
return
data = json.loads(raw)
model.from_list(data)
except Exception as e:
print(f"Failed to restore model {key}: {e}")
def save_value(self, key: str, value):
self.settings.setValue(key, value)
def load_value(self, key: str, default=None, value_type=None):
return self.settings.value(key, default, type=value_type)