diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-02-21 07:48:45 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-02-23 11:31:33 +0100 |
| commit | 31426ba0effc29f25f1aa69be784533e1b022ee6 (patch) | |
| tree | c82bc13c7c07cfef773f7851bf346c170f04a885 /src | |
| parent | 804592dd57a8444e0e54d5c31b28bc646a3fdb9a (diff) | |
| download | kristall-31426ba0effc29f25f1aa69be784533e1b022ee6.tar.gz | |
Add light icons for favourite/certificate buttons for dark themes
Diffstat (limited to 'src')
| -rw-r--r-- | src/browsertab.cpp | 28 | ||||
| -rw-r--r-- | src/browsertab.hpp | 2 | ||||
| -rw-r--r-- | src/browsertab.ui | 8 | ||||
| -rw-r--r-- | src/icons.qrc | 12 | ||||
| -rw-r--r-- | src/icons/dark/actions/certificate-off.svg | 1 | ||||
| -rw-r--r-- | src/icons/dark/actions/certificate-on.svg | 14 | ||||
| -rw-r--r-- | src/icons/dark/actions/favourite-off.svg | 1 | ||||
| -rw-r--r-- | src/icons/dark/actions/favourite-on.svg | 4 | ||||
| -rw-r--r-- | src/icons/light/actions/certificate-off.svg (renamed from src/icons/common/certificate-off.svg) | 0 | ||||
| -rw-r--r-- | src/icons/light/actions/certificate-on.svg (renamed from src/icons/common/certificate-on.svg) | 0 | ||||
| -rw-r--r-- | src/icons/light/actions/favourite-off.svg (renamed from src/icons/common/favourite-off.svg) | 0 | ||||
| -rw-r--r-- | src/icons/light/actions/favourite-on.svg (renamed from src/icons/common/favourite-on.svg) | 0 | ||||
| -rw-r--r-- | src/kristall.hpp | 1 | ||||
| -rw-r--r-- | src/main.cpp | 12 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 1 | ||||
| -rw-r--r-- | src/mainwindow.ui | 2 |
16 files changed, 77 insertions, 9 deletions
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 @@ </property> <property name="icon"> <iconset resource="icons.qrc"> - <normaloff>:/icons/common/favourite-off.svg</normaloff> - <normalon>:/icons/common/favourite-on.svg</normalon>:/icons/common/favourite-off.svg</iconset> + <normaloff>:/icons/light/actions/favourite-off.svg</normaloff> + <normalon>:/icons/light/actions/favourite-on.svg</normalon>:/icons/light/actions/favourite-off.svg</iconset> </property> <property name="checkable"> <bool>true</bool> @@ -184,8 +184,8 @@ </property> <property name="icon"> <iconset resource="icons.qrc"> - <normaloff>:/icons/common/certificate-off.svg</normaloff> - <normalon>:/icons/common/certificate-on.svg</normalon>:/icons/common/certificate-off.svg</iconset> + <normaloff>:/icons/light/actions/certificate-off.svg</normaloff> + <normalon>:/icons/light/actions/certificate-on.svg</normalon>:/icons/light/actions/certificate-off.svg</iconset> </property> <property name="checkable"> <bool>true</bool> 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 @@ <RCC> <qresource prefix="/"> - <file>icons/common/certificate-off.svg</file> - <file>icons/common/certificate-on.svg</file> - <file>icons/common/favourite-off.svg</file> - <file>icons/common/favourite-on.svg</file> <file>icons/gopher/binary.svg</file> <file>icons/gopher/directory.svg</file> <file>icons/gopher/dns.svg</file> @@ -29,6 +25,10 @@ <file>icons/light/actions/document-export.svg</file> <file>icons/light/actions/document-import.svg</file> <file>icons/light/actions/document-save.svg</file> + <file>icons/light/actions/certificate-off.svg</file> + <file>icons/light/actions/certificate-on.svg</file> + <file>icons/light/actions/favourite-off.svg</file> + <file>icons/light/actions/favourite-on.svg</file> <file>icons/light/objects/view-certificate.svg</file> <file>icons/light/objects/folder.svg</file> <file>icons/light/objects/font.svg</file> @@ -66,6 +66,10 @@ <file>icons/dark/actions/document-export.svg</file> <file>icons/dark/actions/document-import.svg</file> <file>icons/dark/actions/document-save.svg</file> + <file>icons/dark/actions/certificate-off.svg</file> + <file>icons/dark/actions/certificate-on.svg</file> + <file>icons/dark/actions/favourite-off.svg</file> + <file>icons/dark/actions/favourite-on.svg</file> <file>icons/dark/objects/bookmarks.svg</file> <file>icons/dark/objects/view-certificate.svg</file> <file>icons/dark/objects/changelog.svg</file> 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 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M21,11C21,16.55 17.16,21.74 12,23C6.84,21.74 3,16.55 3,11V5L12,1L21,5V11M12,21C15.75,20 19,15.54 19,11.22V6.3L12,3.18L5,6.3V11.22C5,15.54 8.25,20 12,21Z" /></svg> 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 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 24 24" + height="24" + width="24" + version="1.1"> + <path + fill="#0000ff" + d="M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1M12,7C13.4,7 14.8,8.1 14.8,9.5V11C15.4,11 16,11.6 16,12.3V15.8C16,16.4 15.4,17 14.7,17H9.2C8.6,17 8,16.4 8,15.7V12.2C8,11.6 8.6,11 9.2,11V9.5C9.2,8.1 10.6,7 12,7M12,8.2C11.2,8.2 10.5,8.7 10.5,9.5V11H13.5V9.5C13.5,8.7 12.8,8.2 12,8.2Z" /> + <path + fill="#ffffff" + d="M 21,11 C 21,16.55 17.16,21.739999 12,23 6.84,21.739999 3,16.55 3,11 V 5 l 9,-4 9,4 v 6 m -9,10 c 3.75,-1 7,-5.46 7,-9.78 V 6.3 L 12,3.18 5,6.3 v 4.92 c 0,4.32 3.25,8.779999 7,9.78 z"/> +</svg> 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 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#ffffff" d="M12.1,18.55L12,18.65L11.89,18.55C7.14,14.24 4,11.39 4,8.5C4,6.5 5.5,5 7.5,5C9.04,5 10.54,6 11.07,7.36H12.93C13.46,6 14.96,5 16.5,5C18.5,5 20,6.5 20,8.5C20,11.39 16.86,14.24 12.1,18.55M16.5,3C14.76,3 13.09,3.81 12,5.08C10.91,3.81 9.24,3 7.5,3C4.42,3 2,5.41 2,8.5C2,12.27 5.4,15.36 10.55,20.03L12,21.35L13.45,20.03C18.6,15.36 22,12.27 22,8.5C22,5.41 19.58,3 16.5,3Z" /></svg> 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 @@ +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"> + +<path fill="#CC0000" d="M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" /> +<path fill="#ffffff" d="M12.1,18.55L12,18.65L11.89,18.55C7.14,14.24 4,11.39 4,8.5C4,6.5 5.5,5 7.5,5C9.04,5 10.54,6 11.07,7.36H12.93C13.46,6 14.96,5 16.5,5C18.5,5 20,6.5 20,8.5C20,11.39 16.86,14.24 12.1,18.55M16.5,3C14.76,3 13.09,3.81 12,5.08C10.91,3.81 9.24,3 7.5,3C4.42,3 2,5.41 2,8.5C2,12.27 5.4,15.36 10.55,20.03L12,21.35L13.45,20.03C18.6,15.36 22,12.27 22,8.5C22,5.41 19.58,3 16.5,3Z" /></svg> diff --git a/src/icons/common/certificate-off.svg b/src/icons/light/actions/certificate-off.svg index c46cd12..c46cd12 100644 --- a/src/icons/common/certificate-off.svg +++ b/src/icons/light/actions/certificate-off.svg diff --git a/src/icons/common/certificate-on.svg b/src/icons/light/actions/certificate-on.svg index 1390967..1390967 100644 --- a/src/icons/common/certificate-on.svg +++ b/src/icons/light/actions/certificate-on.svg diff --git a/src/icons/common/favourite-off.svg b/src/icons/light/actions/favourite-off.svg index 26b2df3..26b2df3 100644 --- a/src/icons/common/favourite-off.svg +++ b/src/icons/light/actions/favourite-off.svg diff --git a/src/icons/common/favourite-on.svg b/src/icons/light/actions/favourite-on.svg index 0bc5b64..0bc5b64 100644 --- a/src/icons/common/favourite-on.svg +++ b/src/icons/light/actions/favourite-on.svg 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 @@ </property> <property name="icon"> <iconset resource="icons.qrc"> - <normaloff>:/icons/common/favourite-on.svg</normaloff>:/icons/common/favourite-on.svg</iconset> + <normaloff>:/icons/light/actions/favourite-on.svg</normaloff>:/icons/light/actions/favourite-on.svg</iconset> </property> <property name="text"> <string>Add to favourites</string> |
