Skip to content

Commit

Permalink
Merge pull request #6787 from spycrab/qt_restore_window
Browse files Browse the repository at this point in the history
Qt: Restore render widget size and position
  • Loading branch information
Helios747 committed May 8, 2018
2 parents a998758 + 2852959 commit cb02a4b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
21 changes: 21 additions & 0 deletions Source/Core/DolphinQt2/MainWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ MainWindow::MainWindow(std::unique_ptr<BootParameters> boot_parameters) : QMainW
QSettings& settings = Settings::GetQSettings();

restoreState(settings.value(QStringLiteral("mainwindow/state")).toByteArray());
m_render_widget_size =
QSize(SConfig::GetInstance().iRenderWindowWidth, SConfig::GetInstance().iRenderWindowHeight);

m_render_widget_position =
QPoint(SConfig::GetInstance().iRenderWindowXPos, SConfig::GetInstance().iRenderWindowYPos);
}

MainWindow::~MainWindow()
Expand All @@ -125,6 +130,12 @@ MainWindow::~MainWindow()
QSettings& settings = Settings::GetQSettings();

settings.setValue(QStringLiteral("mainwindow/state"), saveState());

SConfig::GetInstance().iRenderWindowWidth = m_render_widget_size.width();
SConfig::GetInstance().iRenderWindowHeight = m_render_widget_size.height();

SConfig::GetInstance().iRenderWindowXPos = m_render_widget_position.x();
SConfig::GetInstance().iRenderWindowYPos = m_render_widget_position.y();
}

void MainWindow::InitControllers()
Expand Down Expand Up @@ -547,6 +558,12 @@ bool MainWindow::RequestStop()
return true;
}

if (!m_render_widget->isFullScreen())
{
m_render_widget_size = m_render_widget->size();
m_render_widget_position = m_render_widget->pos();
}

if (SConfig::GetInstance().bConfirmStop)
{
const Core::State state = Core::GetState();
Expand Down Expand Up @@ -629,6 +646,7 @@ void MainWindow::FullScreen()
else
{
m_render_widget_size = m_render_widget->size();
m_render_widget_position = m_render_widget->pos();
m_render_widget->showFullScreen();
}
}
Expand Down Expand Up @@ -729,6 +747,9 @@ void MainWindow::ShowRenderWidget()

m_render_widget->showNormal();
m_render_widget->resize(m_render_widget_size);

if (m_render_widget_position.x() != -1)
m_render_widget->move(m_render_widget_position);
}

SetFullScreenResolution(false);
Expand Down
3 changes: 2 additions & 1 deletion Source/Core/DolphinQt2/MainWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,5 +193,6 @@ class MainWindow final : public QMainWindow
RegisterWidget* m_register_widget;
WatchWidget* m_watch_widget;
CheatsManager* m_cheats_manager;
QSize m_render_widget_size{640, 480};
QSize m_render_widget_size;
QPoint m_render_widget_position;
};

0 comments on commit cb02a4b

Please sign in to comment.