mirror of
https://github.com/citra-emu/citra.git
synced 2024-12-18 09:10:05 +00:00
Defer update prompt if emulating, and show no update found on explicit click
This commit is contained in:
parent
2e6c80d1aa
commit
7361ee9750
@ -390,6 +390,7 @@ void GMainWindow::OnDisplayTitleBars(bool show) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::OnCheckForUpdates() {
|
void GMainWindow::OnCheckForUpdates() {
|
||||||
|
explicit_update_check = true;
|
||||||
CheckForUpdates();
|
CheckForUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -409,10 +410,29 @@ void GMainWindow::OnUpdateFound(bool found, bool error) {
|
|||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
LOG_INFO(Frontend, "No updates found");
|
LOG_INFO(Frontend, "No updates found");
|
||||||
|
|
||||||
|
// If the user explicitly clicked the "Check for Updates" button, we are
|
||||||
|
// going to want to show them a prompt anyway.
|
||||||
|
if (explicit_update_check) {
|
||||||
|
explicit_update_check = false;
|
||||||
|
ShowNoUpdatePrompt();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (emulation_running && !explicit_update_check) {
|
||||||
|
LOG_INFO(Frontend, "Update found, deferring as game is running");
|
||||||
|
defer_update_prompt = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_INFO(Frontend, "Update found!");
|
LOG_INFO(Frontend, "Update found!");
|
||||||
|
explicit_update_check = false;
|
||||||
|
|
||||||
|
ShowUpdatePrompt();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GMainWindow::ShowUpdatePrompt() {
|
||||||
auto result = QMessageBox::question(
|
auto result = QMessageBox::question(
|
||||||
this, tr("Update available!"),
|
this, tr("Update available!"),
|
||||||
tr("An update for Citra is available. Do you wish to install it now?<br /><br />"
|
tr("An update for Citra is available. Do you wish to install it now?<br /><br />"
|
||||||
@ -425,6 +445,11 @@ void GMainWindow::OnUpdateFound(bool found, bool error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMainWindow::ShowNoUpdatePrompt() {
|
||||||
|
QMessageBox::information(this, tr("No update found"), tr("No update has been found for Citra."),
|
||||||
|
QMessageBox::Ok, QMessageBox::Ok);
|
||||||
|
}
|
||||||
|
|
||||||
void GMainWindow::OnOpenUpdater() {
|
void GMainWindow::OnOpenUpdater() {
|
||||||
updater->LaunchUI();
|
updater->LaunchUI();
|
||||||
}
|
}
|
||||||
@ -584,6 +609,11 @@ void GMainWindow::ShutdownGame() {
|
|||||||
emu_frametime_label->setVisible(false);
|
emu_frametime_label->setVisible(false);
|
||||||
|
|
||||||
emulation_running = false;
|
emulation_running = false;
|
||||||
|
|
||||||
|
if (defer_update_prompt) {
|
||||||
|
defer_update_prompt = false;
|
||||||
|
ShowUpdatePrompt();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GMainWindow::StoreRecentFile(const QString& filename) {
|
void GMainWindow::StoreRecentFile(const QString& filename) {
|
||||||
|
@ -83,6 +83,8 @@ private:
|
|||||||
|
|
||||||
void ShowCallouts();
|
void ShowCallouts();
|
||||||
void ShowUpdaterWidgets();
|
void ShowUpdaterWidgets();
|
||||||
|
void ShowUpdatePrompt();
|
||||||
|
void ShowNoUpdatePrompt();
|
||||||
void CheckForUpdates();
|
void CheckForUpdates();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -173,6 +175,9 @@ private:
|
|||||||
WaitTreeWidget* waitTreeWidget;
|
WaitTreeWidget* waitTreeWidget;
|
||||||
Updater* updater;
|
Updater* updater;
|
||||||
|
|
||||||
|
bool explicit_update_check = false;
|
||||||
|
bool defer_update_prompt = false;
|
||||||
|
|
||||||
QAction* actions_recent_files[max_recent_files_item];
|
QAction* actions_recent_files[max_recent_files_item];
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
Reference in New Issue
Block a user