mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	QT: Implement themed icons (#3554)
* implement themed icons * fix theme search paths
This commit is contained in:
		
							parent
							
								
									7abfdb164b
								
							
						
					
					
						commit
						05cf7fe70a
					
				
					 13 changed files with 58 additions and 16 deletions
				
			
		|  | @ -2,6 +2,7 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include <QIcon> | ||||
| #include "aboutdialog.h" | ||||
| #include "common/scm_rev.h" | ||||
| #include "ui_aboutdialog.h" | ||||
|  | @ -10,6 +11,7 @@ AboutDialog::AboutDialog(QWidget* parent) | |||
|     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint), | ||||
|       ui(new Ui::AboutDialog) { | ||||
|     ui->setupUi(this); | ||||
|     ui->labelLogo->setPixmap(QIcon::fromTheme("citra").pixmap(200)); | ||||
|     ui->labelBuildInfo->setText(ui->labelBuildInfo->text().arg( | ||||
|         Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc)); | ||||
| } | ||||
|  |  | |||
|  | @ -2,6 +2,7 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include <QIcon> | ||||
| #include <QMessageBox> | ||||
| #include "citra_qt/configuration/configure_web.h" | ||||
| #include "core/settings.h" | ||||
|  | @ -67,12 +68,12 @@ void ConfigureWeb::RefreshTelemetryID() { | |||
| void ConfigureWeb::OnLoginChanged() { | ||||
|     if (ui->edit_username->text().isEmpty() && ui->edit_token->text().isEmpty()) { | ||||
|         user_verified = true; | ||||
|         ui->label_username_verified->setPixmap(QPixmap(":/icons/checked.png")); | ||||
|         ui->label_token_verified->setPixmap(QPixmap(":/icons/checked.png")); | ||||
|         ui->label_username_verified->setPixmap(QIcon::fromTheme("checked").pixmap(16)); | ||||
|         ui->label_token_verified->setPixmap(QIcon::fromTheme("checked").pixmap(16)); | ||||
|     } else { | ||||
|         user_verified = false; | ||||
|         ui->label_username_verified->setPixmap(QPixmap(":/icons/failed.png")); | ||||
|         ui->label_token_verified->setPixmap(QPixmap(":/icons/failed.png")); | ||||
|         ui->label_username_verified->setPixmap(QIcon::fromTheme("failed").pixmap(16)); | ||||
|         ui->label_token_verified->setPixmap(QIcon::fromTheme("failed").pixmap(16)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -89,11 +90,11 @@ void ConfigureWeb::OnLoginVerified() { | |||
|     ui->button_verify_login->setText(tr("Verify")); | ||||
|     if (verified.get()) { | ||||
|         user_verified = true; | ||||
|         ui->label_username_verified->setPixmap(QPixmap(":/icons/checked.png")); | ||||
|         ui->label_token_verified->setPixmap(QPixmap(":/icons/checked.png")); | ||||
|         ui->label_username_verified->setPixmap(QIcon::fromTheme("checked").pixmap(16)); | ||||
|         ui->label_token_verified->setPixmap(QIcon::fromTheme("checked").pixmap(16)); | ||||
|     } else { | ||||
|         ui->label_username_verified->setPixmap(QPixmap(":/icons/failed.png")); | ||||
|         ui->label_token_verified->setPixmap(QPixmap(":/icons/failed.png")); | ||||
|         ui->label_username_verified->setPixmap(QIcon::fromTheme("failed").pixmap(16)); | ||||
|         ui->label_token_verified->setPixmap(QIcon::fromTheme("failed").pixmap(16)); | ||||
|         QMessageBox::critical( | ||||
|             this, tr("Verification failed"), | ||||
|             tr("Verification failed. Check that you have entered your username and token " | ||||
|  |  | |||
|  | @ -130,6 +130,7 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) { | |||
| 
 | ||||
|     game_list->PopulateAsync(UISettings::values.gamedir, UISettings::values.gamedir_deepscan); | ||||
| 
 | ||||
|     default_theme_paths = QIcon::themeSearchPaths(); | ||||
|     UpdateUITheme(); | ||||
| 
 | ||||
|     // Show one-time "callout" messages to the user
 | ||||
|  | @ -1226,7 +1227,9 @@ void GMainWindow::filterBarSetChecked(bool state) { | |||
| } | ||||
| 
 | ||||
| void GMainWindow::UpdateUITheme() { | ||||
|     if (UISettings::values.theme != UISettings::themes[0].second) { | ||||
|     QStringList theme_paths(default_theme_paths); | ||||
|     if (UISettings::values.theme != UISettings::themes[0].second && | ||||
|         !UISettings::values.theme.isEmpty()) { | ||||
|         QString theme_uri(":" + UISettings::values.theme + "/style.qss"); | ||||
|         QFile f(theme_uri); | ||||
|         if (!f.exists()) { | ||||
|  | @ -1237,10 +1240,15 @@ void GMainWindow::UpdateUITheme() { | |||
|             qApp->setStyleSheet(ts.readAll()); | ||||
|             GMainWindow::setStyleSheet(ts.readAll()); | ||||
|         } | ||||
|         theme_paths.append(QStringList{":/icons/default", ":/icons/" + UISettings::values.theme}); | ||||
|         QIcon::setThemeName(":/icons/" + UISettings::values.theme); | ||||
|     } else { | ||||
|         qApp->setStyleSheet(""); | ||||
|         GMainWindow::setStyleSheet(""); | ||||
|         theme_paths.append(QStringList{":/icons/default"}); | ||||
|         QIcon::setThemeName(":/icons/default"); | ||||
|     } | ||||
|     QIcon::setThemeSearchPaths(theme_paths); | ||||
| } | ||||
| 
 | ||||
| void GMainWindow::LoadTranslation() { | ||||
|  |  | |||
|  | @ -206,6 +206,9 @@ private: | |||
| 
 | ||||
|     QTranslator translator; | ||||
| 
 | ||||
|     // stores default icon theme search paths for the platform
 | ||||
|     QStringList default_theme_paths; | ||||
| 
 | ||||
| protected: | ||||
|     void dropEvent(QDropEvent* event) override; | ||||
|     void dragEnterEvent(QDragEnterEvent* event) override; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue