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
|
import urlutils
|
||||||
from aboutdialog import AboutDialog
|
from aboutdialog import AboutDialog
|
||||||
|
from cutesettings import CuteSettings
|
||||||
from ravenui import RavenUI
|
from ravenui import RavenUI
|
||||||
from settingsstore import SettingsStore
|
from settingsstore import SettingsStore
|
||||||
from highlightingdialog import HighlightingDialog
|
from highlightingdialog import HighlightingDialog
|
||||||
@@ -28,7 +29,8 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
self.settings = SettingsStore.load()
|
self.settings = SettingsStore.load()
|
||||||
self.setWindowTitle(self.tr("RavenLog"))
|
self.setWindowTitle(self.tr("RavenLog"))
|
||||||
self.setGeometry(0, 0, 640, 480)
|
self._restore_window()
|
||||||
|
|
||||||
self.setDockNestingEnabled(True)
|
self.setDockNestingEnabled(True)
|
||||||
self.setAcceptDrops(True)
|
self.setAcceptDrops(True)
|
||||||
|
|
||||||
@@ -135,6 +137,15 @@ class MainWindow(QMainWindow):
|
|||||||
file = urlutils.url_to_path(e.mimeData().text())
|
file = urlutils.url_to_path(e.mimeData().text())
|
||||||
self.open_file(file)
|
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):
|
def closeEvent(self, event):
|
||||||
self.destruct()
|
self.destruct()
|
||||||
|
|
||||||
@@ -142,6 +153,7 @@ class MainWindow(QMainWindow):
|
|||||||
self.tabs.destruct()
|
self.tabs.destruct()
|
||||||
self.close()
|
self.close()
|
||||||
SettingsStore.save(self.settings)
|
SettingsStore.save(self.settings)
|
||||||
|
CuteSettings().set_value("mainWindow/geometry", self.saveGeometry())
|
||||||
|
|
||||||
|
|
||||||
def stop_signal(signum, _stackframe):
|
def stop_signal(signum, _stackframe):
|
||||||
|
|||||||
Reference in New Issue
Block a user