diff options
author | glerch <guido.lerch@gmail.com> | 2015-10-09 18:03:12 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-10-09 12:36:44 -0700 |
commit | 67c306b5278753bd5cc4eefc1dbeac8cc08e7913 (patch) | |
tree | 9d9881245a685a66d75fd4ac1235ea6dfd847e6c | |
parent | 65dbfd75e0b358a43972ae9361a458bc3bee0712 (diff) | |
download | subsurface-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.cpp | 16 |
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(); |