From 59a41739297e60e1a3bc2fa994a816d64cae85f0 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sun, 31 Oct 2021 07:52:13 +0100 Subject: [PATCH] use QSettings to store window geometry --- cutesettings.py | 13 +++++++++++++ main.py | 14 +++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 cutesettings.py diff --git a/cutesettings.py b/cutesettings.py new file mode 100644 index 0000000..b695d96 --- /dev/null +++ b/cutesettings.py @@ -0,0 +1,13 @@ +from PyQt6.QtCore import QSettings + + +class CuteSettings: + + def __init__(self): + self._settings = QSettings("opentext", "ravenlog") + + def set_value(self, key: str, value: any): + self._settings.setValue(key, value) + + def value(self, key: str, default=None): + return self._settings.value(key, default) diff --git a/main.py b/main.py index dc034d6..7f2057a 100644 --- a/main.py +++ b/main.py @@ -10,6 +10,7 @@ import sys import urlutils from aboutdialog import AboutDialog +from cutesettings import CuteSettings from ravenui import RavenUI from settingsstore import SettingsStore from highlightingdialog import HighlightingDialog @@ -28,7 +29,8 @@ class MainWindow(QMainWindow): self.settings = SettingsStore.load() self.setWindowTitle(self.tr("RavenLog")) - self.setGeometry(0, 0, 640, 480) + self._restore_window() + self.setDockNestingEnabled(True) self.setAcceptDrops(True) @@ -135,6 +137,15 @@ class MainWindow(QMainWindow): file = urlutils.url_to_path(e.mimeData().text()) self.open_file(file) + def _restore_window(self): + qsettings = CuteSettings() + geometry_restored = False + geometry = qsettings.value("mainWindow/geometry") + if geometry: + geometry_restored = self.restoreGeometry(geometry) + if not geometry_restored: + self.setGeometry(0, 0, 800, 600) + def closeEvent(self, event): self.destruct() @@ -142,6 +153,7 @@ class MainWindow(QMainWindow): self.tabs.destruct() self.close() SettingsStore.save(self.settings) + CuteSettings().set_value("mainWindow/geometry", self.saveGeometry()) def stop_signal(signum, _stackframe):