From 0d17b09dad2a9d07ac02e43a4b4334c52d2d6283 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Thu, 7 Mar 2024 14:17:50 -0800 Subject: [PATCH] Use better static icons for widgets in dark mode --- src/appsettings.cpp | 12 ++++++++++++ src/appsettings.h | 3 ++- .../16x16/actions/application-menu.png | Bin 0 -> 173 bytes .../qtextpad-dark/16x16/actions/go-down.png | Bin 0 -> 216 bytes src/icons/qtextpad-dark/16x16/actions/go-up.png | Bin 0 -> 231 bytes .../16x16/actions/search-filter.png | Bin 0 -> 411 bytes src/icons/qtextpad-dark/index.theme | 15 +++++++++++++++ .../16x16/actions}/search-filter.png | Bin src/qtextpad.qrc | 13 +++++++++---- src/searchdialog.cpp | 10 ++++------ src/settingspopup.cpp | 3 ++- 11 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 src/icons/qtextpad-dark/16x16/actions/application-menu.png create mode 100644 src/icons/qtextpad-dark/16x16/actions/go-down.png create mode 100644 src/icons/qtextpad-dark/16x16/actions/go-up.png create mode 100644 src/icons/qtextpad-dark/16x16/actions/search-filter.png create mode 100644 src/icons/qtextpad-dark/index.theme rename src/icons/{ => qtextpad/16x16/actions}/search-filter.png (100%) diff --git a/src/appsettings.cpp b/src/appsettings.cpp index c9c6f3d..3e82855 100644 --- a/src/appsettings.cpp +++ b/src/appsettings.cpp @@ -22,6 +22,8 @@ #include #include #include +#include +#include #define RECENT_FILES 10 #define RECENT_SEARCHES 20 @@ -266,3 +268,13 @@ void QTextPadSettings::addRecentSearchReplacement(const QString &text) replacements.removeLast(); m_settings.setValue(QStringLiteral("Search/RecentReplace"), replacements); } + +QIcon QTextPadSettings::staticIcon(const QString &iconName, const QPalette &palette) +{ + const bool darkTheme = palette.color(QPalette::Window).lightness() < 128; + qDebug("Lightness = %d", palette.color(QPalette::Window).lightness()); + const QString iconPattern = darkTheme + ? QStringLiteral(":/icons/qtextpad-dark/16x16/actions/%1.png") + : QStringLiteral(":/icons/qtextpad/16x16/actions/%1.png"); + return QIcon(iconPattern.arg(iconName)); +} diff --git a/src/appsettings.h b/src/appsettings.h index e4d5c14..74a6ebb 100644 --- a/src/appsettings.h +++ b/src/appsettings.h @@ -109,12 +109,13 @@ class QTextPadSettings SIMPLE_SETTING(bool, "Search/Escapes", searchEscapes, setSearchEscapes, false) SIMPLE_SETTING(bool, "Search/Wrap", searchWrap, setSearchWrap, true) + static QIcon staticIcon(const QString &iconName, const QPalette &palette); + private: QSettings m_settings; }; /* Helper for loading theme icons */ #define ICON(name) QIcon::fromTheme(QStringLiteral(name)) -#define ICON_S16(name) QIcon(QStringLiteral(":/icons/qtextpad/16x16/actions/" name ".png")) #endif // QTEXTPAD_APPSETTINGS_H diff --git a/src/icons/qtextpad-dark/16x16/actions/application-menu.png b/src/icons/qtextpad-dark/16x16/actions/application-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..a1b3056c5cd9bac8e445ead78056cd47ea657762 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1UFJY5_^ zEP9g@BtA6=9;^8O@Ns>R2^ZG~V4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1S-JzX3_ zEPCHg*vNZ8frmx1hsjWH_Rfd*=P9^O(UO?cp||r|`L-uh>b@~XF$YYO3vkHZ?)ZM1 zqv)io-P6zcbjTDOEwJH|J1+iwbBM##6UBd3^B?mUGAurmAAf55$4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T2JY5_^ zEPCHg*v)%DfyX8H*&>HX#Zb4Fvl%tVm|H|LgA^Vuc{X+VZx8n^Gnf<@J^mlQrM2a1 zq^Crul31s6+ADYaN_D=-Q1k1XI$SeWpFiMH+^GVPhJ23 literal 0 HcmV?d00001 diff --git a/src/icons/qtextpad-dark/16x16/actions/search-filter.png b/src/icons/qtextpad-dark/16x16/actions/search-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..e9fd1e5592cd5249bdc00f81a662cafabe0f15c4 GIT binary patch literal 411 zcmV;M0c8G(P);-A4Wd+`YzoD^{i1dY&hPizxSAlJ3S^;WFlw_VP6f1CsScWCsHBuT^fn};AA z0B8e

