From b5c71b20247d13e2892b5de256dae4d7c13cd118 Mon Sep 17 00:00:00 2001
From: Oliver Bock <oliver.bock@aei.mpg.de>
Date: Fri, 30 Jul 2010 10:58:31 +0200
Subject: [PATCH] Save/restore window state and layout (on quit/startup)

---
 src/pulsatingscience.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp
index 54eefab..33e8c18 100644
--- a/src/pulsatingscience.cpp
+++ b/src/pulsatingscience.cpp
@@ -19,6 +19,8 @@
  ******************************************************************************/
 
 #include "pulsatingscience.h"
+#include <QSettings>
+
 
 #ifdef __APPLE__
 #include "/System/Library/Frameworks/Carbon.framework/Versions/A/Headers/Carbon.h"
@@ -110,6 +112,16 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent)
 
     connect(m_hiddenShortcut, SIGNAL(activated()),
             this, SLOT(toggleHiddenDemoMode()));
+
+    // restore previously saved window and splitter layout
+    QCoreApplication::setOrganizationName("Max-Planck-Insitut für Gravitationsphysik");
+    QCoreApplication::setOrganizationDomain("aei.mpg.de");
+    QCoreApplication::setApplicationName("Pulsating Science");
+    QSettings settings;
+
+    restoreGeometry(settings.value("windowGeometry").toByteArray());
+    restoreState(settings.value("windowState").toByteArray());
+    ui.splitter->restoreState(settings.value("splitterSizes").toByteArray());
 }
 
 PulsatingScience::~PulsatingScience()
@@ -161,6 +173,12 @@ void PulsatingScience::closeEvent(QCloseEvent *event)
         event->ignore();
     }
     else {
+        // save splitter layout
+        QSettings settings;
+        settings.setValue("windowGeometry", saveGeometry());
+        settings.setValue("windowState", saveState());
+        settings.setValue("splitterSizes", ui.splitter->saveState());
+
         event->accept();
     }
 }
-- 
GitLab