aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-02-21 07:48:45 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-02-23 11:31:33 +0100
commit31426ba0effc29f25f1aa69be784533e1b022ee6 (patch)
treec82bc13c7c07cfef773f7851bf346c170f04a885 /src
parent804592dd57a8444e0e54d5c31b28bc646a3fdb9a (diff)
downloadkristall-31426ba0effc29f25f1aa69be784533e1b022ee6.tar.gz
Add light icons for favourite/certificate buttons for dark themes
Diffstat (limited to 'src')
-rw-r--r--src/browsertab.cpp28
-rw-r--r--src/browsertab.hpp2
-rw-r--r--src/browsertab.ui8
-rw-r--r--src/icons.qrc12
-rw-r--r--src/icons/dark/actions/certificate-off.svg1
-rw-r--r--src/icons/dark/actions/certificate-on.svg14
-rw-r--r--src/icons/dark/actions/favourite-off.svg1
-rw-r--r--src/icons/dark/actions/favourite-on.svg4
-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.hpp1
-rw-r--r--src/main.cpp12
-rw-r--r--src/mainwindow.cpp1
-rw-r--r--src/mainwindow.ui2
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>