From 18b66e5506f4f63e24ddb9b38f6c2a37c189603f Mon Sep 17 00:00:00 2001 From: wygud Date: Sun, 5 Oct 2025 17:09:31 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=9F=A2=20piker/ui/=5Fwindow.py=20for=20wi?= =?UTF-8?q?ndow=20geometry=20persistence=20=F0=9F=9B=A0=EF=B8=8F=20piker/u?= =?UTF-8?q?i/=5Fwindow.py=20->=20Save=20and=20restore=20window=20size=20be?= =?UTF-8?q?tween=20sessions=20=F0=9F=9B=A0=EF=B8=8F=20piker/ui/qt.py=20->?= =?UTF-8?q?=20Added=20QSettings=20import=20for=20configuration=20managemen?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- piker/ui/_window.py | 13 +++++++++++++ piker/ui/qt.py | 1 + 2 files changed, 14 insertions(+) diff --git a/piker/ui/_window.py b/piker/ui/_window.py index a15ecd24..f7b9df91 100644 --- a/piker/ui/_window.py +++ b/piker/ui/_window.py @@ -37,6 +37,7 @@ from piker.ui.qt import ( QStatusBar, QScreen, QCloseEvent, + QSettings, ) from ..log import get_logger from ._style import _font_small, hcolor @@ -181,6 +182,13 @@ class MainWindow(QMainWindow): self._status_label: QLabel = None self._size: tuple[int, int] | None = None + # restore window geometry from previous session + settings = QSettings('pikers', 'piker') + geometry = settings.value('windowGeometry') + if geometry is not None: + self.restoreGeometry(geometry) + log.debug('Restored window geometry from previous session') + @property def mode_label(self) -> QLabel: @@ -217,6 +225,11 @@ class MainWindow(QMainWindow): '''Cancel the root actor asap. ''' + # save window geometry for next session + settings = QSettings('pikers', 'piker') + settings.setValue('windowGeometry', self.saveGeometry()) + log.debug('Saved window geometry for next session') + # raising KBI seems to get intercepted by by Qt so just use the system. os.kill(os.getpid(), signal.SIGINT) diff --git a/piker/ui/qt.py b/piker/ui/qt.py index 9dbb971c..3dfaedf0 100644 --- a/piker/ui/qt.py +++ b/piker/ui/qt.py @@ -44,6 +44,7 @@ from PyQt6.QtCore import ( QItemSelectionModel, pyqtBoundSignal, pyqtRemoveInputHook, + QSettings, ) align_flag: EnumType = Qt.AlignmentFlag