Pause on unfocused first draft
This is a MVP, still needs one or more configuration option(s) and review of the code style.
This commit is contained in:
parent
d6f2bc8c04
commit
23405b4ce1
|
@ -499,6 +499,17 @@ void GMainWindow::RestoreUIState() {
|
||||||
statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked());
|
statusBar()->setVisible(ui.action_Show_Status_Bar->isChecked());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMainWindow::OnLoseFocus(Qt::ApplicationState state) {
|
||||||
|
if (ui.action_Pause->isEnabled() &&
|
||||||
|
(state == Qt::ApplicationSuspended ||
|
||||||
|
state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) {
|
||||||
|
OnPauseGame();
|
||||||
|
}
|
||||||
|
if (ui.action_Start->isEnabled() && state == Qt::ApplicationActive) {
|
||||||
|
OnStartGame();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GMainWindow::ConnectWidgetEvents() {
|
void GMainWindow::ConnectWidgetEvents() {
|
||||||
connect(game_list, &GameList::GameChosen, this, &GMainWindow::OnGameListLoadFile);
|
connect(game_list, &GameList::GameChosen, this, &GMainWindow::OnGameListLoadFile);
|
||||||
connect(game_list, &GameList::OpenDirectory, this, &GMainWindow::OnGameListOpenDirectory);
|
connect(game_list, &GameList::OpenDirectory, this, &GMainWindow::OnGameListOpenDirectory);
|
||||||
|
@ -2013,6 +2024,10 @@ int main(int argc, char* argv[]) {
|
||||||
Core::System::GetInstance().RegisterSoftwareKeyboard(std::make_shared<QtKeyboard>(main_window));
|
Core::System::GetInstance().RegisterSoftwareKeyboard(std::make_shared<QtKeyboard>(main_window));
|
||||||
|
|
||||||
main_window.show();
|
main_window.show();
|
||||||
|
|
||||||
|
QObject::connect(&app, &QGuiApplication::applicationStateChanged, &main_window,
|
||||||
|
&GMainWindow::OnLoseFocus);
|
||||||
|
|
||||||
int result = app.exec();
|
int result = app.exec();
|
||||||
detached_tasks.WaitForAllTasks();
|
detached_tasks.WaitForAllTasks();
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -68,6 +68,8 @@ public:
|
||||||
GameList* game_list;
|
GameList* game_list;
|
||||||
std::unique_ptr<DiscordRPC::DiscordInterface> discord_rpc;
|
std::unique_ptr<DiscordRPC::DiscordInterface> discord_rpc;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void OnLoseFocus(Qt::ApplicationState state);
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Reference in New Issue