use QSettings to store window geometry
This commit is contained in:
13
cutesettings.py
Normal file
13
cutesettings.py
Normal file
@@ -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)
|
||||
14
main.py
14
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):
|
||||
|
||||
Reference in New Issue
Block a user