From e069fbc37f9dfa7dcaae32238bdb4770b8587538 Mon Sep 17 00:00:00 2001
From: skomerko <168652295+skomerko@users.noreply.github.com>
Date: Sat, 17 Aug 2024 07:38:44 +0200
Subject: [PATCH] WebUI: Add missing icons
This adds missing icons to WebUI (in tabs, buttons, etc.).
PR #21162.
---
src/webui/www/private/css/Layout.css | 4 +++
src/webui/www/private/css/Tabs.css | 14 ++++++---
src/webui/www/private/css/Window.css | 1 +
src/webui/www/private/css/dynamicTable.css | 5 +++
src/webui/www/private/css/palette.css | 9 ++++++
src/webui/www/private/css/style.css | 32 +++++++++++--------
src/webui/www/private/images/ip-blocked.svg | 1 +
src/webui/www/private/images/network-connect.svg | 1 +
src/webui/www/private/images/network-server.svg | 1 +
src/webui/www/private/images/peers.svg | 1 +
src/webui/www/private/images/plugins.svg | 1 +
.../www/private/images/preferences-advanced.svg | 1 +
.../www/private/images/preferences-bittorrent.svg | 1 +
.../www/private/images/preferences-desktop.svg | 1 +
src/webui/www/private/images/preferences-webui.svg | 1 +
src/webui/www/private/index.html | 20 ++++++++----
src/webui/www/private/scripts/client.js | 2 ++
src/webui/www/private/scripts/mocha-init.js | 23 ++++++++++++++
src/webui/www/private/scripts/prop-files.js | 2 ++
src/webui/www/private/scripts/prop-peers.js | 1 +
src/webui/www/private/scripts/prop-trackers.js | 2 ++
src/webui/www/private/scripts/search.js | 19 ++++++------
src/webui/www/private/views/log.html | 4 ---
src/webui/www/private/views/logTabs.html | 18 ++++++-----
.../www/private/views/preferencesToolbar.html | 36 ++++++++++++++++------
src/webui/www/private/views/propertiesToolbar.html | 24 ++++++++++-----
src/webui/www/private/views/rss.html | 30 +++++++++++++++---
src/webui/www/private/views/rssDownloader.html | 4 +++
src/webui/www/private/views/search.html | 18 +++++++++--
src/webui/www/private/views/searchplugins.html | 1 +
src/webui/www/webui.qrc | 9 ++++++
31 files changed, 220 insertions(+), 67 deletions(-)
create mode 100644 src/webui/www/private/images/ip-blocked.svg
create mode 100644 src/webui/www/private/images/network-connect.svg
create mode 100644 src/webui/www/private/images/network-server.svg
create mode 100644 src/webui/www/private/images/peers.svg
create mode 100644 src/webui/www/private/images/plugins.svg
create mode 100644 src/webui/www/private/images/preferences-advanced.svg
create mode 100644 src/webui/www/private/images/preferences-bittorrent.svg
create mode 100644 src/webui/www/private/images/preferences-desktop.svg
create mode 100644 src/webui/www/private/images/preferences-webui.svg
rewrite src/webui/www/private/views/logTabs.html (85%)
diff --git a/src/webui/www/private/css/Layout.css b/src/webui/www/private/css/Layout.css
index 0245cbcbb..f6d2c8343 100644
--- a/src/webui/www/private/css/Layout.css
+++ b/src/webui/www/private/css/Layout.css
@@ -120,6 +120,10 @@ body {
color: var(--color-text-white);
}
+#desktopNavbar a:hover img {
+ filter: var(--color-icon-hover);
+}
+
#desktopNavbar ul li a.arrow-right,
#desktopNavbar ul li a:hover.arrow-right {
background-image: url("../images/arrow-right.gif");
diff --git a/src/webui/www/private/css/Tabs.css b/src/webui/www/private/css/Tabs.css
index e5b4cb199..61080dc87 100644
--- a/src/webui/www/private/css/Tabs.css
+++ b/src/webui/www/private/css/Tabs.css
@@ -36,14 +36,21 @@ Required by:
float: left;
}
+.tab-menu .selected img,
+.tab-menu li:hover img {
+ filter: var(--color-icon-hover);
+}
+
.tab-menu li a {
+ align-items: center;
background-color: var(--color-background-default);
border-radius: 5px 5px 0 0;
color: var(--color-text-default);
- display: block;
+ display: flex;
font-weight: normal;
- margin-left: 8px;
- padding: 5px 16px;
+ gap: 5px;
+ margin-left: 6px;
+ padding: 5px 8px;
text-align: center;
}
@@ -55,5 +62,4 @@ Required by:
.tab-menu li.selected a {
background-color: var(--color-background-blue);
color: var(--color-text-white);
- font-weight: bold;
}
diff --git a/src/webui/www/private/css/Window.css b/src/webui/www/private/css/Window.css
index 73cab1219..a5b1694e2 100644
--- a/src/webui/www/private/css/Window.css
+++ b/src/webui/www/private/css/Window.css
@@ -54,6 +54,7 @@ Required by:
}
.mochaTitlebar h3 {
+ background-size: 16px !important; /* override mocha titlebar logo inline style */
font-size: 12px;
font-weight: bold;
line-height: 15px;
diff --git a/src/webui/www/private/css/dynamicTable.css b/src/webui/www/private/css/dynamicTable.css
index 1eb7888b7..f174f81a2 100644
--- a/src/webui/www/private/css/dynamicTable.css
+++ b/src/webui/www/private/css/dynamicTable.css
@@ -52,6 +52,11 @@ tr.dynamicTableHeader {
white-space: nowrap;
}
+.dynamicTable tr.selected img,
+.dynamicTable tr:hover img {
+ filter: var(--color-icon-hover);
+}
+
.dynamicTable td {
padding: 4px 2px;
white-space: nowrap;
diff --git a/src/webui/www/private/css/palette.css b/src/webui/www/private/css/palette.css
index 10fcd991b..1ef40f38a 100644
--- a/src/webui/www/private/css/palette.css
+++ b/src/webui/www/private/css/palette.css
@@ -16,6 +16,8 @@
--color-background-hover: hsl(26deg 80% 60%);
--color-border-blue: hsl(210deg 42% 48%);
--color-border-default: hsl(0deg 0% 85%);
+ --color-icon-hover: brightness(0) invert(100%) sepia(100%) saturate(0%)
+ hue-rotate(108deg) brightness(104%) contrast(104%);
}
:root {
@@ -46,4 +48,11 @@
--color-background-hover: hsl(26deg 50% 55%);
--color-border-default: hsl(0deg 0% 33%);
}
+
+ #rssButtonBar img,
+ #startSearchButton img,
+ #manageSearchPlugins img {
+ filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(1%)
+ hue-rotate(156deg) brightness(106%) contrast(101%);
+ }
}
diff --git a/src/webui/www/private/css/style.css b/src/webui/www/private/css/style.css
index 04a22327d..7b20f8439 100644
--- a/src/webui/www/private/css/style.css
+++ b/src/webui/www/private/css/style.css
@@ -195,10 +195,6 @@ hr {
color: var(--color-text-white) !important;
}
-.selectedFilter a {
- color: var(--color-text-white) !important;
-}
-
#properties {
background-color: var(--color-background-default);
}
@@ -239,10 +235,12 @@ a.propButton img {
}
.contextMenu li a {
+ align-items: center;
color: var(--color-text-default);
- display: block;
+ display: flex;
font-family: Tahoma, Arial, sans-serif;
font-size: 12px;
+ gap: 7px;
padding: 5px 20px 5px 5px;
text-decoration: none;
white-space: nowrap;
@@ -253,6 +251,10 @@ a.propButton img {
color: var(--color-text-white);
}
+.contextMenu li a:hover img {
+ filter: var(--color-icon-hover);
+}
+
.contextMenu li a.disabled {
font-style: italic;
}
@@ -296,8 +298,6 @@ a.propButton img {
.contextMenu li img {
height: 16px;
- margin-bottom: -4px;
- margin-right: 0.5em; /* return missed padding */
width: 16px;
}
@@ -540,23 +540,29 @@ ul.filterList {
padding-left: 0;
}
+ul.filterList li:hover img,
+ul.filterList .selectedFilter img {
+ filter: var(--color-icon-hover);
+}
+
ul.filterList a,
ul.filterList span.link {
- color: var(--color-text-default);
+ align-items: center;
+ color: inherit;
cursor: pointer;
- display: block;
+ display: flex;
overflow: hidden;
padding: 4px 6px;
text-overflow: ellipsis;
white-space: nowrap;
}
-ul.filterList li:hover {
- background-color: var(--color-background-hover);
- color: var(--color-text-white);
+ul.filterList li {
+ color: var(--color-text-default);
}
-ul.filterList li:hover a {
+ul.filterList li:hover {
+ background-color: var(--color-background-hover);
color: var(--color-text-white);
}
diff --git a/src/webui/www/private/images/ip-blocked.svg b/src/webui/www/private/images/ip-blocked.svg
new file mode 100644
index 000000000..a79057787
--- /dev/null
+++ b/src/webui/www/private/images/ip-blocked.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/network-connect.svg b/src/webui/www/private/images/network-connect.svg
new file mode 100644
index 000000000..392ee8ab4
--- /dev/null
+++ b/src/webui/www/private/images/network-connect.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/network-server.svg b/src/webui/www/private/images/network-server.svg
new file mode 100644
index 000000000..f302762d4
--- /dev/null
+++ b/src/webui/www/private/images/network-server.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/peers.svg b/src/webui/www/private/images/peers.svg
new file mode 100644
index 000000000..bb4989066
--- /dev/null
+++ b/src/webui/www/private/images/peers.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/plugins.svg b/src/webui/www/private/images/plugins.svg
new file mode 100644
index 000000000..09a0a560e
--- /dev/null
+++ b/src/webui/www/private/images/plugins.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/preferences-advanced.svg b/src/webui/www/private/images/preferences-advanced.svg
new file mode 100644
index 000000000..8fedd2e52
--- /dev/null
+++ b/src/webui/www/private/images/preferences-advanced.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/preferences-bittorrent.svg b/src/webui/www/private/images/preferences-bittorrent.svg
new file mode 100644
index 000000000..18d28e841
--- /dev/null
+++ b/src/webui/www/private/images/preferences-bittorrent.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/preferences-desktop.svg b/src/webui/www/private/images/preferences-desktop.svg
new file mode 100644
index 000000000..c905c01f8
--- /dev/null
+++ b/src/webui/www/private/images/preferences-desktop.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/images/preferences-webui.svg b/src/webui/www/private/images/preferences-webui.svg
new file mode 100644
index 000000000..d9619d7db
--- /dev/null
+++ b/src/webui/www/private/images/preferences-webui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html
index d2fb8c4b8..0b243cc18 100644
--- a/src/webui/www/private/index.html
+++ b/src/webui/www/private/index.html
@@ -121,12 +121,20 @@
diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js
index 95927a484..dfdad4cb6 100644
--- a/src/webui/www/private/scripts/client.js
+++ b/src/webui/www/private/scripts/client.js
@@ -1603,6 +1603,7 @@ window.addEventListener("DOMContentLoaded", () => {
const id = "uploadPage";
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]",
loadMethod: "iframe",
contentURL: new URI("upload.html").toString(),
@@ -1645,6 +1646,7 @@ window.addEventListener("DOMContentLoaded", () => {
const contentURI = new URI("download.html").setData("urls", urls.map(encodeURIComponent).join("|"));
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]",
loadMethod: "iframe",
contentURL: contentURI.toString(),
diff --git a/src/webui/www/private/scripts/mocha-init.js b/src/webui/www/private/scripts/mocha-init.js
index 9dc168fab..c19cc545e 100644
--- a/src/webui/www/private/scripts/mocha-init.js
+++ b/src/webui/www/private/scripts/mocha-init.js
@@ -130,6 +130,7 @@ const initializeWindows = function() {
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]",
loadMethod: "iframe",
contentURL: contentUri.toString(),
@@ -155,6 +156,7 @@ const initializeWindows = function() {
const id = "preferencesPage";
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]",
loadMethod: "xhr",
toolbar: true,
@@ -182,6 +184,7 @@ const initializeWindows = function() {
const id = "uploadPage";
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]",
loadMethod: "iframe",
contentURL: new URI("upload.html").toString(),
@@ -202,6 +205,7 @@ const initializeWindows = function() {
globalUploadLimitFN = function() {
new MochaUI.Window({
id: "uploadLimitPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Global Upload Speed Limit)QBT_TR[CONTEXT=MainWindow]",
loadMethod: "iframe",
contentURL: new URI("uploadlimit.html").setData("hashes", "global").toString(),
@@ -220,6 +224,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "uploadLimitPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Upload Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("uploadlimit.html").setData("hashes", hashes.join("|")).toString(),
@@ -261,6 +266,7 @@ const initializeWindows = function() {
const orig = torrentsHaveSameShareRatio ? shareRatio : "";
new MochaUI.Window({
id: "shareRatioPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Upload/Download Ratio Limiting)QBT_TR[CONTEXT=UpDownRatioDialog]",
loadMethod: "iframe",
contentURL: new URI("shareratio.html").setData("hashes", hashes.join("|")).setData("orig", orig).toString(),
@@ -335,6 +341,7 @@ const initializeWindows = function() {
globalDownloadLimitFN = function() {
new MochaUI.Window({
id: "downloadLimitPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Global Download Speed Limit)QBT_TR[CONTEXT=MainWindow]",
loadMethod: "iframe",
contentURL: new URI("downloadlimit.html").setData("hashes", "global").toString(),
@@ -352,6 +359,7 @@ const initializeWindows = function() {
const id = "statisticspage";
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Statistics)QBT_TR[CONTEXT=StatsDialog]",
loadMethod: "xhr",
contentURL: new URI("views/statistics.html").toString(),
@@ -370,6 +378,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "downloadLimitPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("downloadlimit.html").setData("hashes", hashes.join("|")).toString(),
@@ -389,6 +398,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).setData("deleteFiles", deleteFiles).toString(),
@@ -494,6 +504,7 @@ const initializeWindows = function() {
new MochaUI.Window({
id: "setLocationPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Set location)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("setlocation.html").setData("hashes", hashes.join("|")).setData("path", encodeURIComponent(row.full_data.save_path)).toString(),
@@ -516,6 +527,7 @@ const initializeWindows = function() {
if (row) {
new MochaUI.Window({
id: "renamePage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Rename)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("rename.html").setData("hash", hash).setData("name", row.full_data.name).toString(),
@@ -539,6 +551,7 @@ const initializeWindows = function() {
if (row) {
new MochaUI.Window({
id: "multiRenamePage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TransferListWidget]",
data: { hash: hash, selectedRows: [] },
loadMethod: "xhr",
@@ -562,6 +575,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "newCategoryPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("hashes", hashes.join("|")).toString(),
@@ -604,6 +618,7 @@ const initializeWindows = function() {
const action = "create";
new MochaUI.Window({
id: "newCategoryPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).toString(),
@@ -623,6 +638,7 @@ const initializeWindows = function() {
const categoryName = category_list.get(categoryHash).name + "/";
new MochaUI.Window({
id: "newSubcategoryPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("categoryName", categoryName).toString(),
@@ -642,6 +658,7 @@ const initializeWindows = function() {
const category = category_list.get(categoryHash);
new MochaUI.Window({
id: "editCategoryPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Edit Category)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("categoryName", category.name).setData("savePath", category.savePath).toString(),
@@ -718,6 +735,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@@ -738,6 +756,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "newTagPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add tags)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newtag.html").setData("action", action).setData("hashes", hashes.join("|")).toString(),
@@ -785,6 +804,7 @@ const initializeWindows = function() {
const action = "create";
new MochaUI.Window({
id: "newTagPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Tag)QBT_TR[CONTEXT=TagFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newtag.html").setData("action", action).toString(),
@@ -860,6 +880,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@@ -964,6 +985,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@@ -1157,6 +1179,7 @@ const initializeWindows = function() {
const id = "aboutpage";
new MochaUI.Window({
id: id,
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(About qBittorrent)QBT_TR[CONTEXT=AboutDialog]",
loadMethod: "xhr",
contentURL: new URI("views/about.html").toString(),
diff --git a/src/webui/www/private/scripts/prop-files.js b/src/webui/www/private/scripts/prop-files.js
index 80248caf9..c7d4e524a 100644
--- a/src/webui/www/private/scripts/prop-files.js
+++ b/src/webui/www/private/scripts/prop-files.js
@@ -545,6 +545,7 @@ window.qBittorrent.PropFiles ??= (() => {
new MochaUI.Window({
id: "renamePage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]",
loadMethod: "iframe",
contentURL: "rename_file.html?hash=" + hash + "&isFolder=" + node.isFolder
@@ -562,6 +563,7 @@ window.qBittorrent.PropFiles ??= (() => {
const multiFileRename = function(hash) {
new MochaUI.Window({
id: "multiRenamePage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]",
data: { hash: hash, selectedRows: torrentFilesTable.selectedRows },
loadMethod: "xhr",
diff --git a/src/webui/www/private/scripts/prop-peers.js b/src/webui/www/private/scripts/prop-peers.js
index 2a6b2f057..6ba3699e6 100644
--- a/src/webui/www/private/scripts/prop-peers.js
+++ b/src/webui/www/private/scripts/prop-peers.js
@@ -123,6 +123,7 @@ window.qBittorrent.PropPeers ??= (() => {
new MochaUI.Window({
id: "addPeersPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog]",
loadMethod: "iframe",
contentURL: "addpeers.html?hash=" + hash,
diff --git a/src/webui/www/private/scripts/prop-trackers.js b/src/webui/www/private/scripts/prop-trackers.js
index bf7c903ed..69ca6a387 100644
--- a/src/webui/www/private/scripts/prop-trackers.js
+++ b/src/webui/www/private/scripts/prop-trackers.js
@@ -166,6 +166,7 @@ window.qBittorrent.PropTrackers ??= (() => {
return;
new MochaUI.Window({
id: "trackersPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add trackers)QBT_TR[CONTEXT=TrackersAdditionDialog]",
loadMethod: "iframe",
contentURL: "addtrackers.html?hash=" + current_hash,
@@ -190,6 +191,7 @@ window.qBittorrent.PropTrackers ??= (() => {
const trackerUrl = encodeURIComponent(element.childNodes[1].textContent);
new MochaUI.Window({
id: "trackersPage",
+ icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]",
loadMethod: "iframe",
contentURL: "edittracker.html?hash=" + current_hash + "&url=" + trackerUrl,
diff --git a/src/webui/www/private/scripts/search.js b/src/webui/www/private/scripts/search.js
index 0bd541f5f..7db6064b0 100644
--- a/src/webui/www/private/scripts/search.js
+++ b/src/webui/www/private/scripts/search.js
@@ -128,7 +128,7 @@ window.qBittorrent.Search ??= (() => {
const elem = e.event.srcElement;
if (elem.className.contains("searchInputField")) {
- $("startSearchButton").click();
+ document.getElementById("startSearchButton").click();
return;
}
@@ -179,7 +179,7 @@ window.qBittorrent.Search ??= (() => {
listItem.classList.add("selected");
listItem.addEventListener("click", (e) => {
setActiveTab(listItem);
- $("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
});
listItem.appendChild(tabElem);
$("searchTabs").appendChild(listItem);
@@ -258,7 +258,7 @@ window.qBittorrent.Search ??= (() => {
}
else if (isTabSelected && newTabToSelect) {
setActiveTab(newTabToSelect);
- $("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
}
};
@@ -335,7 +335,7 @@ window.qBittorrent.Search ??= (() => {
const currentSearchPattern = $("searchPattern").value.trim();
if (state.running && (state.searchPattern === currentSearchPattern)) {
// allow search to be stopped
- $("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
searchPatternChanged = false;
}
@@ -392,7 +392,7 @@ window.qBittorrent.Search ??= (() => {
plugins: plugins
},
onSuccess: (response) => {
- $("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
const searchId = response.id;
createSearchTab(searchId, pattern);
@@ -493,6 +493,7 @@ window.qBittorrent.Search ??= (() => {
new MochaUI.Window({
id: id,
title: "QBT_TR(Search plugins)QBT_TR[CONTEXT=PluginSelectDlg]",
+ icon: "images/qbittorrent-tray.svg",
loadMethod: "xhr",
contentURL: "views/searchplugins.html",
scrollbars: false,
@@ -527,11 +528,11 @@ window.qBittorrent.Search ??= (() => {
// start a new search if pattern has changed, otherwise allow the search to be stopped
if (state && (state.searchPattern === currentSearchPattern)) {
searchPatternChanged = false;
- $("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
}
else {
searchPatternChanged = true;
- $("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
}
};
@@ -567,7 +568,7 @@ window.qBittorrent.Search ??= (() => {
};
const resetSearchState = function(searchId) {
- $("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
+ document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
const state = searchState.get(searchId);
if (state) {
state.running = false;
@@ -677,7 +678,7 @@ window.qBittorrent.Search ??= (() => {
$("searchPattern").disabled = searchPluginsEmpty;
$("categorySelect").disabled = searchPluginsEmpty;
$("pluginsSelect").disabled = searchPluginsEmpty;
- $("startSearchButton").disabled = searchPluginsEmpty;
+ document.getElementById("startSearchButton").disabled = searchPluginsEmpty;
if (window.qBittorrent.SearchPlugins !== undefined)
window.qBittorrent.SearchPlugins.updateTable();
diff --git a/src/webui/www/private/views/log.html b/src/webui/www/private/views/log.html
index 6a1086697..6305fe13b 100644
--- a/src/webui/www/private/views/log.html
+++ b/src/webui/www/private/views/log.html
@@ -76,10 +76,6 @@
padding: 4px 12px !important;
}
- .contextMenu>li>a>img {
- margin-right: 0.5em;
- }
-
diff --git a/src/webui/www/private/views/logTabs.html b/src/webui/www/private/views/logTabs.html
dissimilarity index 85%
index 7f10519e6..58b8c5544 100644
--- a/src/webui/www/private/views/logTabs.html
+++ b/src/webui/www/private/views/logTabs.html
@@ -1,7 +1,11 @@
-
+
diff --git a/src/webui/www/private/views/preferencesToolbar.html b/src/webui/www/private/views/preferencesToolbar.html
index eda733377..8105ef532 100644
--- a/src/webui/www/private/views/preferencesToolbar.html
+++ b/src/webui/www/private/views/preferencesToolbar.html
@@ -1,15 +1,31 @@
diff --git a/src/webui/www/private/views/propertiesToolbar.html b/src/webui/www/private/views/propertiesToolbar.html
index f143301dc..267bd2dea 100644
--- a/src/webui/www/private/views/propertiesToolbar.html
+++ b/src/webui/www/private/views/propertiesToolbar.html
@@ -2,12 +2,22 @@
-
+
diff --git a/src/webui/www/private/views/rss.html b/src/webui/www/private/views/rss.html
index 6b4ce36c1..c5b43b52d 100644
--- a/src/webui/www/private/views/rss.html
+++ b/src/webui/www/private/views/rss.html
@@ -72,6 +72,14 @@
height: 30px;
}
+ #rssButtonBar button {
+ padding: 4px 6px;
+ }
+
+ #rssButtonBar button img {
+ margin: 0 5px -3px 0;
+ }
+
#rssContentView table {
width: 100%;
}
@@ -89,11 +97,18 @@
QBT_TR(Fetching of RSS feeds is disabled now! You can enable it in application settings.)QBT_TR[CONTEXT=RSSWidget]
@@ -183,7 +195,9 @@