| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | // Copyright 2015 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2+
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | #include <QGuiApplication>
 | 
					
						
							|  |  |  | #include <QIcon>
 | 
					
						
							|  |  |  | #include <QPixmap>
 | 
					
						
							|  |  |  | #include <QScreen>
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "Common/FileUtil.h"
 | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  | #include "Core/ConfigManager.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | #include "DolphinQt2/Resources.h"
 | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | #include "DolphinQt2/Settings.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-26 08:13:15 +02:00
										 |  |  | #ifdef _WIN32
 | 
					
						
							|  |  |  | #include "DolphinQt2/QtUtils/WinIconHelper.h"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | QList<QPixmap> Resources::m_platforms; | 
					
						
							|  |  |  | QList<QPixmap> Resources::m_countries; | 
					
						
							|  |  |  | QList<QPixmap> Resources::m_misc; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | QIcon Resources::GetIcon(const QString& name, const QString& dir) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  |   QString base_path = dir + QStringLiteral("/") + name; | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   const auto dpr = QGuiApplication::primaryScreen()->devicePixelRatio(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QIcon icon(base_path.append(QStringLiteral(".png"))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (dpr > 2) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     QPixmap pixmap(base_path.append(QStringLiteral("@4x.png"))); | 
					
						
							|  |  |  |     if (!pixmap.isNull()) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       pixmap.setDevicePixelRatio(4.0); | 
					
						
							|  |  |  |       icon.addPixmap(pixmap); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return icon; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QPixmap Resources::GetPixmap(const QString& name, const QString& dir) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   const auto icon = GetIcon(name, dir); | 
					
						
							|  |  |  |   return icon.pixmap(icon.availableSizes()[0]); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  | static QString GetCurrentThemeDir() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   return QString::fromStdString(File::GetThemeDir(SConfig::GetInstance().theme_name)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static QString GetResourcesDir() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   return QString::fromStdString(File::GetSysDirectory() + "Resources"); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | QIcon Resources::GetScaledIcon(const std::string& name) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  |   return GetIcon(QString::fromStdString(name), GetResourcesDir()); | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QIcon Resources::GetScaledThemeIcon(const std::string& name) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  |   return GetIcon(QString::fromStdString(name), GetCurrentThemeDir()); | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QPixmap Resources::GetScaledPixmap(const std::string& name) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-06-22 15:11:53 -07:00
										 |  |  |   return GetPixmap(QString::fromStdString(name), GetResourcesDir()); | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | void Resources::Init() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-05-30 22:42:21 +02:00
										 |  |  |   for (const std::string& platform : | 
					
						
							|  |  |  |        {"Platform_Gamecube", "Platform_Wii", "Platform_Wad", "Platform_File"}) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     m_platforms.append(GetScaledPixmap(platform)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   for (const std::string& country : | 
					
						
							|  |  |  |        {"Flag_Europe", "Flag_Japan", "Flag_USA", "Flag_Australia", "Flag_France", "Flag_Germany", | 
					
						
							|  |  |  |         "Flag_Italy", "Flag_Korea", "Flag_Netherlands", "Flag_Russia", "Flag_Spain", "Flag_Taiwan", | 
					
						
							|  |  |  |         "Flag_International", "Flag_Unknown"}) | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     m_countries.append(GetScaledPixmap(country)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   m_misc.append(GetScaledPixmap("nobanner")); | 
					
						
							|  |  |  |   m_misc.append(GetScaledPixmap("dolphin_logo")); | 
					
						
							|  |  |  |   m_misc.append(GetScaledPixmap("Dolphin")); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QPixmap Resources::GetPlatform(int platform) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   return m_platforms[platform]; | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QPixmap Resources::GetCountry(int country) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   return m_countries[country]; | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | QPixmap Resources::GetMisc(int id) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   return m_misc[id]; | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-03-26 08:13:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | QIcon Resources::GetAppIcon() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   QIcon icon; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef _WIN32
 | 
					
						
							|  |  |  |   icon = WinIconHelper::GetNativeIcon(); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |   icon.addPixmap(GetScaledPixmap("dolphin_logo")); | 
					
						
							|  |  |  |   icon.addPixmap(GetScaledPixmap("Dolphin")); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return icon; | 
					
						
							|  |  |  | } |