| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -48,14 +48,17 @@ SettingsWindow::SettingsWindow() : QWidget()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  connectUi();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				SettingsWindow::SettingsWindow(const std::string& path, std::string serial, GameHash hash, DiscRegion region,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               const GameDatabase::Entry* entry, std::unique_ptr<INISettingsInterface> sif)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  : QWidget(), m_sif(std::move(sif)), m_database_entry(entry), m_serial(serial), m_hash(hash)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				SettingsWindow::SettingsWindow(const std::string& path, std::string title, std::string serial, GameHash hash,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               DiscRegion region, const GameDatabase::Entry* entry,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                               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);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  setGameTitle(std::move(title));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  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("<strong>Summary</strong><hr>This page shows information about the selected game, and allows you to "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				               "validate your disc was dumped correctly."));
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -655,14 +658,22 @@ void SettingsWindow::saveAndReloadGameSettings()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  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)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return (m_database_entry && m_database_entry->HasTrait(trait) &&
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				          m_sif->GetBoolValue("Main", "ApplyCompatibilitySettings", true));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path, const std::string& title,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                         std::string serial, GameHash hash, DiscRegion region,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path, std::string title, std::string serial,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                         GameHash hash, DiscRegion region,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                         const char* category /* = nullptr */)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				{
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  const GameDatabase::Entry* dentry = nullptr;
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -706,7 +717,8 @@ SettingsWindow* SettingsWindow::openGamePropertiesDialog(const std::string& path
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if (FileSystem::FileExists(sif->GetFileName().c_str()))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    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();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if (category)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    dialog->setCategory(category);
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |