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 @@ QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]
- + + + + + +
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]
- - - - - + + + +
@@ -320,6 +335,7 @@ new MochaUI.Window({ id: "newFeed", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Please type a RSS feed URL)QBT_TR[CONTEXT=RSSWidget]", loadMethod: "iframe", contentURL: "newfeed.html?path=" + encodeURIComponent(path), @@ -347,6 +363,7 @@ new MochaUI.Window({ id: "newFolder", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Please choose a folder name)QBT_TR[CONTEXT=RSSWidget]", loadMethod: "iframe", contentURL: "newfolder.html?path=" + encodeURIComponent(path), @@ -685,6 +702,7 @@ const moveItem = (oldPath) => { new MochaUI.Window({ id: "renamePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Please choose a new name for this RSS feed)QBT_TR[CONTEXT=RSSWidget]", loadMethod: "iframe", contentURL: "rename_feed.html?oldPath=" + encodeURIComponent(oldPath), @@ -700,6 +718,7 @@ const encodedPaths = paths.map((path) => encodeURIComponent(path)); new MochaUI.Window({ id: "confirmFeedDeletionPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Deletion confirmation)QBT_TR[CONTEXT=RSSWidget]", loadMethod: "iframe", contentURL: "confirmfeeddeletion.html?paths=" + encodeURIComponent(encodedPaths.join("|")), @@ -811,6 +830,7 @@ const id = "rssdownloaderpage"; new MochaUI.Window({ id: id, + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Rss Downloader)QBT_TR[CONTEXT=AutomatedRssDownloader]", loadMethod: "xhr", contentURL: "views/rssDownloader.html", diff --git a/src/webui/www/private/views/rssDownloader.html b/src/webui/www/private/views/rssDownloader.html index f5184faf2..151a93f6e 100644 --- a/src/webui/www/private/views/rssDownloader.html +++ b/src/webui/www/private/views/rssDownloader.html @@ -521,6 +521,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also const addRule = () => { new MochaUI.Window({ id: "newRulePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(New rule name)QBT_TR[CONTEXT=AutomatedRssDownloader]", loadMethod: "iframe", contentURL: "newrule.html", @@ -535,6 +536,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also const renameRule = (rule) => { new MochaUI.Window({ id: "renameRulePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Rule renaming)QBT_TR[CONTEXT=AutomatedRssDownloader]", loadMethod: "iframe", contentURL: "rename_rule.html?rule=" + encodeURIComponent(rule), @@ -557,6 +559,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also const encodedRules = rules.map((rule) => encodeURIComponent(rule)); new MochaUI.Window({ id: "removeRulePage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Rule deletion confirmation)QBT_TR[CONTEXT=AutomatedRssDownloader]", loadMethod: "iframe", contentURL: "confirmruledeletion.html?rules=" + encodeURIComponent(encodedRules.join("|")), @@ -572,6 +575,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also const encodedRules = rules.map((rule) => encodeURIComponent(rule)); new MochaUI.Window({ id: "clearRulesPage", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(New rule name)QBT_TR[CONTEXT=AutomatedRssDownloader]", loadMethod: "iframe", contentURL: "confirmruleclear.html?rules=" + encodeURIComponent(encodedRules.join("|")), diff --git a/src/webui/www/private/views/search.html b/src/webui/www/private/views/search.html index 515cbc11c..ddc9ee863 100644 --- a/src/webui/www/private/views/search.html +++ b/src/webui/www/private/views/search.html @@ -59,6 +59,16 @@ margin-left: 10px; } + #manageSearchPlugins, + #startSearchButton { + padding: 4px 6px; + } + + #startSearchButton img, + #manageSearchPlugins img { + margin: 0 5px -3px 0; + } + @media (min-width: 1060px) { #searchResultsGranularFilters { display: inline-block; @@ -81,7 +91,9 @@ - +
@@ -183,7 +195,9 @@
- +
diff --git a/src/webui/www/private/views/searchplugins.html b/src/webui/www/private/views/searchplugins.html index 20582b196..b4d0672b7 100644 --- a/src/webui/www/private/views/searchplugins.html +++ b/src/webui/www/private/views/searchplugins.html @@ -114,6 +114,7 @@ const installPlugin = function(path) { new MochaUI.Window({ id: "installSearchPlugin", + icon: "images/qbittorrent-tray.svg", title: "QBT_TR(Install plugin)QBT_TR[CONTEXT=PluginSourceDlg]", loadMethod: "xhr", contentURL: "views/installsearchplugin.html", diff --git a/src/webui/www/webui.qrc b/src/webui/www/webui.qrc index 31a8632ae..fa2723425 100644 --- a/src/webui/www/webui.qrc +++ b/src/webui/www/webui.qrc @@ -323,6 +323,7 @@ private/images/help-about.svg private/images/help-contents.svg private/images/insert-link.svg + private/images/ip-blocked.svg private/images/knob.gif private/images/L.gif private/images/list-add.svg @@ -332,11 +333,19 @@ private/images/mail-inbox.svg private/images/mascot.png private/images/name.svg + private/images/network-connect.svg + private/images/network-server.svg private/images/object-locked.svg private/images/pause-session.svg private/images/paused.svg private/images/peers-add.svg private/images/peers-remove.svg + private/images/peers.svg + private/images/plugins.svg + private/images/preferences-advanced.svg + private/images/preferences-bittorrent.svg + private/images/preferences-desktop.svg + private/images/preferences-webui.svg private/images/queued.svg private/images/ratio.svg private/images/reannounce.svg -- 2.11.4.GIT