From b51db125676fb1257e3bacbd19df3ae686ae69df Mon Sep 17 00:00:00 2001 From: Kyle K <190571+Docteh@users.noreply.github.com> Date: Thu, 28 Jul 2022 07:50:20 -0700 Subject: [PATCH] Linux: handle dark system themes nicely yuzu's default theme doesn't specify everything, which is fine for windows, but in linux anything unspecified is set to the users theme. Symptoms of this are that a linux user with a dark theme won't think to change the theme to a dark theme when first using yuzu Idea here is to try and support arbitrary themes on linux. preliminary work on a "default_dark" theme, used only as overlay for any themes that are measured to be dark mode. Other work done: FreeDesktop standard icon names: plus -> list-add delete refresh, we use view-refresh remove duplicated icons for qdarkstyle_midnight_blue referencing icon aliases in the qrc files is the way to go Note: Dynamic style changing doesn't appear to work with AppImage --- .reuse/dep5 | 10 +- .../icons/48x48/{plus.png => list-add.png} | Bin dist/qt_themes/colorful/style.qrc | 2 +- .../colorful_dark/icons/16x16/refresh.png | Bin 362 -> 0 bytes .../qt_themes/colorful_dark/icons/index.theme | 2 +- dist/qt_themes/colorful_dark/style.qrc | 2 +- .../icons/16x16/refresh.png | Bin 362 -> 0 bytes .../colorful_midnight_blue/style.qrc | 2 +- dist/qt_themes/default/default.qrc | 2 +- .../qt_themes/default/icons/16x16/refresh.png | Bin 349 -> 0 bytes .../icons/48x48/{plus.png => list-add.png} | Bin dist/qt_themes/default_dark/icons/index.theme | 8 + dist/qt_themes/default_dark/style.qrc | 25 + dist/qt_themes/default_dark/style.qss | 689 ++++++++++++++++++ .../qdarkstyle/icons/16x16/refresh.png | Bin 362 -> 0 bytes .../icons/48x48/{plus.png => list-add.png} | Bin dist/qt_themes/qdarkstyle/style.qrc | 2 +- .../icons/16x16/lock.png | Bin 304 -> 0 bytes .../icons/16x16/refresh.png | Bin 362 -> 0 bytes .../icons/16x16/view-refresh.png | Bin 362 -> 0 bytes .../icons/256x256/plus_folder.png | Bin 3438 -> 0 bytes .../icons/48x48/bad_folder.png | Bin 1098 -> 0 bytes .../icons/48x48/chip.png | Bin 15120 -> 0 bytes .../icons/48x48/folder.png | Bin 542 -> 0 bytes .../icons/48x48/plus.png | Bin 339 -> 0 bytes .../icons/48x48/sd_card.png | Bin 676 -> 0 bytes .../icons/48x48/star.png | Bin 725 -> 0 bytes .../qdarkstyle_midnight_blue/style.qrc | 19 +- src/yuzu/game_list.cpp | 2 +- src/yuzu/game_list_p.h | 2 +- src/yuzu/main.cpp | 82 ++- src/yuzu/main.h | 5 + 32 files changed, 819 insertions(+), 35 deletions(-) rename dist/qt_themes/colorful/icons/48x48/{plus.png => list-add.png} (100%) delete mode 100644 dist/qt_themes/colorful_dark/icons/16x16/refresh.png delete mode 100644 dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png delete mode 100644 dist/qt_themes/default/icons/16x16/refresh.png rename dist/qt_themes/default/icons/48x48/{plus.png => list-add.png} (100%) create mode 100644 dist/qt_themes/default_dark/icons/index.theme create mode 100644 dist/qt_themes/default_dark/style.qrc create mode 100644 dist/qt_themes/default_dark/style.qss delete mode 100644 dist/qt_themes/qdarkstyle/icons/16x16/refresh.png rename dist/qt_themes/qdarkstyle/icons/48x48/{plus.png => list-add.png} (100%) delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/lock.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/256x256/plus_folder.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/bad_folder.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/chip.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/folder.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/plus.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/sd_card.png delete mode 100644 dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/star.png diff --git a/.reuse/dep5 b/.reuse/dep5 index e2ee4f456..5251870fb 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -41,20 +41,18 @@ Files: dist/qt_themes/*/icons/16x16/connected.png dist/qt_themes/*/icons/48x48/sd_card.png dist/qt_themes/*/icons/48x48/star.png dist/qt_themes/*/icons/256x256/plus_folder.png - dist/qt_themes/colorful/icons/48x48/plus.png + dist/qt_themes/colorful/icons/48x48/list-add.png dist/qt_themes/default/icons/16x16/checked.png dist/qt_themes/default/icons/16x16/failed.png Copyright: https://icons8.com License: CC-BY-ND-3.0 -Files: dist/qt_themes/*/icons/16x16/refresh.png - dist/qt_themes/*/icons/16x16/view-refresh.png +Files: dist/qt_themes/*/icons/16x16/view-refresh.png Copyright: Google, Inc. License: Apache-2.0 -Files: dist/qt_themes/default/icons/48x48/plus.png - dist/qt_themes/qdarkstyle/icons/48x48/plus.png - dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/plus.png +Files: dist/qt_themes/default/icons/48x48/list-add.png + dist/qt_themes/qdarkstyle/icons/48x48/list-add.png Copyright: BreadFish64 License: CC0-1.0 diff --git a/dist/qt_themes/colorful/icons/48x48/plus.png b/dist/qt_themes/colorful/icons/48x48/list-add.png similarity index 100% rename from dist/qt_themes/colorful/icons/48x48/plus.png rename to dist/qt_themes/colorful/icons/48x48/list-add.png diff --git a/dist/qt_themes/colorful/style.qrc b/dist/qt_themes/colorful/style.qrc index 4b3f28d89..507e0e58b 100644 --- a/dist/qt_themes/colorful/style.qrc +++ b/dist/qt_themes/colorful/style.qrc @@ -13,7 +13,7 @@ SPDX-License-Identifier: GPL-2.0-or-later <file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> - <file alias="48x48/plus.png">icons/48x48/plus.png</file> + <file alias="48x48/list-add.png">icons/48x48/list-add.png</file> <file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file> <file alias="48x48/star.png">icons/48x48/star.png</file> <file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file> diff --git a/dist/qt_themes/colorful_dark/icons/16x16/refresh.png b/dist/qt_themes/colorful_dark/icons/16x16/refresh.png deleted file mode 100644 index d4afd76f949ff5c65e039b69ff999325bff5d7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G diff --git a/dist/qt_themes/colorful_dark/icons/index.theme b/dist/qt_themes/colorful_dark/icons/index.theme index 19dc0369a..b37a06df7 100644 --- a/dist/qt_themes/colorful_dark/icons/index.theme +++ b/dist/qt_themes/colorful_dark/icons/index.theme @@ -3,6 +3,6 @@ Name=colorful_dark Comment=Colorful theme (Dark style) Inherits=colorful Directories=16x16 - + [16x16] Size=16 diff --git a/dist/qt_themes/colorful_dark/style.qrc b/dist/qt_themes/colorful_dark/style.qrc index 50e78c37b..9853fd438 100644 --- a/dist/qt_themes/colorful_dark/style.qrc +++ b/dist/qt_themes/colorful_dark/style.qrc @@ -15,7 +15,7 @@ SPDX-License-Identifier: GPL-2.0-or-later <file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file> <file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file> <file alias="48x48/no_avatar.png">../qdarkstyle/icons/48x48/no_avatar.png</file> - <file alias="48x48/plus.png">../colorful/icons/48x48/plus.png</file> + <file alias="48x48/list-add.png">../colorful/icons/48x48/list-add.png</file> <file alias="48x48/sd_card.png">../colorful/icons/48x48/sd_card.png</file> <file alias="256x256/plus_folder.png">../colorful/icons/256x256/plus_folder.png</file> </qresource> diff --git a/dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png b/dist/qt_themes/colorful_midnight_blue/icons/16x16/refresh.png deleted file mode 100644 index d4afd76f949ff5c65e039b69ff999325bff5d7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G diff --git a/dist/qt_themes/colorful_midnight_blue/style.qrc b/dist/qt_themes/colorful_midnight_blue/style.qrc index ac8cb0d49..1081d281d 100644 --- a/dist/qt_themes/colorful_midnight_blue/style.qrc +++ b/dist/qt_themes/colorful_midnight_blue/style.qrc @@ -11,7 +11,7 @@ SPDX-License-Identifier: GPL-2.0-or-later <file alias="48x48/bad_folder.png">../colorful/icons/48x48/bad_folder.png</file> <file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file> <file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file> - <file alias="48x48/plus.png">../colorful/icons/48x48/plus.png</file> + <file alias="48x48/list-add.png">../colorful/icons/48x48/list-add.png</file> <file alias="48x48/sd_card.png">../colorful/icons/48x48/sd_card.png</file> <file alias="256x256/plus_folder.png">../colorful/icons/256x256/plus_folder.png</file> </qresource> diff --git a/dist/qt_themes/default/default.qrc b/dist/qt_themes/default/default.qrc index ef080c221..a07f2a9c1 100644 --- a/dist/qt_themes/default/default.qrc +++ b/dist/qt_themes/default/default.qrc @@ -17,7 +17,7 @@ SPDX-License-Identifier: GPL-2.0-or-later <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> <file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file> - <file alias="48x48/plus.png">icons/48x48/plus.png</file> + <file alias="48x48/list-add.png">icons/48x48/list-add.png</file> <file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file> <file alias="48x48/star.png">icons/48x48/star.png</file> <file alias="256x256/yuzu.png">icons/256x256/yuzu.png</file> diff --git a/dist/qt_themes/default/icons/16x16/refresh.png b/dist/qt_themes/default/icons/16x16/refresh.png deleted file mode 100644 index 69f9474acabad4c5bbb4b8dd3f73b34b5d49d3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p z3xP1>)&}zuprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt;DaT^vI! zdXHXO?dResz;fZRvg2D(hZAudG7gC+giq$}KOcG4zro@DnrG}2G&q=8CN#Jv2-qAk zIjJ+#`oXqIX2G$hS8WgP*%<OL>P@0_exQBEhkNRG4vEbF(e=wge3`J!mrnDK5~jx# zUU8hS;5{7IoY@i1eaCa!ii`_xR|*?vr#zBue!3=;y?e(G)x3h<!*AYfnvx*$u36}( zJkL_WZ`!uXbCQ>?UwC-!Cn58K{>@QcV*C}8#I7dD9^Y}8_gWU)lKmGvA3u?Q86s88 o#x1&7v25w|org}xo1bUDudAldyso>n5$H<>Pgg&ebxsLQ00=gQyZ`_I diff --git a/dist/qt_themes/default/icons/48x48/plus.png b/dist/qt_themes/default/icons/48x48/list-add.png similarity index 100% rename from dist/qt_themes/default/icons/48x48/plus.png rename to dist/qt_themes/default/icons/48x48/list-add.png diff --git a/dist/qt_themes/default_dark/icons/index.theme b/dist/qt_themes/default_dark/icons/index.theme new file mode 100644 index 000000000..60a072d1d --- /dev/null +++ b/dist/qt_themes/default_dark/icons/index.theme @@ -0,0 +1,8 @@ +[Icon Theme] +Name=default_dark +Comment=Colorful theme (Dark style) +Inherits=colorful +Directories=16x16 + +[16x16] +Size=16 diff --git a/dist/qt_themes/default_dark/style.qrc b/dist/qt_themes/default_dark/style.qrc new file mode 100644 index 000000000..7de4737c2 --- /dev/null +++ b/dist/qt_themes/default_dark/style.qrc @@ -0,0 +1,25 @@ +<!-- +SPDX-FileCopyrightText: 2022 yuzu Emulator Project +SPDX-License-Identifier: GPL-2.0-or-later +--> +<RCC> + <qresource prefix="icons/default_dark"> + <file alias="16x16/connected.png">../colorful/icons/16x16/connected.png</file> + <file alias="16x16/connected_notification.png">../colorful/icons/16x16/connected_notification.png</file> + <file alias="16x16/disconnected.png">../colorful/icons/16x16/disconnected.png</file> + <file alias="index.theme">icons/index.theme</file> + <file alias="16x16/lock.png">../colorful_dark/icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">../colorful_dark/icons/16x16/view-refresh.png</file> + <file alias="48x48/bad_folder.png">../colorful/icons/48x48/bad_folder.png</file> + <file alias="48x48/chip.png">../colorful/icons/48x48/chip.png</file> + <file alias="48x48/folder.png">../colorful/icons/48x48/folder.png</file> + <file alias="48x48/no_avatar.png">../qdarkstyle/icons/48x48/no_avatar.png</file> + <file alias="48x48/list-add.png">../colorful/icons/48x48/list-add.png</file> + <file alias="48x48/sd_card.png">../colorful/icons/48x48/sd_card.png</file> + <file alias="256x256/plus_folder.png">../colorful/icons/256x256/plus_folder.png</file> + </qresource> + + <qresource prefix="default_dark"> + <file>style.qss</file> + </qresource> +</RCC> diff --git a/dist/qt_themes/default_dark/style.qss b/dist/qt_themes/default_dark/style.qss new file mode 100644 index 000000000..356996357 --- /dev/null +++ b/dist/qt_themes/default_dark/style.qss @@ -0,0 +1,689 @@ +/* +* SPDX-FileCopyrightText: 2018 yuzu Emulator Project +* SPDX-License-Identifier: GPL-2.0-or-later +*/ +QAbstractSpinBox { + min-height: 19px; +} + +QPushButton#TogglableStatusBarButton { + color: #959595; + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +/* +QPushButton#TogglableStatusBarButton:checked { + color: #000000; +} +*/ + +QPushButton#TogglableStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#RendererStatusBarButton { + color: #656565; + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +QPushButton#RendererStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#RendererStatusBarButton:checked { + color: #e85c00; +} + +QPushButton#RendererStatusBarButton:!checked { + color: #0066ff; +} + +QPushButton#GPUStatusBarButton { + color: #656565; + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +QPushButton#GPUStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#GPUStatusBarButton:checked { + color: #b06020; +} + +QPushButton#GPUStatusBarButton:!checked { + color: #109010; +} + +QPushButton#DockingStatusBarButton { + min-width: 0px; + /*color: #000000;*/ + border: 1px solid transparent; + background-color: transparent; + padding: 0px 3px 0px 3px; + text-align: center; +} + +QPushButton#DockingStatusBarButton:hover { + border: 1px solid #76797C; +} + +QPushButton#buttonRefreshDevices { + min-width: 21px; + min-height: 21px; + max-width: 21px; + max-height: 21px; +} + +QWidget#bottomPerGameInput, +QWidget#topControllerApplet, +QWidget#bottomControllerApplet, +QGroupBox#groupPlayer1Connected:checked, +QGroupBox#groupPlayer2Connected:checked, +QGroupBox#groupPlayer3Connected:checked, +QGroupBox#groupPlayer4Connected:checked, +QGroupBox#groupPlayer5Connected:checked, +QGroupBox#groupPlayer6Connected:checked, +QGroupBox#groupPlayer7Connected:checked, +QGroupBox#groupPlayer8Connected:checked { + background-color: #f5f5f5; +} + +QWidget#topControllerApplet { + border-bottom: 1px solid #828790 +} + +QWidget#bottomPerGameInput, +QWidget#bottomControllerApplet { + border-top: 1px solid #828790 +} + +QWidget#topPerGameInput, +QWidget#middleControllerApplet { + background-color: #fff; +} + +QWidget#topPerGameInput QComboBox, +QWidget#middleControllerApplet QComboBox { + width: 120px; +} + +QWidget#connectedControllers { + background: transparent; +} + +QWidget#playersSupported, +QWidget#controllersSupported, +QWidget#controllerSupported1, +QWidget#controllerSupported2, +QWidget#controllerSupported3, +QWidget#controllerSupported4, +QWidget#controllerSupported5, +QWidget#controllerSupported6 { + border: none; + background: transparent; +} + +QGroupBox#groupPlayer1Connected, +QGroupBox#groupPlayer2Connected, +QGroupBox#groupPlayer3Connected, +QGroupBox#groupPlayer4Connected, +QGroupBox#groupPlayer5Connected, +QGroupBox#groupPlayer6Connected, +QGroupBox#groupPlayer7Connected, +QGroupBox#groupPlayer8Connected { + border: 1px solid #828790; + border-radius: 3px; + padding: 0px; + min-height: 98px; + max-height: 98px; +} + +QGroupBox#groupPlayer1Connected:unchecked, +QGroupBox#groupPlayer2Connected:unchecked, +QGroupBox#groupPlayer3Connected:unchecked, +QGroupBox#groupPlayer4Connected:unchecked, +QGroupBox#groupPlayer5Connected:unchecked, +QGroupBox#groupPlayer6Connected:unchecked, +QGroupBox#groupPlayer7Connected:unchecked, +QGroupBox#groupPlayer8Connected:unchecked { + border: 1px solid #d9d9d9; +} + +QGroupBox#groupPlayer1Connected::title, +QGroupBox#groupPlayer2Connected::title, +QGroupBox#groupPlayer3Connected::title, +QGroupBox#groupPlayer4Connected::title, +QGroupBox#groupPlayer5Connected::title, +QGroupBox#groupPlayer6Connected::title, +QGroupBox#groupPlayer7Connected::title, +QGroupBox#groupPlayer8Connected::title { + subcontrol-origin: margin; + subcontrol-position: top left; + padding-left: 0px; + padding-right: 0px; + padding-top: 1px; + margin-left: 0px; + margin-right: -4px; + margin-bottom: 4px; +} + +QCheckBox#checkboxPlayer1Connected, +QCheckBox#checkboxPlayer2Connected, +QCheckBox#checkboxPlayer3Connected, +QCheckBox#checkboxPlayer4Connected, +QCheckBox#checkboxPlayer5Connected, +QCheckBox#checkboxPlayer6Connected, +QCheckBox#checkboxPlayer7Connected, +QCheckBox#checkboxPlayer8Connected { + spacing: 0px; +} + +QWidget#Player1LEDs QCheckBox, +QWidget#Player2LEDs QCheckBox, +QWidget#Player3LEDs QCheckBox, +QWidget#Player4LEDs QCheckBox, +QWidget#Player5LEDs QCheckBox, +QWidget#Player6LEDs QCheckBox, +QWidget#Player7LEDs QCheckBox, +QWidget#Player8LEDs QCheckBox { + spacing: 0px; +} + +QWidget#Player1LEDs QCheckBox::indicator, +QWidget#Player2LEDs QCheckBox::indicator, +QWidget#Player3LEDs QCheckBox::indicator, +QWidget#Player4LEDs QCheckBox::indicator, +QWidget#Player5LEDs QCheckBox::indicator, +QWidget#Player6LEDs QCheckBox::indicator, +QWidget#Player7LEDs QCheckBox::indicator, +QWidget#Player8LEDs QCheckBox::indicator { + width: 6px; + height: 6px; + margin-left: 0px; +} + +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer1Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer2Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer3Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer4Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer5Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer6Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer7Connected::indicator, +QWidget#bottomPerGameInput QCheckBox#checkboxPlayer8Connected::indicator { + width: 12px; + height: 12px; +} + +QCheckBox#checkboxPlayer1Connected::indicator, +QCheckBox#checkboxPlayer2Connected::indicator, +QCheckBox#checkboxPlayer3Connected::indicator, +QCheckBox#checkboxPlayer4Connected::indicator, +QCheckBox#checkboxPlayer5Connected::indicator, +QCheckBox#checkboxPlayer6Connected::indicator, +QCheckBox#checkboxPlayer7Connected::indicator, +QCheckBox#checkboxPlayer8Connected::indicator { + width: 14px; + height: 14px; +} + +QGroupBox#groupPlayer1Connected::indicator, +QGroupBox#groupPlayer2Connected::indicator, +QGroupBox#groupPlayer3Connected::indicator, +QGroupBox#groupPlayer4Connected::indicator, +QGroupBox#groupPlayer5Connected::indicator, +QGroupBox#groupPlayer6Connected::indicator, +QGroupBox#groupPlayer7Connected::indicator, +QGroupBox#groupPlayer8Connected::indicator { + width: 16px; + height: 16px; +} + +QWidget#Player1LEDs QCheckBox::indicator:checked, +QWidget#Player2LEDs QCheckBox::indicator:checked, +QWidget#Player3LEDs QCheckBox::indicator:checked, +QWidget#Player4LEDs QCheckBox::indicator:checked, +QWidget#Player5LEDs QCheckBox::indicator:checked, +QWidget#Player6LEDs QCheckBox::indicator:checked, +QWidget#Player7LEDs QCheckBox::indicator:checked, +QWidget#Player8LEDs QCheckBox::indicator:checked, +QGroupBox#groupPlayer1Connected::indicator:checked, +QGroupBox#groupPlayer2Connected::indicator:checked, +QGroupBox#groupPlayer3Connected::indicator:checked, +QGroupBox#groupPlayer4Connected::indicator:checked, +QGroupBox#groupPlayer5Connected::indicator:checked, +QGroupBox#groupPlayer6Connected::indicator:checked, +QGroupBox#groupPlayer7Connected::indicator:checked, +QGroupBox#groupPlayer8Connected::indicator:checked, +QCheckBox#checkboxPlayer1Connected::indicator:checked, +QCheckBox#checkboxPlayer2Connected::indicator:checked, +QCheckBox#checkboxPlayer3Connected::indicator:checked, +QCheckBox#checkboxPlayer4Connected::indicator:checked, +QCheckBox#checkboxPlayer5Connected::indicator:checked, +QCheckBox#checkboxPlayer6Connected::indicator:checked, +QCheckBox#checkboxPlayer7Connected::indicator:checked, +QCheckBox#checkboxPlayer8Connected::indicator:checked, +QGroupBox#groupConnectedController::indicator:checked { + border-radius: 2px; + border: 1px solid #929192; + background: #39ff14; + image: none; +} + +QWidget#Player1LEDs QCheckBox::indicator:unchecked, +QWidget#Player2LEDs QCheckBox::indicator:unchecked, +QWidget#Player3LEDs QCheckBox::indicator:unchecked, +QWidget#Player4LEDs QCheckBox::indicator:unchecked, +QWidget#Player5LEDs QCheckBox::indicator:unchecked, +QWidget#Player6LEDs QCheckBox::indicator:unchecked, +QWidget#Player7LEDs QCheckBox::indicator:unchecked, +QWidget#Player8LEDs QCheckBox::indicator:unchecked, +QGroupBox#groupPlayer1Connected::indicator:unchecked, +QGroupBox#groupPlayer2Connected::indicator:unchecked, +QGroupBox#groupPlayer3Connected::indicator:unchecked, +QGroupBox#groupPlayer4Connected::indicator:unchecked, +QGroupBox#groupPlayer5Connected::indicator:unchecked, +QGroupBox#groupPlayer6Connected::indicator:unchecked, +QGroupBox#groupPlayer7Connected::indicator:unchecked, +QGroupBox#groupPlayer8Connected::indicator:unchecked, +QCheckBox#checkboxPlayer1Connected::indicator:unchecked, +QCheckBox#checkboxPlayer2Connected::indicator:unchecked, +QCheckBox#checkboxPlayer3Connected::indicator:unchecked, +QCheckBox#checkboxPlayer4Connected::indicator:unchecked, +QCheckBox#checkboxPlayer5Connected::indicator:unchecked, +QCheckBox#checkboxPlayer6Connected::indicator:unchecked, +QCheckBox#checkboxPlayer7Connected::indicator:unchecked, +QCheckBox#checkboxPlayer8Connected::indicator:unchecked, +QGroupBox#groupConnectedController::indicator:unchecked { + border-radius: 2px; + border: 1px solid #929192; + background: transparent; + image: none; +} + +QWidget#controllerPlayer1, +QWidget#controllerPlayer2, +QWidget#controllerPlayer3, +QWidget#controllerPlayer4, +QWidget#controllerPlayer5, +QWidget#controllerPlayer6, +QWidget#controllerPlayer7, +QWidget#controllerPlayer8 { + background: transparent; +} + +QDialog#QtSoftwareKeyboardDialog, +QStackedWidget#topOSK { + background: rgba(51, 51, 51, .9); +} + + +QDialog#OverlayDialog, +QStackedWidget#stackedDialog { + background: rgba(51, 51, 51, .7); +} + +QWidget#boxOSK, +QWidget#lineOSK, +QWidget#richDialog, +QWidget#lineDialog { + background: transparent; +} + +QStackedWidget#bottomOSK, +QWidget#contentDialog, +QWidget#contentRichDialog { + background: rgba(240, 240, 240, 1); +} + +QWidget#contentDialog, +QWidget#contentRichDialog { + margin: 5px; + border-radius: 6px; +} + +QWidget#buttonsDialog, +QWidget#buttonsRichDialog { + margin: 5px; + border-top: 2px solid rgba(44, 44, 44, 1); +} + +QWidget#legendOSKnum { + border-top: 1px solid rgba(44, 44, 44, 1); +} + +QStackedWidget#stackedDialog QTextBrowser QScrollBar::vertical { + background: #cdcdcd; + width: 15px; + margin: 15px 3px 15px 3px; + border: 1px transparent; + border-radius: 4px; +} + +QStackedWidget#stackedDialog QTextBrowser QScrollBar::horizoncal { + background: #cdcdcd; + height: 15px; + margin: 3px 15px 3px 15px; + border: 1px transparent; + border-radius: 4px; +} + +QStackedWidget#stackedDialog QTextBrowser QScrollBar::handle { + background: #fff; + border-radius: 4px; + min-height: 5px; + min-width: 5px; +} + +QStackedWidget#stackedDialog QTextBrowser QScrollBar::add-line, +QStackedWidget#stackedDialog QTextBrowser QScrollBar::sub-line, +QStackedWidget#stackedDialog QTextBrowser QScrollBar::add-page, +QStackedWidget#stackedDialog QTextBrowser QScrollBar::sub-page { + background: none; +} + +QWidget#inputOSK { + border-bottom: 3px solid rgba(255, 255, 255, .9); +} + +QWidget#inputOSK QLineEdit { + background: transparent; + border: none; + color: #ccc; +} + +QWidget#inputBoxOSK { + border: 2px solid rgba(255, 255, 255, .9); +} + +QWidget#inputBoxOSK QTextEdit { + background: transparent; + border: none; + color: #ccc; +} + +QWidget#richDialog QTextBrowser { + background: transparent; + border: none; + padding: 35px 65px; +} + + +QWidget#lineOSK QLabel#label_header { + color: #f0f0f0; +} + +QWidget#lineOSK QLabel#label_sub, +QWidget#lineOSK QLabel#label_characters, +QWidget#boxOSK QLabel#label_characters_box { + color: #ccc; +} + +QWidget#contentDialog QLabel#label_title, +QWidget#contentRichDialog QLabel#label_title_rich { + color: #888; +} + +QWidget#contentDialog QLabel#label_dialog { + padding: 20px 65px; +} + +QWidget#contentDialog QLabel#label_title, +QWidget#contentRichDialog QLabel#label_title_rich { + padding: 0px 65px; +} + +QDialog#OverlayDialog QPushButton { + color: rgba(49, 79, 239, 1); + background: transparent; + border: none; + padding: 0px; + min-width: 0px; +} + +QDialog#OverlayDialog QPushButton:focus, +QDialog#OverlayDialog QPushButton:hover { + color: rgba(49, 79, 239, 1); + background: rgba(255, 255, 255, 1); + border: 5px solid rgba(148, 250, 202, 1); + border-radius: 6px; + outline: none; +} + +QDialog#OverlayDialog QPushButton:pressed { + color: rgba(240, 240, 240, 1); + background: rgba(150, 150, 150, 1); + border: 5px solid rgba(148, 250, 202, 1); + border-radius: 6px; + outline: none; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton { + background: rgba(232, 232, 232, 1); + border: 2px solid rgba(240, 240, 240, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift { + background: rgba(218, 218, 218, 1); + border: 2px solid rgba(240, 240, 240, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num { + color: rgba(240, 240, 240, 1); + background: rgba(44, 44, 44, 1); + border: 2px solid rgba(240, 240, 240, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num { + color: rgba(240, 240, 240, 1); + background: rgba(49, 79, 239, 1); + border: 2px solid rgba(240, 240, 240, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num:focus, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num:focus, + +QDialog#QtSoftwareKeyboardDialog QPushButton:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num:hover, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num:hover { + color: rgba(0, 0, 0, 1); + background: rgba(255, 255, 255, 1); + border: 5px solid rgba(148, 250, 202, 1); + border-radius: 6px; + outline: none; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num:pressed, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num:pressed { + color: rgba(240, 240, 240, 1); + background: rgba(150, 150, 150, 1); + border: 5px solid rgba(148, 250, 202, 1); + border-radius: 6px; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num { + image: url(:/overlay/osk_button_B.png); + image-position: right; + qproperty-icon: url(:/overlay/osk_button_backspace.png); + qproperty-iconSize: 36px; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift { + image: url(:/overlay/osk_button_Y.png); + image-position: right; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num { + image: url(:/overlay/osk_button_plus.png); + image-position: right; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift { + image: url(:/overlay/osk_button_shift_lock_off.png); + image-position: left; + qproperty-icon: url(:/overlay/osk_button_shift.png); + qproperty-iconSize: 36px; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_shift_shift { + image: url(:/overlay/osk_button_shift_lock_off.png); + image-position: left; + qproperty-icon: url(:/overlay/osk_button_shift_on.png); + qproperty-iconSize: 36px; +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_left_bracket, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_right_bracket, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_left_parenthesis, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_right_parenthesis { + padding-bottom: 7px; +} + +QDialog#QtSoftwareKeyboardDialog QWidget#titleOSK QLabel { + background: transparent; + color: #ccc; +} + +QDialog#QtSoftwareKeyboardDialog QWidget#button_L, +QDialog#QtSoftwareKeyboardDialog QWidget#button_L_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#button_L_num { + image: url(:/overlay/button_L.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_left, +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_left_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_left_num { + image: url(:/overlay/arrow_left.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#button_R, +QDialog#QtSoftwareKeyboardDialog QWidget#button_R_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#button_R_num { + image: url(:/overlay/button_R.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_right, +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_right_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#arrow_right_num { + image: url(:/overlay/arrow_right.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#button_press_stick, +QDialog#QtSoftwareKeyboardDialog QWidget#button_press_stick_shift { + image: url(:/overlay/button_press_stick.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#button_X, +QDialog#QtSoftwareKeyboardDialog QWidget#button_X_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#button_X_num { + image: url(:/overlay/button_X.png); +} + +QDialog#QtSoftwareKeyboardDialog QWidget#button_A, +QDialog#QtSoftwareKeyboardDialog QWidget#button_A_shift, +QDialog#QtSoftwareKeyboardDialog QWidget#button_A_num { + image: url(:/overlay/button_A.png); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num:disabled { + color: rgba(164, 164, 164, 1); + background-color: rgba(218, 218, 218, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_at:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_slash:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_percent:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_1:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_2:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_3:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_4:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_5:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_6:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_7:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_8:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_9:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_0:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_return:disabled { + color: rgba(164, 164, 164, 1); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_ok_num:disabled { + image: url(:/overlay/osk_button_plus_disabled.png); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_shift:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_backspace_num:disabled { + image: url(:/overlay/osk_button_B_disabled.png); +} + +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space:disabled, +QDialog#QtSoftwareKeyboardDialog QPushButton#button_space_shift:disabled { + image: url(:/overlay/osk_button_Y_disabled.png); +} diff --git a/dist/qt_themes/qdarkstyle/icons/16x16/refresh.png b/dist/qt_themes/qdarkstyle/icons/16x16/refresh.png deleted file mode 100644 index d4afd76f949ff5c65e039b69ff999325bff5d7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G diff --git a/dist/qt_themes/qdarkstyle/icons/48x48/plus.png b/dist/qt_themes/qdarkstyle/icons/48x48/list-add.png similarity index 100% rename from dist/qt_themes/qdarkstyle/icons/48x48/plus.png rename to dist/qt_themes/qdarkstyle/icons/48x48/list-add.png diff --git a/dist/qt_themes/qdarkstyle/style.qrc b/dist/qt_themes/qdarkstyle/style.qrc index f770e09fd..a89fb26c6 100644 --- a/dist/qt_themes/qdarkstyle/style.qrc +++ b/dist/qt_themes/qdarkstyle/style.qrc @@ -10,7 +10,7 @@ <file alias="48x48/chip.png">icons/48x48/chip.png</file> <file alias="48x48/folder.png">icons/48x48/folder.png</file> <file alias="48x48/no_avatar.png">icons/48x48/no_avatar.png</file> - <file alias="48x48/plus.png">icons/48x48/plus.png</file> + <file alias="48x48/list-add.png">icons/48x48/list-add.png</file> <file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file> <file alias="48x48/star.png">icons/48x48/star.png</file> <file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file> diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/lock.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/lock.png deleted file mode 100644 index c750a39e855800fe4cde217a1bf28f841030e501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPd3#R~&?yEVTSwNw^o-U3d7N_S<x+vIWAm9?-#uUUP z>%ktxROZ0mC!4`O#esdB1N*JU5{0l2e>jubge>mPSJ^&&?%8KcL>WvAo_9+JoM2kO zsn>V#-&Rc~i~Ae_tY5EP-=*8Ab(MpM;j*Q7#*{i)r8@>Yr!28i{4k+p>J|4L=dRCP zQYgN$Vq(bz-seA`PP+eLPWpo{(p_gRe3@1fbK~xheFC)y^e0Hmy!rd&s^O(iEb1#g wo=%oNY{h!`>vV^`LLZb)T(e+SzEHyuo5c9`w}kC2php-yUHx3vIVCg!0C@XzqyPW_ diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/refresh.png deleted file mode 100644 index d4afd76f949ff5c65e039b69ff999325bff5d7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/16x16/view-refresh.png deleted file mode 100644 index d4afd76f949ff5c65e039b69ff999325bff5d7b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p zD}XSgpwrRCKtah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp`bx;Tbd z^d7xr=y%vbfb~LTi_27zh5(s&4G%<C28ukeSh<r$<VxVHm<A)!4kj)KCNGzKIaY0h zV`ZmmGH3m*|M&0a+>TP^t%4d#k2I8Aju<Wd687+y=F<Lc$7;`fd?~J)reSb&$=b?} z<uS=$isn9IeSdSq)r5Jow@dH%?6v4Wn`K;QA+z~caeKDeqIVr#a$Jrqx^}0(V|Itd zN||_bRf*K^agS?OH#o{Y+~I6|NOapR7UMfxZ63+V72KS<=z#J(Lr3}D7Kd%~Hg3+E zlIRz7P3$F8^R9i_Q`rRzCGOjA_R-v1c5jba4WsJ~&MW6R^YVdSX7F_Nb6Mw<&;$Ux C5{w)G diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/256x256/plus_folder.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/256x256/plus_folder.png deleted file mode 100644 index 303f9a321890fc4c2054e2cff498adf23f654b70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3438 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 F|2wrn09yb6 diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/bad_folder.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/bad_folder.png deleted file mode 100644 index 4a9709623476fcf4070c4e3da2bb17375222082e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 zcmV-Q1hxB#P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS00009a7bBm0007`0007`0c6}?i2wiq8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11II~3K~!jg?U`F>9Ay}WpLce(X`;3^T0>M+iWlD0Lu0^XBOwVv zn~fMSUMNL8AyUxd0WYK_EusyAwOT=XBP!~()_4&xN=PpRBb11E?nUcvwt_U;=Fr`p z&x_sJtYeZrW{1K)u(03%|KGds%k2C!%s`zw6`}mX%)-E(Kr^thKyM0|1EwX-t&hDD zFtbO^EN-Q<WM+rWtT9OQqh%QP^NpD`1!2Co3g$fy1rgv_6$6~J8vm6XptFj4O~CC{ z)GLV0%*D4GRmiVocBg8y0Q?4g1$-<i37G)44nMZuoB)O-oxE5BK;}sASS`RA;9QLj z72+~rt8eUOe7i`}%=&|HR}5x$Pu8Qyj6c9c&?XCEW?$#|U2uH!e+S~KG|uLIZ}11W z=%@z>ntFhssRsy}dVrt_2W<erhKED3rNnkf&tLo5@t;cR4g3fgXm&CFspGoeIj(+; zMI*13(jRz$#9-%R7z17{cqtL>xU1OyKm(i}YHv1kMt#F_agNyVaHtrKKm&x58%DsI zSD3mZz8HI=7>&RJoZi`S8`#sU&CB#^Y_R*PLOOv32szFnAoDjd>oKFvj5bM6W|wRc z$$cxd&gU0_1c(hrb^+a9ol3bUTF0iQTgRrR-L!trEi~<pN4wg6?XLhyuc&!|zxw(% z$#}iU<ql@=*vPU^Nk0H@Eib4sOAU+rfNP3w5N)&HMjr8v?g##W8V5++*R>sZri|8u zC-3jx>=ly!0bYa}1~8E8+7ZgTec8GpmD-;_An6leqGkaS(ar~fu5$YYyA#pKt-j$s zHMyCK4en?(lmCjFBOG>~jSocT0fc+gD$hDYF7^h{>kUYnsm<M}ZQKjou<E>&+wa$Y zP^+F;wDaNC&yRnU8!@vq%jd$Fq-aHEeI)Mf*ye_u?}3KZ)|m7huAK)Ex*6FEYe=5b zg~nT2#>dY?#`u}M$#yf_QVruC>5%g-YnTT}Ur4>*IyQB*b!_UWnT{2ZyxuNZ81afQ zFabQ2t*-{A&Fo7cU54KgNpY`;MI%FkzA|*yMz&{m=iMK)d@(r_21bDgfJ?K}Hv*5B zAv-JSsa(<D-(<`muGs9#gw0963G@oU%yt3q;oV%7$J>%}7peF_=U$`(#WV`e+Vc4u z1}-nA&!iy-K+=am4=_&V4SYHLk`o3Yt#u;)*9dF|uFQUlG7liLgSl-~(j+jMeNEa@ ztVkYz=Cr`#nMd_kl%Z1!bN{;zNSX(JuT<G_G>}fa2P9orsn$vePRV%wUoq}`UK9Za QM*si-07*qoM6N<$f^>%fC;$Ke diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/chip.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/chip.png deleted file mode 100644 index 973fabd052e389c28ef36c482cf44d764795a3b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15120 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 diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/folder.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/folder.png deleted file mode 100644 index 0f1e987d6aa24b1d2f26d40181ec05b62c5862da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00009a7bBm000ie z000ie0hKEb8vp<S&`Cr=RA}DqnlWn?K@^409Tp3bhox9siy$^3rPb@~ENxR;T8lp* zf5JZytE3Ylq<PqAAvS^$0um%?lE?XMc40ESgoL+dcV!L?bGO*#%<OmXEHf)rRjsAS zFMtMk91#yCrBycoiij>gj)+A>{26o<fNa0A{lhk01FjRF+TI544LN{!xv{dpX1qVh zAZ$O+XMLRpY!5N}JM^bhV0N4SlcWvcLOzuJ4dT1NlUuDqw(0qqUnTwi7qm<I84)|c z`;^j|BnA2OPe-4D7b&Ih(XyM@c16U6UeXxjZ@|;0WWLq0q-C$Hu5Y{n?q|9BC?Z~~ zs3PaU-1g|0u`OWUdhGN?`Jx5vjU9g5d)WedULtfdfdoFu{5DOOyp#F*Ec~Vw2|Rk` z)Ld4DCShKZDnb>Zicm$UB2*Eo2vvkCLKUHkP(`RBR1vBO{U->e2_Tfp5glb)i-)#n zBcA=4?Za$q@u&fICB1B4$pc9Tzz0cZBlCX;n71A~gm$An5;~C7Xj)nV&r(DzBy9m+ zl_ZzNH#|G*J2tSDQd&f2Y*W%(U}LOrBO;cPK1q5L5g(=ESA#B5TF%l{rK~)Xx+?BT gmh@}z-x~VXU+F%DB-VK&7XSbN07*qoM6N<$g3QzC#sB~S diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/plus.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/plus.png deleted file mode 100644 index 16cc8b4f44d52009d4a3f4c9d46f5bb0e20babcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmSQK*5Dp-y;YjHK@;M7UB8wRq z_>O=u<5X=vX`rBFiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0u)JY5_^ zG8*6BbmVI?5NLh4@}X2!l-S-D>HaqF9f#jLiMc75c-1D{o4(=YB4d5u$$lLMo6j=x zUSPWWW2?jBcdI2P%slmKUl-$FpN4&IYeSNQ8*V0P=El9>^0jUMGlnd_1qi~7(|}J| zQX*~M5!Y#5wY%=$@Lrap@yOElZRqcN@1NB2l?WEb+1qqhd%gU$>qC9Hf>NIS`$c!E z@^cD0wIlW%nb&z$#^EgE6$FvRD#3MqUzqlRtp&OBEq>*PZDy`yczi-rX+hv3f1uwO NJYD@<);T3K0RY^^g3SN` diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/sd_card.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/sd_card.png deleted file mode 100644 index 0291c6542d05a40a350bb5bdbd99a15c01467161..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00004b3#c}2nYxW zd<bNS00009a7bBm000ie000ie0hKEb8vp<R8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10wGC6K~!jg?V7)96hRn<pU)heo<d?{p_YP}R1pg+8}S+&O=n?i zb$zfCth7}B0~@hPB^Cietx{;x3W9irK~15-3;u|{7PsLhv%9%*b$1e(2M%`M+uMEK zow;4OJ*a@BuB7LZHdG&*lHN+XC+S!f&m!@bq+61H)hJ%XnxwOTE8mv1(6G46s-#KZ z%L3&)zyi>9;%C77Y<U8h13m$Z&Nef^G_VBpoqP`X20U`I6TmF647_&oi$Et^o;S1G zA<o<6B|R-TBNx1FB<ZF1*&A7Y#mfhh`d-${w(WU&-#O-E-*4X-`8LBde=fXotsL=# z(gKoNzyr2Vo7m*0{7xfq6S!2L%fF$pfTZ)le8Vo4C>w$6jD~9oIODt?HsBRZt0bRw zme<Yf#ny_X5A`bj8HM)&NdrdL-bFL(I`7>DdcYUphqIq4;3u%|?CJop9~c1NoqP%q z@Y%`Q*)ca5-Xpe{WHeKj&Fr-6S~db994g2rfWrm(!R+N?CEIowoxHK^cpumcqyn)C z`3@YHbj?|xsY|8`Ay=W@MD8lI=ciCA5SvsWHmN{tQi0f{0<lR2Vv`EQCKZTHDiE7g zAU3H$Z2sE<YSbc}oL5<ak2Q-_CHHWptiY3+MXHkXD*J8pB(TEp>B??l6*y&P?o*xO z5iqk?z*XRD17abp0hfLGu}GShbYIdtHUAHlO-XMg-H~*(%<(rT_n!W$2z40%0000< KMNUMnLSTXz{w(PL diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/star.png b/dist/qt_themes/qdarkstyle_midnight_blue/icons/48x48/star.png deleted file mode 100644 index 90d423a1d4c1e05ccec0a01fa34abca9fe99676d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0*XmQK~!jg?U_Aj6hRn<-!X=Zawr;q&KQOG(<q3-`BSCx2P>_t6%-62 zVr82q2v*vNjbd-7sEw6YRw`;*Au;C>A_fF=QIp5w_Hek|?d?ovvLg4u7RTQAeeXLn zyE7jvb?MS28bBE+=dHsFpda|2T>Y`?tcsOb(ukyDa$SyCCp<s_sPLC6(3iKa%m5cy z%K5x?Wd?ZL!oYjL<gKkEz{wWk8=S~nUq^uFDF&Y9tuGZ|Kd_i$U=cVFvS#Sl=ygeH z>)c4X8n|W{fGxmW%IG(!0i{rNL(aezNm<_Y1^sIq8_-96v&zaeuqH(9)t-X;C2f<m zLsCi7u%xXHDK<;G3%rz6l{6{oi!tV_tCl4X955tlyQIM;k%N*3l6$d^1vN=ik}8ru z%QBbzo-)RKY8wrVIV^*`xM^!{euzIvS_n9zF_=uf3!DLd<UPzS_zjF?vIralW^xv6 zQv=R9%@eQ>n8;Z;z&BvnNxWrZ0C<<9_zG~)OT1-b1Mn&b@#DbGWr?>;6o5x7DE>9D zDTsK>L=SLp1;jrF)&>>dWaLIf@ecv7<Bh9{+Y!Xy$D?QVJx&)r<I<Qn#^4&{Yv8D7 zTpCAwf}E!eC`y`@)Z<eyg<q1^8)N2Nf_!G6tnlI`saMh=*B~DQUQ-<_ch^8*;u-)N zEoK&~k}gWRBxyQh%q~J7A#8xN88)P!z#U+n6;}jCsh{gRaXO}fPCfGzV0TLV-sC@N zjK(zZqD|3p;FLq2<G{x@xt_)nZ>V=iHZ#CAz<FN)dXw1M7CFOzM@Xi>!8~vaYn?A6 zZwYt+ELi!6LTGL-v=Mkiy|LL7A^&0Oo!<m8-$Y%y{Ac_D5cb2G%IU<f00000NkvXX Hu0mjfg8oC0 diff --git a/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc b/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc index 142dd3288..dc3d7fecb 100644 --- a/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc +++ b/dist/qt_themes/qdarkstyle_midnight_blue/style.qrc @@ -1,15 +1,16 @@ <RCC> <qresource prefix="icons/qdarkstyle_midnight_blue"> <file alias="index.theme">icons/index.theme</file> - <file alias="16x16/lock.png">icons/16x16/lock.png</file> - <file alias="16x16/view-refresh.png">icons/16x16/view-refresh.png</file> - <file alias="48x48/bad_folder.png">icons/48x48/bad_folder.png</file> - <file alias="48x48/chip.png">icons/48x48/chip.png</file> - <file alias="48x48/folder.png">icons/48x48/folder.png</file> - <file alias="48x48/plus.png">icons/48x48/plus.png</file> - <file alias="48x48/sd_card.png">icons/48x48/sd_card.png</file> - <file alias="48x48/star.png">icons/48x48/star.png</file> - <file alias="256x256/plus_folder.png">icons/256x256/plus_folder.png</file> + <file alias="16x16/lock.png">../qdarkstyle/icons/16x16/lock.png</file> + <file alias="16x16/view-refresh.png">../qdarkstyle/icons/16x16/view-refresh.png</file> + <file alias="48x48/bad_folder.png">../qdarkstyle/icons/48x48/bad_folder.png</file> + <file alias="48x48/chip.png">../qdarkstyle/icons/48x48/chip.png</file> + <file alias="48x48/folder.png">../qdarkstyle/icons/48x48/folder.png</file> + <file alias="48x48/no_avatar.png">../qdarkstyle/icons/48x48/no_avatar.png</file> + <file alias="48x48/list-add.png">../qdarkstyle/icons/48x48/list-add.png</file> + <file alias="48x48/sd_card.png">../qdarkstyle/icons/48x48/sd_card.png</file> + <file alias="48x48/star.png">../qdarkstyle/icons/48x48/star.png</file> + <file alias="256x256/plus_folder.png">../qdarkstyle/icons/256x256/plus_folder.png</file> </qresource> <qresource prefix="qss_icons"> <file>rc/arrow_down.png</file> diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp index 041e6ac11..c4b1f65bd 100644 --- a/src/yuzu/game_list.cpp +++ b/src/yuzu/game_list.cpp @@ -286,7 +286,7 @@ void GameList::OnUpdateThemedIcons() { } case GameListItemType::AddDir: child->setData( - QIcon::fromTheme(QStringLiteral("plus")) + QIcon::fromTheme(QStringLiteral("list-add")) .pixmap(icon_size) .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), Qt::DecorationRole); diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h index e7667cf60..0e19be22d 100644 --- a/src/yuzu/game_list_p.h +++ b/src/yuzu/game_list_p.h @@ -294,7 +294,7 @@ public: const int icon_size = UISettings::values.folder_icon_size.GetValue(); - setData(QIcon::fromTheme(QStringLiteral("plus")) + setData(QIcon::fromTheme(QStringLiteral("list-add")) .pixmap(icon_size) .scaled(icon_size, icon_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation), Qt::DecorationRole); diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f8c234082..e473ac6da 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -257,6 +257,18 @@ static QString PrettyProductName() { return QSysInfo::prettyProductName(); } +bool GMainWindow::check_dark_mode() { +#ifdef __linux__ + const QPalette test_palette(qApp->palette()); + const QColor text_color = test_palette.color(QPalette::Active, QPalette::Text); + const QColor window_color = test_palette.color(QPalette::Active, QPalette::Window); + return (text_color.value() > window_color.value()); +#else + // TODO: Windows + return false; +#endif // __linux__ +} + GMainWindow::GMainWindow(bool has_broken_vulkan) : ui{std::make_unique<Ui::MainWindow>()}, system{std::make_unique<Core::System>()}, input_subsystem{std::make_shared<InputCommon::InputSubsystem>()}, @@ -274,6 +286,13 @@ GMainWindow::GMainWindow(bool has_broken_vulkan) ui->setupUi(this); statusBar()->hide(); + // Check dark mode before a theme is loaded + os_dark_mode = check_dark_mode(); + startup_icon_theme = QIcon::themeName(); + // fallback can only be set once, colorful theme icons are okay on both light/dark + QIcon::setFallbackThemeName(QStringLiteral("colorful")); + QIcon::setFallbackSearchPaths(QStringList(QStringLiteral(":/icons"))); + default_theme_paths = QIcon::themeSearchPaths(); UpdateUITheme(); @@ -3930,8 +3949,21 @@ void GMainWindow::filterBarSetChecked(bool state) { emit(OnToggleFilterBar()); } +static void AdjustLinkColor() { + QPalette new_pal(qApp->palette()); + if (UISettings::IsDarkTheme()) { + new_pal.setColor(QPalette::Link, QColor(0, 190, 255, 255)); + } else { + new_pal.setColor(QPalette::Link, QColor(0, 140, 200, 255)); + } + if (qApp->palette().color(QPalette::Link) != new_pal.color(QPalette::Link)) { + qApp->setPalette(new_pal); + } +} + void GMainWindow::UpdateUITheme() { - const QString default_theme = QStringLiteral("default"); + const QString default_theme = + QString::fromUtf8(UISettings::themes[static_cast<size_t>(Config::default_theme)].second); QString current_theme = UISettings::values.theme; QStringList theme_paths(default_theme_paths); @@ -3939,6 +3971,23 @@ void GMainWindow::UpdateUITheme() { current_theme = default_theme; } +#ifdef _WIN32 + QIcon::setThemeName(current_theme); + AdjustLinkColor(); +#else + if (current_theme == QStringLiteral("default") || current_theme == QStringLiteral("colorful")) { + QIcon::setThemeName(current_theme == QStringLiteral("colorful") ? current_theme + : startup_icon_theme); + QIcon::setThemeSearchPaths(theme_paths); + if (check_dark_mode()) { + current_theme = QStringLiteral("default_dark"); + } + } else { + QIcon::setThemeName(current_theme); + QIcon::setThemeSearchPaths(QStringList(QStringLiteral(":/icons"))); + AdjustLinkColor(); + } +#endif if (current_theme != default_theme) { QString theme_uri{QStringLiteral(":%1/style.qss").arg(current_theme)}; QFile f(theme_uri); @@ -3961,17 +4010,6 @@ void GMainWindow::UpdateUITheme() { qApp->setStyleSheet({}); setStyleSheet({}); } - - QPalette new_pal(qApp->palette()); - if (UISettings::IsDarkTheme()) { - new_pal.setColor(QPalette::Link, QColor(0, 190, 255, 255)); - } else { - new_pal.setColor(QPalette::Link, QColor(0, 140, 200, 255)); - } - qApp->setPalette(new_pal); - - QIcon::setThemeName(current_theme); - QIcon::setThemeSearchPaths(theme_paths); } void GMainWindow::LoadTranslation() { @@ -4022,6 +4060,26 @@ void GMainWindow::SetDiscordEnabled([[maybe_unused]] bool state) { discord_rpc->Update(); } +void GMainWindow::changeEvent(QEvent* event) { +#ifdef __linux__ + // PaletteChange event appears to only reach so far into the GUI, explicitly asking to + // UpdateUITheme is a decent work around + if (event->type() == QEvent::PaletteChange) { + const QPalette test_palette(qApp->palette()); + const QString current_theme = UISettings::values.theme; + // Keeping eye on QPalette::Window to avoid looping. QPalette::Text might be useful too + static QColor last_window_color; + const QColor window_color = test_palette.color(QPalette::Active, QPalette::Window); + if (last_window_color != window_color && (current_theme == QStringLiteral("default") || + current_theme == QStringLiteral("colorful"))) { + UpdateUITheme(); + } + last_window_color = window_color; + } +#endif // __linux__ + QWidget::changeEvent(event); +} + #ifdef main #undef main #endif diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 23b67a14e..2d1c8857b 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -251,6 +251,7 @@ private: bool ConfirmForceLockedExit(); void RequestGameExit(); void RequestGameResume(); + void changeEvent(QEvent* event) override; void closeEvent(QCloseEvent* event) override; #ifdef __linux__ @@ -392,6 +393,10 @@ private: QTimer mouse_hide_timer; QTimer mouse_center_timer; + QString startup_icon_theme; + bool os_dark_mode = false; + bool check_dark_mode(); + // FS std::shared_ptr<FileSys::VfsFilesystem> vfs; std::unique_ptr<FileSys::ManualContentProvider> provider;