+ s.setValue("MainWinGeometry", saveGeometry());
+ s.setValue("MainWinMinimized", isMinimized());
+ s.setValue("MainWinHidden", _isHidden);
+}
+
+void MainWin::restoreStateFromSettings(UiSettings &s) {
+ restoreGeometry(s.value("MainWinGeometry").toByteArray());
+ if(isMaximized()) {
+ // restoreGeometry() fails if the windows was maximized, so we resize and position explicitly
+ resize(s.value("MainWinSize", QSize(800, 500)).toSize());
+ move(s.value("MainWinPos").toPoint());
+ }
+
+ restoreState(s.value("MainWinState").toByteArray());
+
+ _isHidden = false;
+ if(s.value("MainWinHidden").toBool())
+ hideToTray();
+ else if(s.value("MainWinMinimized").toBool())
+ showMinimized();
+ else
+ show();