From 31426ba0effc29f25f1aa69be784533e1b022ee6 Mon Sep 17 00:00:00 2001 From: Mike Skec Date: Sun, 21 Feb 2021 07:48:45 +1100 Subject: Add light icons for favourite/certificate buttons for dark themes --- src/browsertab.cpp | 28 ++++++++++++++++++++++++++++ src/browsertab.hpp | 2 ++ src/browsertab.ui | 8 ++++---- src/icons.qrc | 12 ++++++++---- src/icons/common/certificate-off.svg | 1 - src/icons/common/certificate-on.svg | 14 -------------- src/icons/common/favourite-off.svg | 1 - src/icons/common/favourite-on.svg | 4 ---- src/icons/dark/actions/certificate-off.svg | 1 + src/icons/dark/actions/certificate-on.svg | 14 ++++++++++++++ src/icons/dark/actions/favourite-off.svg | 1 + src/icons/dark/actions/favourite-on.svg | 4 ++++ src/icons/light/actions/certificate-off.svg | 1 + src/icons/light/actions/certificate-on.svg | 14 ++++++++++++++ src/icons/light/actions/favourite-off.svg | 1 + src/icons/light/actions/favourite-on.svg | 4 ++++ src/kristall.hpp | 1 + src/main.cpp | 12 ++++++++++++ src/mainwindow.cpp | 1 + src/mainwindow.ui | 2 +- 20 files changed, 97 insertions(+), 29 deletions(-) delete mode 100644 src/icons/common/certificate-off.svg delete mode 100644 src/icons/common/certificate-on.svg delete mode 100644 src/icons/common/favourite-off.svg delete mode 100644 src/icons/common/favourite-on.svg create mode 100644 src/icons/dark/actions/certificate-off.svg create mode 100644 src/icons/dark/actions/certificate-on.svg create mode 100644 src/icons/dark/actions/favourite-off.svg create mode 100644 src/icons/dark/actions/favourite-on.svg create mode 100644 src/icons/light/actions/certificate-off.svg create mode 100644 src/icons/light/actions/certificate-on.svg create mode 100644 src/icons/light/actions/favourite-off.svg create mode 100644 src/icons/light/actions/favourite-on.svg (limited to 'src') diff --git a/src/browsertab.cpp b/src/browsertab.cpp index 783b503..7288677 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -162,6 +162,7 @@ BrowserTab::BrowserTab(MainWindow *mainWindow) : QWidget(nullptr), }); refreshOptionalToolbarItems(); + refreshToolbarIcons(); } BrowserTab::~BrowserTab() @@ -1418,6 +1419,33 @@ void BrowserTab::refreshOptionalToolbarItems() this->ui->parent_button->setVisible(kristall::options.enable_parent_btn); } +void BrowserTab::refreshToolbarIcons() +{ + const QString ICO_NAMES[] = { + "light", + "dark" + }; + + QString ico_name = ICO_NAMES[(int)kristall::options.explicit_icon_theme]; + + // Favourites button icons + QIcon ico_fav; + QPixmap p_fav_on (":/icons/" + ico_name + "/actions/favourite-on.svg"); + QPixmap p_fav_off(":/icons/" + ico_name + "/actions/favourite-off.svg"); + ico_fav.addPixmap(p_fav_on, QIcon::Normal, QIcon::On); + ico_fav.addPixmap(p_fav_off, QIcon::Normal, QIcon::Off); + + // Certificates button icons + QIcon ico_cert; + QPixmap p_cert_on (":/icons/" + ico_name + "/actions/certificate-on.svg"); + QPixmap p_cert_off(":/icons/" + ico_name + "/actions/certificate-off.svg"); + ico_cert.addPixmap(p_cert_on, QIcon::Normal, QIcon::On); + ico_cert.addPixmap(p_cert_off, QIcon::Normal, QIcon::Off); + + this->ui->fav_button->setIcon(ico_fav); + this->ui->enable_client_cert_button->setIcon(ico_cert); +} + bool BrowserTab::trySetClientCertificate(const QString &query) { CertificateSelectionDialog dialog{this}; diff --git a/src/browsertab.hpp b/src/browsertab.hpp index 355aa8d..16bbfab 100644 --- a/src/browsertab.hpp +++ b/src/browsertab.hpp @@ -109,6 +109,8 @@ public: void refreshOptionalToolbarItems(); + void refreshToolbarIcons(); + signals: void titleChanged(QString const & title); void locationChanged(QUrl const & url); diff --git a/src/browsertab.ui b/src/browsertab.ui index 7db1862..81c1f05 100644 --- a/src/browsertab.ui +++ b/src/browsertab.ui @@ -163,8 +163,8 @@ - :/icons/common/favourite-off.svg - :/icons/common/favourite-on.svg:/icons/common/favourite-off.svg + :/icons/light/actions/favourite-off.svg + :/icons/light/actions/favourite-on.svg:/icons/light/actions/favourite-off.svg true @@ -184,8 +184,8 @@ - :/icons/common/certificate-off.svg - :/icons/common/certificate-on.svg:/icons/common/certificate-off.svg + :/icons/light/actions/certificate-off.svg + :/icons/light/actions/certificate-on.svg:/icons/light/actions/certificate-off.svg true diff --git a/src/icons.qrc b/src/icons.qrc index a9be58b..d623dc0 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -1,9 +1,5 @@ - icons/common/certificate-off.svg - icons/common/certificate-on.svg - icons/common/favourite-off.svg - icons/common/favourite-on.svg icons/gopher/binary.svg icons/gopher/directory.svg icons/gopher/dns.svg @@ -29,6 +25,10 @@ icons/light/actions/document-export.svg icons/light/actions/document-import.svg icons/light/actions/document-save.svg + icons/light/actions/certificate-off.svg + icons/light/actions/certificate-on.svg + icons/light/actions/favourite-off.svg + icons/light/actions/favourite-on.svg icons/light/objects/view-certificate.svg icons/light/objects/folder.svg icons/light/objects/font.svg @@ -66,6 +66,10 @@ icons/dark/actions/document-export.svg icons/dark/actions/document-import.svg icons/dark/actions/document-save.svg + icons/dark/actions/certificate-off.svg + icons/dark/actions/certificate-on.svg + icons/dark/actions/favourite-off.svg + icons/dark/actions/favourite-on.svg icons/dark/objects/bookmarks.svg icons/dark/objects/view-certificate.svg icons/dark/objects/changelog.svg diff --git a/src/icons/common/certificate-off.svg b/src/icons/common/certificate-off.svg deleted file mode 100644 index c46cd12..0000000 --- a/src/icons/common/certificate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/icons/common/certificate-on.svg b/src/icons/common/certificate-on.svg deleted file mode 100644 index 1390967..0000000 --- a/src/icons/common/certificate-on.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/src/icons/common/favourite-off.svg b/src/icons/common/favourite-off.svg deleted file mode 100644 index 26b2df3..0000000 --- a/src/icons/common/favourite-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/icons/common/favourite-on.svg b/src/icons/common/favourite-on.svg deleted file mode 100644 index 0bc5b64..0000000 --- a/src/icons/common/favourite-on.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/icons/dark/actions/certificate-off.svg b/src/icons/dark/actions/certificate-off.svg new file mode 100644 index 0000000..4e4918e --- /dev/null +++ b/src/icons/dark/actions/certificate-off.svg @@ -0,0 +1 @@ + diff --git a/src/icons/dark/actions/certificate-on.svg b/src/icons/dark/actions/certificate-on.svg new file mode 100644 index 0000000..8de3b91 --- /dev/null +++ b/src/icons/dark/actions/certificate-on.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/src/icons/dark/actions/favourite-off.svg b/src/icons/dark/actions/favourite-off.svg new file mode 100644 index 0000000..d36fc37 --- /dev/null +++ b/src/icons/dark/actions/favourite-off.svg @@ -0,0 +1 @@ + diff --git a/src/icons/dark/actions/favourite-on.svg b/src/icons/dark/actions/favourite-on.svg new file mode 100644 index 0000000..370c248 --- /dev/null +++ b/src/icons/dark/actions/favourite-on.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/icons/light/actions/certificate-off.svg b/src/icons/light/actions/certificate-off.svg new file mode 100644 index 0000000..c46cd12 --- /dev/null +++ b/src/icons/light/actions/certificate-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/light/actions/certificate-on.svg b/src/icons/light/actions/certificate-on.svg new file mode 100644 index 0000000..1390967 --- /dev/null +++ b/src/icons/light/actions/certificate-on.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/src/icons/light/actions/favourite-off.svg b/src/icons/light/actions/favourite-off.svg new file mode 100644 index 0000000..26b2df3 --- /dev/null +++ b/src/icons/light/actions/favourite-off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/light/actions/favourite-on.svg b/src/icons/light/actions/favourite-on.svg new file mode 100644 index 0000000..0bc5b64 --- /dev/null +++ b/src/icons/light/actions/favourite-on.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/kristall.hpp b/src/kristall.hpp index 6147aac..b692e75 100644 --- a/src/kristall.hpp +++ b/src/kristall.hpp @@ -61,6 +61,7 @@ struct GenericSettings QString search_engine = "gemini://geminispace.info/search?%1"; Theme theme = Theme::light; IconTheme icon_theme = IconTheme::automatic; + IconTheme explicit_icon_theme = IconTheme::dark; UIDensity ui_density = UIDensity::compact; TextDisplay text_display = FormattedText; bool enable_text_decoration = false; diff --git a/src/main.cpp b/src/main.cpp index 476a333..d54ae22 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -519,6 +519,11 @@ void kristall::setIconTheme(IconTheme icotheme, Theme uitheme) "dark" // Dark theme (light icons) }; + auto ret = []() { + if (main_window && main_window->curTab()) + main_window->curTab()->refreshToolbarIcons(); + }; + if (icotheme == IconTheme::automatic) { if (uitheme == Theme::os_default) @@ -531,16 +536,23 @@ void kristall::setIconTheme(IconTheme icotheme, Theme uitheme) QIcon::setThemeName(""); #endif + kristall::options.explicit_icon_theme = IconTheme::dark; + + ret(); return; } // Use icon theme based on UI theme QIcon::setThemeName(icothemes[(int)uitheme]); + kristall::options.explicit_icon_theme = (IconTheme)uitheme; + ret(); return; } // Use icon specified by user QIcon::setThemeName(icothemes[(int)icotheme]); + kristall::options.explicit_icon_theme = (IconTheme)icotheme; + ret(); } void kristall::setUiDensity(UIDensity density, bool previewing) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 2851c84..64f5fab 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -438,6 +438,7 @@ void MainWindow::on_actionSettings_triggered() { BrowserTab *t = this->tabAt(i); t->refreshOptionalToolbarItems(); + t->refreshToolbarIcons(); t->needs_rerender = true; } // Re-render the currently-open tab if we have one. diff --git a/src/mainwindow.ui b/src/mainwindow.ui index af421a7..48c6bfc 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -377,7 +377,7 @@ - :/icons/common/favourite-on.svg:/icons/common/favourite-on.svg + :/icons/light/actions/favourite-on.svg:/icons/light/actions/favourite-on.svg Add to favourites -- cgit v1.2.3