diff --git a/trovedb/qgui/main_window.py b/trovedb/qgui/main_window.py index be56c30..a33d4b1 100644 --- a/trovedb/qgui/main_window.py +++ b/trovedb/qgui/main_window.py @@ -10,6 +10,8 @@ from PySide6.QtWidgets import ( QWidget ) +from .settings import get_settings + class TroveMainWindow(QMainWindow): def __init__(self): super().__init__() @@ -17,6 +19,7 @@ class TroveMainWindow(QMainWindow): # ── Toolbar ── toolbar = QToolBar("Main") + toolbar.setObjectName("maintoolbar") toolbar.setMovable(False) self.addToolBar(toolbar) @@ -51,3 +54,18 @@ class TroveMainWindow(QMainWindow): # ── Status bar ── self.setStatusBar(QStatusBar()) self.statusBar().showMessage("Ready") + + def closeEvent(self, event): + settings = get_settings() + settings.setValue("window/geometry", self.saveGeometry()) + settings.setValue("window/state", self.saveState()) + super().closeEvent(event) + + def restore_settings(self): + settings = get_settings() + geometry = settings.value("window/geometry") + state = settings.value("window/state") + if geometry: + self.restoreGeometry(geometry) + if state: + self.restoreState(state) \ No newline at end of file diff --git a/trovedb/qgui/qtrove.py b/trovedb/qgui/qtrove.py index 766f660..5a18725 100644 --- a/trovedb/qgui/qtrove.py +++ b/trovedb/qgui/qtrove.py @@ -17,6 +17,7 @@ def main(): window = TroveMainWindow() window.show() + window.restore_settings() sys.exit(app.exec()) if __name__ == '__main__': diff --git a/trovedb/qgui/settings.py b/trovedb/qgui/settings.py new file mode 100644 index 0000000..40f9681 --- /dev/null +++ b/trovedb/qgui/settings.py @@ -0,0 +1,5 @@ +from PySide6.QtCore import QSettings + + +def get_settings() -> QSettings: + return QSettings("trovedb", "qtrove")