Save and restore window geometry via `QSettings`

Seems to be required to get certain widgets to size correctly on macos
like the order-mode "health bar" among other types of labels?

(this commit msg was generated in some part by [`claude-code`][claude-code-gh])
[claude-code-gh]: https://github.com/anthropics/claude-code

Originally from @dnks with a weird(er) commit msg XP
macos_support
Gud Boi 2026-03-11 11:59:56 -04:00
parent 52e65dbe0d
commit d4fbfaae45
2 changed files with 14 additions and 0 deletions

View File

@ -37,6 +37,7 @@ from piker.ui.qt import (
QStatusBar, QStatusBar,
QScreen, QScreen,
QCloseEvent, QCloseEvent,
QSettings,
) )
from ..log import get_logger from ..log import get_logger
from ._style import _font_small, hcolor from ._style import _font_small, hcolor
@ -181,6 +182,13 @@ class MainWindow(QMainWindow):
self._status_label: QLabel = None self._status_label: QLabel = None
self._size: tuple[int, int]|None = 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 @property
def mode_label(self) -> QLabel: def mode_label(self) -> QLabel:
@ -217,6 +225,11 @@ class MainWindow(QMainWindow):
'''Cancel the root actor asap. '''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. # raising KBI seems to get intercepted by by Qt so just use the system.
os.kill(os.getpid(), signal.SIGINT) os.kill(os.getpid(), signal.SIGINT)

View File

@ -44,6 +44,7 @@ from PyQt6.QtCore import (
QItemSelectionModel, QItemSelectionModel,
pyqtBoundSignal, pyqtBoundSignal,
pyqtRemoveInputHook, pyqtRemoveInputHook,
QSettings,
) )
align_flag: EnumType = Qt.AlignmentFlag align_flag: EnumType = Qt.AlignmentFlag