mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 16:55:07 +02:00
Restore to windowed, maximized, or full screen appropriately at start-up
This commit is contained in:
parent
9a7ed8055f
commit
967afd8d67
3 changed files with 16 additions and 4 deletions
|
@ -516,7 +516,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) :
|
|||
|
||||
void Application::aboutToQuit() {
|
||||
_aboutToQuit = true;
|
||||
setFullscreen(false); // if you exit while in full screen, you'll get bad behavior when you restart.
|
||||
}
|
||||
|
||||
Application::~Application() {
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
|
||||
MainWindow::MainWindow(QWidget* parent) :
|
||||
QMainWindow(parent),
|
||||
_windowGeometry("WindowGeometry")
|
||||
_windowGeometry("WindowGeometry"),
|
||||
_windowState("WindowState", 0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -34,13 +35,24 @@ void MainWindow::restoreGeometry() {
|
|||
QRect geometry = _windowGeometry.get(qApp->desktop()->availableGeometry());
|
||||
move(geometry.topLeft());
|
||||
resize(geometry.size());
|
||||
|
||||
// Restore to maximized or full screen after restoring to windowed so that going windowed goes to good position and sizes.
|
||||
Qt::WindowStates state = _windowState.get(Qt::WindowNoState);
|
||||
if (state != Qt::WindowNoState) {
|
||||
setWindowState(state);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::saveGeometry() {
|
||||
// Did not use geometry() on purpose,
|
||||
// see http://doc.qt.io/qt-5/qsettings.html#restoring-the-state-of-a-gui-application
|
||||
QRect geometry(pos(), size());
|
||||
_windowGeometry.set(geometry);
|
||||
_windowState.set(windowState());
|
||||
|
||||
// Save position and size only if windowed so that have good values for windowed after starting maximized or full screen.
|
||||
if (windowState() == Qt::WindowNoState) {
|
||||
QRect geometry(pos(), size());
|
||||
_windowGeometry.set(geometry);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::moveEvent(QMoveEvent* event) {
|
||||
|
|
|
@ -38,6 +38,7 @@ protected:
|
|||
|
||||
private:
|
||||
Setting::Handle<QRect> _windowGeometry;
|
||||
Setting::Handle<int> _windowState;
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__MainWindow__) */
|
||||
|
|
Loading…
Reference in a new issue