mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Instead of there being an "Abort/Continue" prompt when a savestate fails to save or load, it just brings up a warning box. (#6236)
* This fixes #6041 by changing OnCoreError. Instead of there being an "Abort/Continue" prompt when a savestate fails to save or load, it just brings up a warning box. I also changed "Abort/Continue" to "Quit Game/Continue" for better clarity * Fixed formatting
This commit is contained in:
		
							parent
							
								
									ad2cbe2b26
								
							
						
					
					
						commit
						bd1cabce86
					
				
					 1 changed files with 28 additions and 16 deletions
				
			
		|  | @ -2269,6 +2269,7 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det | ||||||
|     QString status_message; |     QString status_message; | ||||||
| 
 | 
 | ||||||
|     QString title, message; |     QString title, message; | ||||||
|  |     QMessageBox::Icon error_severity_icon; | ||||||
|     if (result == Core::System::ResultStatus::ErrorSystemFiles) { |     if (result == Core::System::ResultStatus::ErrorSystemFiles) { | ||||||
|         const QString common_message = |         const QString common_message = | ||||||
|             tr("%1 is missing. Please <a " |             tr("%1 is missing. Please <a " | ||||||
|  | @ -2284,9 +2285,11 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det | ||||||
| 
 | 
 | ||||||
|         title = tr("System Archive Not Found"); |         title = tr("System Archive Not Found"); | ||||||
|         status_message = tr("System Archive Missing"); |         status_message = tr("System Archive Missing"); | ||||||
|  |         error_severity_icon = QMessageBox::Icon::Critical; | ||||||
|     } else if (result == Core::System::ResultStatus::ErrorSavestate) { |     } else if (result == Core::System::ResultStatus::ErrorSavestate) { | ||||||
|         title = tr("Save/load Error"); |         title = tr("Save/load Error"); | ||||||
|         message = QString::fromStdString(details); |         message = QString::fromStdString(details); | ||||||
|  |         error_severity_icon = QMessageBox::Icon::Warning; | ||||||
|     } else { |     } else { | ||||||
|         title = tr("Fatal Error"); |         title = tr("Fatal Error"); | ||||||
|         message = |         message = | ||||||
|  | @ -2295,30 +2298,39 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det | ||||||
|                "the log</a> for details." |                "the log</a> for details." | ||||||
|                "<br/>Continuing emulation may result in crashes and bugs."); |                "<br/>Continuing emulation may result in crashes and bugs."); | ||||||
|         status_message = tr("Fatal Error encountered"); |         status_message = tr("Fatal Error encountered"); | ||||||
|  |         error_severity_icon = QMessageBox::Icon::Critical; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     QMessageBox message_box; |     QMessageBox message_box; | ||||||
|     message_box.setWindowTitle(title); |     message_box.setWindowTitle(title); | ||||||
|     message_box.setText(message); |     message_box.setText(message); | ||||||
|     message_box.setIcon(QMessageBox::Icon::Critical); |     message_box.setIcon(error_severity_icon); | ||||||
|     message_box.addButton(tr("Continue"), QMessageBox::RejectRole); |     if (error_severity_icon == QMessageBox::Icon::Critical) { | ||||||
|     QPushButton* abort_button = message_box.addButton(tr("Abort"), QMessageBox::AcceptRole); |         message_box.addButton(tr("Continue"), QMessageBox::RejectRole); | ||||||
|     if (result != Core::System::ResultStatus::ShutdownRequested) |         QPushButton* abort_button = message_box.addButton(tr("Quit Game"), QMessageBox::AcceptRole); | ||||||
|         message_box.exec(); |         if (result != Core::System::ResultStatus::ShutdownRequested) | ||||||
|  |             message_box.exec(); | ||||||
| 
 | 
 | ||||||
|     if (result == Core::System::ResultStatus::ShutdownRequested || |         if (result == Core::System::ResultStatus::ShutdownRequested || | ||||||
|         message_box.clickedButton() == abort_button) { |             message_box.clickedButton() == abort_button) { | ||||||
|         if (emu_thread) { |             if (emu_thread) { | ||||||
|             ShutdownGame(); |                 ShutdownGame(); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     } else { |     } else { | ||||||
|         // Only show the message if the game is still running.
 |         // This block should run when the error isn't too big of a deal
 | ||||||
|         if (emu_thread) { |         // e.g. when a save state can't be saved or loaded
 | ||||||
|             emu_thread->SetRunning(true); |         message_box.addButton(tr("OK"), QMessageBox::RejectRole); | ||||||
|             message_label->setText(status_message); |         message_box.exec(); | ||||||
|             message_label->setVisible(true); |     } | ||||||
|             message_label_used_for_movie = false; | 
 | ||||||
|         } |     // Only show the message if the game is still running.
 | ||||||
|  |     if (emu_thread) { | ||||||
|  |         emu_thread->SetRunning(true); | ||||||
|  |         message_label->setText(status_message); | ||||||
|  |         message_label->setVisible(true); | ||||||
|  |         message_label_used_for_movie = false; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue