Finally I think on El Captain and Mavericks the main window size, position
and state
is preserved.

I have no Yosemite at this point in time, Robert, can you test ?

Sorry for the first two quick shots ...

-- 
Best regards,
Guido
From 732f5ebbfd63bf23a2e4fb2a244491b414c1899f Mon Sep 17 00:00:00 2001
From: glerch <[email protected]>
Date: Fri, 9 Oct 2015 18:03:12 +0200
Subject: [PATCH] fixing main window size position and state

now size, position and state should be preserved correctly.
this replaces the last two patches I sent.

Signed-off-by: glerch <[email protected]>
---
 qt-ui/mainwindow.cpp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 8759760..5d8adbc 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -1085,11 +1085,12 @@ void MainWindow::initialUiSetup()
 {
        QSettings settings;
        settings.beginGroup("MainWindow");
-       QSize sz = settings.value("size", 
qApp->desktop()->size()).value<QSize>();
-       if (settings.value("maximized", isMaximized()).value<bool>())
+       if (settings.value("maximized", isMaximized()).value<bool>()) {
                showMaximized();
-       else
-               resize(sz);
+       } else {
+               restoreGeometry(settings.value("geometry").toByteArray());
+               restoreState(settings.value("windowState", 0).toByteArray());
+       }
 
        state = (CurrentState)settings.value("lastState", 0).toInt();
        switch (state) {
@@ -1110,6 +1111,7 @@ void MainWindow::initialUiSetup()
                break;
        }
        settings.endGroup();
+       show();
 }
 
 const char *getSetting(QSettings &s, QString name)
@@ -1203,10 +1205,10 @@ void MainWindow::writeSettings()
        QSettings settings;
 
        settings.beginGroup("MainWindow");
-       settings.setValue("lastState", (int)state);
+       settings.setValue("geometry", saveGeometry());
+       settings.setValue("windowState", saveState());
        settings.setValue("maximized", isMaximized());
-       if (!isMaximized())
-               settings.setValue("size", size());
+       settings.setValue("lastState", (int)state);
        if (state == VIEWALL)
                saveSplitterSizes();
        settings.endGroup();
-- 
1.9.5 (Apple Git-50.3)

_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to