Skip to content

Commit d6ca2f1

Browse files
committed
Add full window state saving
Saving and restoring of all window sizes and states (normal, minimized, and maximized) has been added, as well as the position of internal window elements, including toolbars. Fixes #69
1 parent 57d5bf2 commit d6ca2f1

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

omodsim/mainwindow.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1840,13 +1840,8 @@ void MainWindow::loadSettings()
18401840

18411841
QSettings m(filepath, QSettings::IniFormat, this);
18421842

1843-
const auto geometry = m.value("WindowGeometry", this->geometry()).toRect();
1844-
setGeometry(geometry);
1845-
1846-
const bool isMaximized = m.value("WindowMaximized").toBool();
1847-
if(isMaximized) {
1848-
showMaximized();
1849-
}
1843+
if(m.value("WindowMinimized").toBool()) showMinimized();
1844+
restoreGeometry(m.value("WindowGeometry").toByteArray());
18501845

18511846
const auto viewMode = (QMdiArea::ViewMode)qBound(0, m.value("ViewMode", QMdiArea::SubWindowView).toInt(), 1);
18521847
ui->mdiArea->setViewMode(viewMode);
@@ -1901,6 +1896,8 @@ void MainWindow::loadSettings()
19011896
}
19021897
}
19031898
}
1899+
1900+
restoreState(m.value("WindowState").toByteArray());
19041901
}
19051902

19061903
///
@@ -1934,8 +1931,9 @@ void MainWindow::saveSettings()
19341931
m.clear();
19351932
m.sync();
19361933

1937-
m.setValue("WindowMaximized", isMaximized());
1938-
m.setValue("WindowGeometry", isMaximized()? normalGeometry() : geometry());
1934+
m.setValue("WindowMinimized", isMinimized());
1935+
m.setValue("WindowGeometry", saveGeometry());
1936+
m.setValue("WindowState", saveState());
19391937

19401938
const auto frm = currentMdiChild();
19411939
if(frm) m.setValue("ActiveWindow", frm->windowTitle());

0 commit comments

Comments
 (0)