From 3911525d75bfa92d11ab678901e2ff85cbbfd0b3 Mon Sep 17 00:00:00 2001 From: mailchuck Date: Sun, 11 Oct 2015 11:57:58 +0200 Subject: [PATCH] Remember main window geometry and state on exit Main window geometry and state is saved on exit and restored on load. Uses default QSettings in python. --- src/bitmessageqt/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index a67a62dc..95fc43df 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -724,6 +724,8 @@ class MyForm(QtGui.QMainWindow): QtCore.QObject.connect(self.ui.horizontalSliderTTL, QtCore.SIGNAL( "valueChanged(int)"), self.updateTTL) + self.readSettings() + # Check to see whether we can connect to namecoin. Hide the 'Fetch Namecoin ID' button if we can't. try: options = {} @@ -2741,6 +2743,11 @@ class MyForm(QtGui.QMainWindow): # unregister the messaging system if self.mmapp is not None: self.mmapp.unregister() + + settings = QSettings("Mailchuck Ltd.", "PyBitmessage") + settings.setValue("geometry", self.saveGeometry()) + settings.setValue("state", self.saveState()) + self.statusBar().showMessage(_translate( "MainWindow", "All done. Closing user interface...")) os._exit(0) @@ -3584,6 +3591,20 @@ class MyForm(QtGui.QMainWindow): self.statusBar().showMessage(data) + def readSettings(self): + settings = QSettings("Mailchuck Ltd.", "PyBitmessage") + try: + geom = settings.value("geometry") + self.restoreGeometry(geom.toByteArray() if hasattr(geom, 'toByteArray') else geom) + except Exception as e: + pass + + try: + state = settings.value("state") + self.restoreState(state.toByteArray() if hasattr(state, 'toByteArray') else state) + except Exception as e: + pass + class helpDialog(QtGui.QDialog):