From cb364743b80f4d7b863a604b24ce7c09efffbdb2 Mon Sep 17 00:00:00 2001
From: Edric Milaret <edric.ladent-milaret@savoirfairelinux.com>
Date: Tue, 15 Mar 2016 16:45:16 -0400
Subject: [PATCH] ui: remember mainwindow size and pos on exit

Change-Id: I82585c4567d620f4ced6e2864486e50ec77d3b35
Tuleap: #396
---
 mainwindow.cpp | 12 +++++++++++-
 settingskey.h  |  3 ++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/mainwindow.cpp b/mainwindow.cpp
index bb5812c..2461ff4 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -80,7 +80,14 @@ MainWindow::MainWindow(QWidget* parent) :
     }
 #endif
 
-    resize(1054, 600);
+    QSettings settings;
+    QVariant size = settings.value(SettingsKey::savedSize);
+    QVariant pos = settings.value(SettingsKey::savedPos);
+    if (size.isValid() && pos.isValid()) {
+        resize(size.toSize());
+        move(pos.toPoint());
+    } else
+        resize(1054, 600);
 
 #ifdef ENABLE_AUTOUPDATE
     win_sparkle_set_appcast_url("http://gpl.savoirfairelinux.net/ring-download/windows/winsparkle-ring.xml");
@@ -192,5 +199,8 @@ MainWindow::closeEvent(QCloseEvent* event)
     if (settings.value(SettingsKey::closeOrMinimized).toBool()) {
         this->hide();
         event->ignore();
+    } else {
+        settings.setValue(SettingsKey::savedSize, size());
+        settings.setValue(SettingsKey::savedPos, pos());
     }
 }
diff --git a/settingskey.h b/settingskey.h
index 58080fb..0620901 100644
--- a/settingskey.h
+++ b/settingskey.h
@@ -22,7 +22,8 @@ namespace SettingsKey {
 
 constexpr static char closeOrMinimized[] = "closeOrMin";
 constexpr static char autoAnswer[] = "autoAnswer";
-
+constexpr static char savedSize[] = "savedSize";
+constexpr static char savedPos[] = "savedPos";
 }
 
 #define accountAutoAnswer(A) (A+SettingsKey::autoAnswer)
-- 
GitLab