From 75aee64772da05ee9b41097c2885956ffafacbd0 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 15 Nov 2025 23:59:59 +1000 Subject: [PATCH] Qt: Set appropriate window icons for subwindows Too bad it won't work on most Wankland compositors, too bad. --- src/duckstation-qt/autoupdaterwindow.cpp | 1 - src/duckstation-qt/autoupdaterwindow.ui | 5 ++++ .../controllersettingswindow.ui | 7 ++--- src/duckstation-qt/coverdownloadwindow.cpp | 1 - src/duckstation-qt/coverdownloadwindow.ui | 3 ++ src/duckstation-qt/debuggerwindow.cpp | 2 -- src/duckstation-qt/debuggerwindow.ui | 28 +++++++++---------- src/duckstation-qt/isobrowserwindow.ui | 3 +- src/duckstation-qt/mainwindow.cpp | 5 ++-- src/duckstation-qt/memorycardeditorwindow.ui | 3 +- src/duckstation-qt/memoryeditorwindow.cpp | 2 -- src/duckstation-qt/memoryeditorwindow.ui | 5 +++- src/duckstation-qt/memoryscannerwindow.ui | 3 +- src/duckstation-qt/qthost.cpp | 1 - .../resources/duckstation-qt.qrc | 6 ++++ .../icons/black/svg/camera-switch-line.svg | 1 + .../resources/icons/black/svg/code-line.svg | 1 + .../icons/black/svg/video-on-line.svg | 1 + .../icons/white/svg/camera-switch-line.svg | 1 + .../resources/icons/white/svg/code-line.svg | 1 + .../icons/white/svg/video-on-line.svg | 1 + src/duckstation-qt/settingswindow.ui | 7 ++--- 22 files changed, 48 insertions(+), 40 deletions(-) create mode 100644 src/duckstation-qt/resources/icons/black/svg/camera-switch-line.svg create mode 100644 src/duckstation-qt/resources/icons/black/svg/code-line.svg create mode 100644 src/duckstation-qt/resources/icons/black/svg/video-on-line.svg create mode 100644 src/duckstation-qt/resources/icons/white/svg/camera-switch-line.svg create mode 100644 src/duckstation-qt/resources/icons/white/svg/code-line.svg create mode 100644 src/duckstation-qt/resources/icons/white/svg/video-on-line.svg diff --git a/src/duckstation-qt/autoupdaterwindow.cpp b/src/duckstation-qt/autoupdaterwindow.cpp index 05075d2c8..0d71fced5 100644 --- a/src/duckstation-qt/autoupdaterwindow.cpp +++ b/src/duckstation-qt/autoupdaterwindow.cpp @@ -80,7 +80,6 @@ LOG_CHANNEL(Host); AutoUpdaterWindow::AutoUpdaterWindow() : QWidget() { m_ui.setupUi(this); - setWindowIcon(QtHost::GetAppIcon()); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); connect(m_ui.downloadAndInstall, &QPushButton::clicked, this, &AutoUpdaterWindow::downloadUpdateClicked); diff --git a/src/duckstation-qt/autoupdaterwindow.ui b/src/duckstation-qt/autoupdaterwindow.ui index b94d9e0a0..9b5c92978 100644 --- a/src/duckstation-qt/autoupdaterwindow.ui +++ b/src/duckstation-qt/autoupdaterwindow.ui @@ -13,6 +13,11 @@ Automatic Updater + + + :/icons/UpdateDuck.png + + diff --git a/src/duckstation-qt/controllersettingswindow.ui b/src/duckstation-qt/controllersettingswindow.ui index b31a367a1..4879f7183 100644 --- a/src/duckstation-qt/controllersettingswindow.ui +++ b/src/duckstation-qt/controllersettingswindow.ui @@ -20,8 +20,7 @@ DuckStation Controller Settings - - :/icons/duck.png:/icons/duck.png + settings-window @@ -142,8 +141,6 @@ - - - + diff --git a/src/duckstation-qt/coverdownloadwindow.cpp b/src/duckstation-qt/coverdownloadwindow.cpp index 4955627b6..3dcaf0e7b 100644 --- a/src/duckstation-qt/coverdownloadwindow.cpp +++ b/src/duckstation-qt/coverdownloadwindow.cpp @@ -13,7 +13,6 @@ CoverDownloadWindow::CoverDownloadWindow() : QWidget() { m_ui.setupUi(this); - setWindowIcon(QtHost::GetAppIcon()); m_ui.coverIcon->setPixmap(QIcon::fromTheme(QStringLiteral("artboard-2-line")).pixmap(32)); updateEnabled(); QtUtils::RestoreWindowGeometry("CoverDownloadWindow", this); diff --git a/src/duckstation-qt/coverdownloadwindow.ui b/src/duckstation-qt/coverdownloadwindow.ui index f3c6f4ce5..becaa8214 100644 --- a/src/duckstation-qt/coverdownloadwindow.ui +++ b/src/duckstation-qt/coverdownloadwindow.ui @@ -13,6 +13,9 @@ Download Covers + + + diff --git a/src/duckstation-qt/debuggerwindow.cpp b/src/duckstation-qt/debuggerwindow.cpp index 520f34ceb..af49192a4 100644 --- a/src/duckstation-qt/debuggerwindow.cpp +++ b/src/duckstation-qt/debuggerwindow.cpp @@ -443,8 +443,6 @@ void DebuggerWindow::closeEvent(QCloseEvent* event) void DebuggerWindow::setupAdditionalUi() { - setWindowIcon(QtHost::GetAppIcon()); - const QFont& fixed_font = QtHost::GetFixedFont(); m_ui.codeView->setFont(fixed_font); m_ui.codeView->updateRowHeight(); diff --git a/src/duckstation-qt/debuggerwindow.ui b/src/duckstation-qt/debuggerwindow.ui index 991fcd746..7d774974e 100644 --- a/src/duckstation-qt/debuggerwindow.ui +++ b/src/duckstation-qt/debuggerwindow.ui @@ -13,6 +13,9 @@ CPU Debugger + + + true @@ -22,8 +25,8 @@ 0 0 - 1210 - 30 + 1270 + 33 @@ -86,7 +89,7 @@ - QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable Disassembly @@ -101,14 +104,11 @@ 0 - - false - - QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable Registers @@ -139,7 +139,7 @@ - QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable Memory @@ -195,7 +195,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -238,7 +238,7 @@ - QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable Breakpoints @@ -248,10 +248,10 @@ - QAbstractItemView::SingleSelection + QAbstractItemView::SelectionMode::SingleSelection - QAbstractItemView::SelectRows + QAbstractItemView::SelectionBehavior::SelectRows true @@ -283,7 +283,7 @@ - QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable + QDockWidget::DockWidgetFeature::DockWidgetFloatable|QDockWidget::DockWidgetFeature::DockWidgetMovable Stack @@ -489,7 +489,7 @@ - + diff --git a/src/duckstation-qt/isobrowserwindow.ui b/src/duckstation-qt/isobrowserwindow.ui index e553defe8..0d1cba9f3 100644 --- a/src/duckstation-qt/isobrowserwindow.ui +++ b/src/duckstation-qt/isobrowserwindow.ui @@ -14,8 +14,7 @@ ISO Browser - - :/icons/media-optical.png:/icons/media-optical.png + diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index 8372369ad..f4bd4fd87 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -190,11 +190,12 @@ void MainWindow::initialize() updateToolbarArea(); updateEmulationActions(false, false, false); updateDisplayRelatedActions(false, false); + updateWindowTitle(); connectSignals(); - QtUtils::RestoreWindowGeometry("MainWindow", this); switchToGameListView(); - updateWindowTitle(); + + QtUtils::RestoreWindowGeometry("MainWindow", this); #ifdef _WIN32 registerForDeviceNotifications(); diff --git a/src/duckstation-qt/memorycardeditorwindow.ui b/src/duckstation-qt/memorycardeditorwindow.ui index cfc10aebf..520dca0b0 100644 --- a/src/duckstation-qt/memorycardeditorwindow.ui +++ b/src/duckstation-qt/memorycardeditorwindow.ui @@ -14,8 +14,7 @@ Memory Card Editor - - :/icons/duck.png:/icons/duck.png + diff --git a/src/duckstation-qt/memoryeditorwindow.cpp b/src/duckstation-qt/memoryeditorwindow.cpp index 8e5b494b3..c99981fa2 100644 --- a/src/duckstation-qt/memoryeditorwindow.cpp +++ b/src/duckstation-qt/memoryeditorwindow.cpp @@ -380,8 +380,6 @@ QString MemoryEditorWindow::formatNumber(u64 value, bool is_signed, int byte_siz void MemoryEditorWindow::setupAdditionalUi() { - setWindowIcon(QtHost::GetAppIcon()); - const QFont& fixed_font = QtHost::GetFixedFont(); m_ui.memoryView->setFont(fixed_font); diff --git a/src/duckstation-qt/memoryeditorwindow.ui b/src/duckstation-qt/memoryeditorwindow.ui index 98740fc8f..3607c9cde 100644 --- a/src/duckstation-qt/memoryeditorwindow.ui +++ b/src/duckstation-qt/memoryeditorwindow.ui @@ -13,6 +13,9 @@ Memory Editor + + + @@ -416,7 +419,7 @@ - + diff --git a/src/duckstation-qt/memoryscannerwindow.ui b/src/duckstation-qt/memoryscannerwindow.ui index f51bef0c2..901b362e6 100644 --- a/src/duckstation-qt/memoryscannerwindow.ui +++ b/src/duckstation-qt/memoryscannerwindow.ui @@ -14,8 +14,7 @@ Memory Scanner - - :/icons/duck.png:/icons/duck.png + diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index 912596054..0008bd0ee 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -433,7 +433,6 @@ std::optional QtHost::DownloadFile(QWidget* parent, const QString& title, .arg(QtUtils::StringViewToQString(std::string_view(url).substr( (url_file_part_pos >= 0) ? (url_file_part_pos + 1) : 0)))); progress.GetDialog().setWindowTitle(title); - progress.GetDialog().setWindowIcon(GetAppIcon()); progress.SetCancellable(true); progress.MakeVisible(); diff --git a/src/duckstation-qt/resources/duckstation-qt.qrc b/src/duckstation-qt/resources/duckstation-qt.qrc index 5c21a3955..76e75a987 100644 --- a/src/duckstation-qt/resources/duckstation-qt.qrc +++ b/src/duckstation-qt/resources/duckstation-qt.qrc @@ -35,12 +35,14 @@ icons/black/svg/arrow-left-right-line.svg icons/black/svg/arrow-up-line.svg icons/black/svg/artboard-2-line.svg + icons/black/svg/camera-switch-line.svg icons/black/svg/chat-off-line.svg icons/black/svg/cheats-line.svg icons/black/svg/checkbox-multiple-blank-line.svg icons/black/svg/chip-2-line.svg icons/black/svg/chip-line.svg icons/black/svg/close-line.svg + icons/black/svg/code-line.svg icons/black/svg/controller-digital-line.svg icons/black/svg/controller-line.svg icons/black/svg/controller-strike-line.svg @@ -118,6 +120,7 @@ icons/black/svg/trash-fill.svg icons/black/svg/trophy-line.svg icons/black/svg/tv-2-line.svg + icons/black/svg/video-on-line.svg icons/black/svg/volume-up-line.svg icons/black/svg/window-2-line.svg icons/camera-photo.png @@ -260,6 +263,7 @@ icons/white/svg/arrow-left-right-line.svg icons/white/svg/arrow-up-line.svg icons/white/svg/artboard-2-line.svg + icons/white/svg/camera-switch-line.svg icons/white/svg/chat-off-line.svg icons/white/svg/cheats-line.svg icons/white/svg/checkbox-checked-disabled.svg @@ -275,6 +279,7 @@ icons/white/svg/chip-2-line.svg icons/white/svg/chip-line.svg icons/white/svg/close-line.svg + icons/white/svg/code-line.svg icons/white/svg/controller-digital-line.svg icons/white/svg/controller-line.svg icons/white/svg/controller-strike-line.svg @@ -352,6 +357,7 @@ icons/white/svg/trash-fill.svg icons/white/svg/trophy-line.svg icons/white/svg/tv-2-line.svg + icons/white/svg/video-on-line.svg icons/white/svg/volume-up-line.svg icons/white/svg/window-2-line.svg qdarkstyle/arrow_down.png diff --git a/src/duckstation-qt/resources/icons/black/svg/camera-switch-line.svg b/src/duckstation-qt/resources/icons/black/svg/camera-switch-line.svg new file mode 100644 index 000000000..015d58683 --- /dev/null +++ b/src/duckstation-qt/resources/icons/black/svg/camera-switch-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/resources/icons/black/svg/code-line.svg b/src/duckstation-qt/resources/icons/black/svg/code-line.svg new file mode 100644 index 000000000..bea455911 --- /dev/null +++ b/src/duckstation-qt/resources/icons/black/svg/code-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/resources/icons/black/svg/video-on-line.svg b/src/duckstation-qt/resources/icons/black/svg/video-on-line.svg new file mode 100644 index 000000000..816fb31e8 --- /dev/null +++ b/src/duckstation-qt/resources/icons/black/svg/video-on-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/resources/icons/white/svg/camera-switch-line.svg b/src/duckstation-qt/resources/icons/white/svg/camera-switch-line.svg new file mode 100644 index 000000000..362863acd --- /dev/null +++ b/src/duckstation-qt/resources/icons/white/svg/camera-switch-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/resources/icons/white/svg/code-line.svg b/src/duckstation-qt/resources/icons/white/svg/code-line.svg new file mode 100644 index 000000000..945360a59 --- /dev/null +++ b/src/duckstation-qt/resources/icons/white/svg/code-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/resources/icons/white/svg/video-on-line.svg b/src/duckstation-qt/resources/icons/white/svg/video-on-line.svg new file mode 100644 index 000000000..3432780ab --- /dev/null +++ b/src/duckstation-qt/resources/icons/white/svg/video-on-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/duckstation-qt/settingswindow.ui b/src/duckstation-qt/settingswindow.ui index 22ebae57b..bf802e892 100644 --- a/src/duckstation-qt/settingswindow.ui +++ b/src/duckstation-qt/settingswindow.ui @@ -20,8 +20,7 @@ DuckStation Settings - - :/icons/duck.png:/icons/duck.png + settings-window @@ -147,8 +146,6 @@ - - - +