aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar glerch <guido.lerch@gmail.com>2015-10-09 18:03:12 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-09 12:36:44 -0700
commit67c306b5278753bd5cc4eefc1dbeac8cc08e7913 (patch)
tree9d9881245a685a66d75fd4ac1235ea6dfd847e6c
parent65dbfd75e0b358a43972ae9361a458bc3bee0712 (diff)
downloadsubsurface-67c306b5278753bd5cc4eefc1dbeac8cc08e7913.tar.gz
Fix main window size, position, and state
Now size, position and state should be preserved correctly. Signed-off-by: glerch <guido.lerch@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/mainwindow.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index d0f2f9127..f9bfd775b 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();