From ba78714d4fac6a6e5a9fe3100a4be6347c26086d Mon Sep 17 00:00:00 2001 From: Davide Pesavento Date: Sun, 8 Jun 2025 17:21:22 -0400 Subject: [PATCH] Qt: More consistent icon handling --- src/duckstation-qt/audiosettingswidget.cpp | 2 +- src/duckstation-qt/coverdownloaddialog.cpp | 6 +++--- src/duckstation-qt/coverdownloaddialog.ui | 10 +--------- src/duckstation-qt/debuggermodels.cpp | 4 ++-- src/duckstation-qt/debuggerwindow.cpp | 8 ++++---- src/duckstation-qt/gamecheatsettingswidget.cpp | 10 +++++----- src/duckstation-qt/gamelistwidget.cpp | 2 +- src/duckstation-qt/graphicssettingswidget.cpp | 2 +- src/duckstation-qt/isobrowserwindow.cpp | 2 +- src/duckstation-qt/memorycardeditorwindow.cpp | 2 +- src/duckstation-qt/qthost.cpp | 8 ++++---- 11 files changed, 24 insertions(+), 32 deletions(-) diff --git a/src/duckstation-qt/audiosettingswidget.cpp b/src/duckstation-qt/audiosettingswidget.cpp index fdc5d7263..056305260 100644 --- a/src/duckstation-qt/audiosettingswidget.cpp +++ b/src/duckstation-qt/audiosettingswidget.cpp @@ -285,7 +285,7 @@ void AudioSettingsWidget::onStretchSettingsClicked() QDialog dlg(QtUtils::GetRootWidget(this)); Ui::AudioStretchSettingsDialog dlgui; dlgui.setupUi(&dlg); - dlgui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("volume-up-line")).pixmap(32, 32)); + dlgui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("volume-up-line")).pixmap(32)); SettingsInterface* sif = m_dialog->getSettingsInterface(); SettingWidgetBinder::BindWidgetToIntSetting(sif, dlgui.sequenceLength, "Audio", "StretchSequenceLengthMS", diff --git a/src/duckstation-qt/coverdownloaddialog.cpp b/src/duckstation-qt/coverdownloaddialog.cpp index 790dd7abf..70185440d 100644 --- a/src/duckstation-qt/coverdownloaddialog.cpp +++ b/src/duckstation-qt/coverdownloaddialog.cpp @@ -12,7 +12,7 @@ CoverDownloadDialog::CoverDownloadDialog(QWidget* parent /*= nullptr*/) : QDialo { m_ui.setupUi(this); setWindowIcon(QtHost::GetAppIcon()); - m_ui.coverIcon->setPixmap(QIcon::fromTheme("artboard-2-line").pixmap(32)); + m_ui.coverIcon->setPixmap(QIcon::fromTheme(QStringLiteral("artboard-2-line")).pixmap(32)); updateEnabled(); connect(m_ui.start, &QPushButton::clicked, this, &CoverDownloadDialog::onStartClicked); @@ -61,7 +61,7 @@ void CoverDownloadDialog::onDownloadComplete() } updateEnabled(); - + m_ui.status->setText(tr("Download complete.")); } @@ -123,4 +123,4 @@ CoverDownloadDialog::CoverDownloadThread::~CoverDownloadThread() = default; void CoverDownloadDialog::CoverDownloadThread::runAsync() { GameList::DownloadCovers(m_urls, m_use_serials, this); -} \ No newline at end of file +} diff --git a/src/duckstation-qt/coverdownloaddialog.ui b/src/duckstation-qt/coverdownloaddialog.ui index 1882c2a89..05c420d36 100644 --- a/src/duckstation-qt/coverdownloaddialog.ui +++ b/src/duckstation-qt/coverdownloaddialog.ui @@ -21,12 +21,6 @@ - - - - - :/icons/black/svg/artboard-2-line.svg - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -122,8 +116,6 @@ - - - + diff --git a/src/duckstation-qt/debuggermodels.cpp b/src/duckstation-qt/debuggermodels.cpp index b2a029039..8fa2db694 100644 --- a/src/duckstation-qt/debuggermodels.cpp +++ b/src/duckstation-qt/debuggermodels.cpp @@ -23,8 +23,8 @@ static constexpr u32 STACK_VALUE_SIZE = sizeof(u32); DebuggerCodeModel::DebuggerCodeModel(QObject* parent /*= nullptr*/) : QAbstractTableModel(parent) { resetCodeView(0); - m_pc_pixmap = QIcon(QStringLiteral(":/icons/debug-pc.png")).pixmap(QSize(12, 12)); - m_breakpoint_pixmap = QIcon(QStringLiteral(":/icons/media-record.png")).pixmap(QSize(12, 12)); + m_pc_pixmap = QIcon(QStringLiteral(":/icons/debug-pc.png")).pixmap(12); + m_breakpoint_pixmap = QIcon(QStringLiteral(":/icons/media-record.png")).pixmap(12); } DebuggerCodeModel::~DebuggerCodeModel() diff --git a/src/duckstation-qt/debuggerwindow.cpp b/src/duckstation-qt/debuggerwindow.cpp index 9a26d4bad..934b87add 100644 --- a/src/duckstation-qt/debuggerwindow.cpp +++ b/src/duckstation-qt/debuggerwindow.cpp @@ -310,10 +310,10 @@ void DebuggerWindow::onCodeViewContextMenuRequested(const QPoint& pt) menu.addAction(QStringLiteral("0x%1").arg(static_cast(address), 8, 16, QChar('0')))->setEnabled(false); menu.addSeparator(); - QAction* action = menu.addAction(QIcon::fromTheme("debug-toggle-breakpoint"), tr("Toggle &Breakpoint")); + QAction* action = menu.addAction(QIcon::fromTheme(QStringLiteral("debug-toggle-breakpoint")), tr("Toggle &Breakpoint")); connect(action, &QAction::triggered, this, [this, address]() { toggleBreakpoint(address); }); - action = menu.addAction(QIcon::fromTheme("debugger-go-to-cursor"), tr("&Run To Cursor")); + action = menu.addAction(QIcon::fromTheme(QStringLiteral("debugger-go-to-cursor")), tr("&Run To Cursor")); connect(action, &QAction::triggered, this, [address]() { Host::RunOnCPUThread([address]() { CPU::AddBreakpoint(CPU::BreakpointType::Execute, address, true, true); @@ -322,10 +322,10 @@ void DebuggerWindow::onCodeViewContextMenuRequested(const QPoint& pt) }); menu.addSeparator(); - action = menu.addAction(QIcon::fromTheme("debugger-go-to-address"), tr("View in &Dump")); + action = menu.addAction(QIcon::fromTheme(QStringLiteral("debugger-go-to-address")), tr("View in &Dump")); connect(action, &QAction::triggered, this, [this, address]() { scrollToMemoryAddress(address); }); - action = menu.addAction(QIcon::fromTheme("debug-trace-line"), tr("&Follow Load/Store")); + action = menu.addAction(QIcon::fromTheme(QStringLiteral("debug-trace-line")), tr("&Follow Load/Store")); connect(action, &QAction::triggered, this, [this, address]() { tryFollowLoadStore(address); }); menu.exec(m_ui.codeView->mapToGlobal(pt)); diff --git a/src/duckstation-qt/gamecheatsettingswidget.cpp b/src/duckstation-qt/gamecheatsettingswidget.cpp index c31227565..ed26f80f4 100644 --- a/src/duckstation-qt/gamecheatsettingswidget.cpp +++ b/src/duckstation-qt/gamecheatsettingswidget.cpp @@ -345,20 +345,20 @@ void GameCheatSettingsWidget::onCheatListContextMenuRequested(const QPoint& pos) QMenu context_menu(m_ui.cheatList); - QAction* add = context_menu.addAction(QIcon::fromTheme("add-line"), tr("Add Cheat...")); + QAction* add = context_menu.addAction(QIcon::fromTheme(QStringLiteral("add-line")), tr("Add Cheat...")); connect(add, &QAction::triggered, this, &GameCheatSettingsWidget::newCode); - QAction* edit = context_menu.addAction(QIcon::fromTheme("mag-line"), tr("Edit Cheat...")); + QAction* edit = context_menu.addAction(QIcon::fromTheme(QStringLiteral("mag-line")), tr("Edit Cheat...")); edit->setEnabled(selected != nullptr); connect(edit, &QAction::triggered, this, [this, &selected_code]() { editCode(selected_code); }); - QAction* remove = context_menu.addAction(QIcon::fromTheme("minus-line"), tr("Remove Cheat")); + QAction* remove = context_menu.addAction(QIcon::fromTheme(QStringLiteral("minus-line")), tr("Remove Cheat")); remove->setEnabled(selected != nullptr); connect(remove, &QAction::triggered, this, [this, &selected_code]() { removeCode(selected_code, true); }); context_menu.addSeparator(); - QAction* disable_all = context_menu.addAction(QIcon::fromTheme("chat-off-line"), tr("Disable All Cheats")); + QAction* disable_all = context_menu.addAction(QIcon::fromTheme(QStringLiteral("chat-off-line")), tr("Disable All Cheats")); connect(disable_all, &QAction::triggered, this, &GameCheatSettingsWidget::disableAllCheats); - QAction* reload = context_menu.addAction(QIcon::fromTheme("refresh-line"), tr("Reload Cheats")); + QAction* reload = context_menu.addAction(QIcon::fromTheme(QStringLiteral("refresh-line")), tr("Reload Cheats")); connect(reload, &QAction::triggered, this, &GameCheatSettingsWidget::onReloadClicked); context_menu.exec(m_ui.cheatList->mapToGlobal(pos)); diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index b11a01728..4e21ac345 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -881,7 +881,7 @@ bool GameListModel::lessThan(const GameList::Entry* left, const GameList::Entry* void GameListModel::loadThemeSpecificImages() { for (u32 i = 0; i < static_cast(GameList::EntryType::MaxCount); i++) - m_type_pixmaps[i] = QtUtils::GetIconForEntryType(static_cast(i)).pixmap(QSize(24, 24)); + m_type_pixmaps[i] = QtUtils::GetIconForEntryType(static_cast(i)).pixmap(24); } void GameListModel::loadCommonImages() diff --git a/src/duckstation-qt/graphicssettingswidget.cpp b/src/duckstation-qt/graphicssettingswidget.cpp index 51a5d3f01..2edce53ec 100644 --- a/src/duckstation-qt/graphicssettingswidget.cpp +++ b/src/duckstation-qt/graphicssettingswidget.cpp @@ -1250,7 +1250,7 @@ void GraphicsSettingsWidget::onTextureReplacementOptionsClicked() Ui::TextureReplacementSettingsDialog dlgui; dlgui.setupUi(&dlg); - dlgui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("image-fill")).pixmap(32, 32)); + dlgui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("image-fill")).pixmap(32)); constexpr Settings::TextureReplacementSettings::Configuration default_replacement_config; SettingsInterface* const sif = m_dialog->getSettingsInterface(); diff --git a/src/duckstation-qt/isobrowserwindow.cpp b/src/duckstation-qt/isobrowserwindow.cpp index 91dfdf612..7657ba8bc 100644 --- a/src/duckstation-qt/isobrowserwindow.cpp +++ b/src/duckstation-qt/isobrowserwindow.cpp @@ -274,7 +274,7 @@ void ISOBrowserWindow::populateDirectories() enableExtractButtons(false); QTreeWidgetItem* root = new QTreeWidgetItem; - root->setIcon(0, QIcon::fromTheme("disc-line")); + root->setIcon(0, QIcon::fromTheme(QStringLiteral("disc-line"))); root->setText(0, QtUtils::StringViewToQString(Path::GetFileTitle(m_image->GetPath()))); root->setData(0, Qt::UserRole, QString()); m_ui.directoryView->addTopLevelItem(root); diff --git a/src/duckstation-qt/memorycardeditorwindow.cpp b/src/duckstation-qt/memorycardeditorwindow.cpp index d2d3aec47..fe1744132 100644 --- a/src/duckstation-qt/memorycardeditorwindow.cpp +++ b/src/duckstation-qt/memorycardeditorwindow.cpp @@ -732,7 +732,7 @@ std::string MemoryCardRenameFileDialog::promptForNewName(QWidget* parent, std::s void MemoryCardRenameFileDialog::setupAdditionalUi() { - m_ui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("memcard-line")).pixmap(32, 32)); + m_ui.icon->setPixmap(QIcon::fromTheme(QStringLiteral("memcard-line")).pixmap(32)); for (const auto& [region, prefix] : MEMORY_CARD_FILE_REGION_PREFIXES) { diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index f958a665c..78fc2a1de 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -303,7 +303,7 @@ bool QtHost::SaveGameSettings(SettingsInterface* sif, bool delete_if_empty) const QIcon& QtHost::GetAppIcon() { - static QIcon icon = QIcon(QStringLiteral(":/icons/duck.png")); + static const QIcon icon(QStringLiteral(":/icons/duck.png")); return icon; } @@ -2201,11 +2201,11 @@ InputDeviceListModel::~InputDeviceListModel() = default; QIcon InputDeviceListModel::getIconForKey(const InputBindingKey& key) { if (key.source_type == InputSourceType::Keyboard) - return QIcon::fromTheme("keyboard-line"); + return QIcon::fromTheme(QStringLiteral("keyboard-line")); else if (key.source_type == InputSourceType::Pointer) - return QIcon::fromTheme("mouse-line"); + return QIcon::fromTheme(QStringLiteral("mouse-line")); else - return QIcon::fromTheme("controller-line"); + return QIcon::fromTheme(QStringLiteral("controller-line")); } int InputDeviceListModel::rowCount(const QModelIndex& parent /*= QModelIndex()*/) const