a7F%yl~*DolVg`gx|&>;YJD2z#F&#k@n<2e8^|WxY7ozI7F5Ic1jUn_0vx zCw4%|vr=l!G!v1Kl{{Hb0MM?g>d{mx%klxxi{pUUb=@UX$@9Erz!|fF#+BA|Y%0|? zj-YXF1&U(WCBg!;L?RNVX*w$+A+tmv>=M=YRv-w1JkN*Q0Pbpy>nU>=4n~&@Dml zXwU`o`-TbmQTqLCot3;OrM4zTUME7Bd6QLk^K0PG^9B5^hG|7yknI2f002ovPDHLk FV1oTXr@8icons/qtextpad-64.png icons/qtextpad-128.png - - icons/search-filter.png - - + icons/qtextpad/index.theme icons/qtextpad/16x16/actions/application-menu.png icons/qtextpad/16x16/actions/document-new.png @@ -33,6 +31,7 @@ icons/qtextpad/16x16/actions/go-jump.png icons/qtextpad/16x16/actions/go-up.png icons/qtextpad/16x16/actions/help-about.png + icons/qtextpad/16x16/actions/search-filter.png icons/qtextpad/16x16/actions/view-fullscreen.png icons/qtextpad/16x16/actions/view-refresh.png icons/qtextpad/16x16/actions/view-restore.png @@ -64,5 +63,11 @@ icons/qtextpad/22x22/actions/zoom-in.png icons/qtextpad/22x22/actions/zoom-original.png icons/qtextpad/22x22/actions/zoom-out.png + + icons/qtextpad-dark/index.theme + icons/qtextpad-dark/16x16/actions/application-menu.png + icons/qtextpad-dark/16x16/actions/go-down.png + icons/qtextpad-dark/16x16/actions/go-up.png + icons/qtextpad-dark/16x16/actions/search-filter.png diff --git a/src/searchdialog.cpp b/src/searchdialog.cpp index 5467f0b..be3361a 100644 --- a/src/searchdialog.cpp +++ b/src/searchdialog.cpp @@ -50,9 +50,9 @@ SearchWidget::SearchWidget(QTextPadWindow *parent) : QWidget(parent), m_editor(parent->editor()) { auto tbMenu = new QToolButton(this); + const QPalette &pal = palette(); tbMenu->setAutoRaise(true); - tbMenu->setIconSize(QSize(16, 16)); - tbMenu->setIcon(ICON_S16("application-menu")); + tbMenu->setIcon(QTextPadSettings::staticIcon(QStringLiteral("application-menu"), pal)); tbMenu->setToolTip(tr("Search Settings")); tbMenu->setStyleSheet(QStringLiteral("QToolButton::menu-indicator { image: none; }")); @@ -82,14 +82,12 @@ SearchWidget::SearchWidget(QTextPadWindow *parent) auto tbNext = new QToolButton(this); tbNext->setAutoRaise(true); - tbNext->setIconSize(QSize(16, 16)); - tbNext->setIcon(ICON_S16("go-down")); + tbNext->setIcon(QTextPadSettings::staticIcon(QStringLiteral("go-down"), pal)); tbNext->setToolTip(tr("Find Next")); auto tbPrev = new QToolButton(this); tbPrev->setAutoRaise(true); - tbPrev->setIconSize(QSize(16, 16)); - tbPrev->setIcon(ICON_S16("go-up")); + tbPrev->setIcon(QTextPadSettings::staticIcon(QStringLiteral("go-up"), pal)); tbPrev->setToolTip(tr("Find Previous")); auto layout = new QHBoxLayout(this); diff --git a/src/settingspopup.cpp b/src/settingspopup.cpp index 05c50c5..da90012 100644 --- a/src/settingspopup.cpp +++ b/src/settingspopup.cpp @@ -27,13 +27,14 @@ #include +#include "appsettings.h" #include "syntaxtextedit.h" #include "charsets.h" TreeFilterEdit::TreeFilterEdit(QWidget *parent) : QLineEdit(parent) { - m_searchIcon = QIcon(QStringLiteral(":/icons/search-filter.png")); + m_searchIcon = QTextPadSettings::staticIcon(QStringLiteral("search-filter"), palette()); setClearButtonEnabled(true); resizeEvent(Q_NULLPTR); }