mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Defer update prompt if emulating, and show no update found on explicit click
This commit is contained in:
		
							parent
							
								
									2e6c80d1aa
								
							
						
					
					
						commit
						7361ee9750
					
				
					 2 changed files with 35 additions and 0 deletions
				
			
		|  | @ -390,6 +390,7 @@ void GMainWindow::OnDisplayTitleBars(bool show) { | |||
| } | ||||
| 
 | ||||
| void GMainWindow::OnCheckForUpdates() { | ||||
|     explicit_update_check = true; | ||||
|     CheckForUpdates(); | ||||
| } | ||||
| 
 | ||||
|  | @ -409,10 +410,29 @@ void GMainWindow::OnUpdateFound(bool found, bool error) { | |||
| 
 | ||||
|     if (!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; | ||||
|     } | ||||
| 
 | ||||
|     LOG_INFO(Frontend, "Update found!"); | ||||
|     explicit_update_check = false; | ||||
| 
 | ||||
|     ShowUpdatePrompt(); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::ShowUpdatePrompt() { | ||||
|     auto result = QMessageBox::question( | ||||
|         this, tr("Update available!"), | ||||
|         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() { | ||||
|     updater->LaunchUI(); | ||||
| } | ||||
|  | @ -584,6 +609,11 @@ void GMainWindow::ShutdownGame() { | |||
|     emu_frametime_label->setVisible(false); | ||||
| 
 | ||||
|     emulation_running = false; | ||||
| 
 | ||||
|     if (defer_update_prompt) { | ||||
|         defer_update_prompt = false; | ||||
|         ShowUpdatePrompt(); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::StoreRecentFile(const QString& filename) { | ||||
|  |  | |||
|  | @ -83,6 +83,8 @@ private: | |||
| 
 | ||||
|     void ShowCallouts(); | ||||
|     void ShowUpdaterWidgets(); | ||||
|     void ShowUpdatePrompt(); | ||||
|     void ShowNoUpdatePrompt(); | ||||
|     void CheckForUpdates(); | ||||
| 
 | ||||
|     /**
 | ||||
|  | @ -173,6 +175,9 @@ private: | |||
|     WaitTreeWidget* waitTreeWidget; | ||||
|     Updater* updater; | ||||
| 
 | ||||
|     bool explicit_update_check = false; | ||||
|     bool defer_update_prompt = false; | ||||
| 
 | ||||
|     QAction* actions_recent_files[max_recent_files_item]; | ||||
| 
 | ||||
| protected: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue