| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -48,14 +48,17 @@ SettingsWindow::SettingsWindow() : QWidget()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  connectUi();
 | 
					 | 
					 | 
					 | 
					  connectUi();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					SettingsWindow::SettingsWindow(const std::string& path, std::string serial, GameHash hash, DiscRegion region,
 | 
					 | 
					 | 
					 | 
					SettingsWindow::SettingsWindow(const std::string& path, std::string title, std::string serial, GameHash hash,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                               const GameDatabase::Entry* entry, std::unique_ptr<INISettingsInterface> sif)
 | 
					 | 
					 | 
					 | 
					                               DiscRegion region, const GameDatabase::Entry* entry,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  : QWidget(), m_sif(std::move(sif)), m_database_entry(entry), m_serial(serial), m_hash(hash)
 | 
					 | 
					 | 
					 | 
					                               std::unique_ptr<INISettingsInterface> sif)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  : QWidget(), m_sif(std::move(sif)), m_database_entry(entry), m_title(std::move(title)), m_serial(std::move(serial)),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    m_hash(hash)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  m_ui.setupUi(this);
 | 
					 | 
					 | 
					 | 
					  m_ui.setupUi(this);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  setGameTitle(std::move(title));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
 | 
					 | 
					 | 
					 | 
					  setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  addWidget(m_game_summary = new GameSummaryWidget(path, serial, region, entry, this, m_ui.settingsContainer),
 | 
					 | 
					 | 
					 | 
					  addWidget(m_game_summary = new GameSummaryWidget(path, m_serial, region, entry, this, m_ui.settingsContainer),
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            tr("Summary"), QStringLiteral("file-list-line"),
 | 
					 | 
					 | 
					 | 
					            tr("Summary"), QStringLiteral("file-list-line"),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            tr("<strong>Summary</strong><hr>This page shows information about the selected game, and allows you to "
 | 
					 | 
					 | 
					 | 
					            tr("<strong>Summary</strong><hr>This page shows information about the selected game, and allows you to "
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					               "validate your disc was dumped correctly."));
 | 
					 | 
					 | 
					 | 
					               "validate your disc was dumped correctly."));
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -655,14 +658,22 @@ void SettingsWindow::saveAndReloadGameSettings()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  g_emu_thread->reloadGameSettings(false);
 | 
					 | 
					 | 
					 | 
					  g_emu_thread->reloadGameSettings(false);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					void SettingsWindow::setGameTitle(std::string title)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  m_title = std::move(title);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  const QString window_title = tr("%1 [%2]").arg(QString::fromStdString(m_title)).arg(QString::fromStdString(m_serial));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  setWindowTitle(window_title);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					bool SettingsWindow::hasGameTrait(GameDatabase::Trait trait)
 | 
					 | 
					 | 
					 | 
					bool SettingsWindow::hasGameTrait(GameDatabase::Trait trait)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  return (m_database_entry && m_database_entry->HasTrait(trait) &&
 | 
					 | 
					 | 
					 | 
					  return (m_database_entry && m_database_entry->HasTrait(trait) &&
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          m_sif->GetBoolValue("Main", "ApplyCompatibilitySettings", true));
 | 
					 | 
					 | 
					 | 
					          m_sif->GetBoolValue("Main", "ApplyCompatibilitySettings", true));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path, const std::string& title,
 | 
					 | 
					 | 
					 | 
					SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path, std::string title, std::string serial,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                         std::string serial, GameHash hash, DiscRegion region,
 | 
					 | 
					 | 
					 | 
					                                                         GameHash hash, DiscRegion region,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                         const char* category /* = nullptr */)
 | 
					 | 
					 | 
					 | 
					                                                         const char* category /* = nullptr */)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  const GameDatabase::Entry* dentry = nullptr;
 | 
					 | 
					 | 
					 | 
					  const GameDatabase::Entry* dentry = nullptr;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -706,7 +717,8 @@ SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (FileSystem::FileExists(sif->GetFileName().c_str()))
 | 
					 | 
					 | 
					 | 
					  if (FileSystem::FileExists(sif->GetFileName().c_str()))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    sif->Load();
 | 
					 | 
					 | 
					 | 
					    sif->Load();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  SettingsWindow* dialog = new SettingsWindow(path, std::move(real_serial), hash, region, dentry, std::move(sif));
 | 
					 | 
					 | 
					 | 
					  SettingsWindow* dialog =
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    new SettingsWindow(path, std::move(title), std::move(real_serial), hash, region, dentry, std::move(sif));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  dialog->show();
 | 
					 | 
					 | 
					 | 
					  dialog->show();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  if (category)
 | 
					 | 
					 | 
					 | 
					  if (category)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    dialog->setCategory(category);
 | 
					 | 
					 | 
					 | 
					    dialog->setCategory(category);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |