Patch 3 - replacing 1 and 2 - sorry

Guido Lerch guido.lerch at gmail.com
Fri Oct 9 09:09:26 PDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20151009/957e114c/attachment.html>
-------------- next part --------------
From 732f5ebbfd63bf23a2e4fb2a244491b414c1899f Mon Sep 17 00:00:00 2001
From: glerch <guido.lerch at gmail.com>
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 <guido.lerch at gmail.com>
---
 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)



More information about the subsurface mailing list