Browse Source

Add qBittorrent theme.Park docker-mod

pull/149/head
Tiago Veloso 4 years ago
parent
commit
5499d3fb31
  1. 4
      qbittorrent/Dockerfile
  2. 18
      qbittorrent/root/defaults/theme/README.md
  3. 69
      qbittorrent/root/defaults/theme/private/addpeers.html
  4. 58
      qbittorrent/root/defaults/theme/private/addtrackers.html
  5. 54
      qbittorrent/root/defaults/theme/private/confirmdeletion.html
  6. 55
      qbittorrent/root/defaults/theme/private/confirmfeeddeletion.html
  7. 48
      qbittorrent/root/defaults/theme/private/confirmruleclear.html
  8. 56
      qbittorrent/root/defaults/theme/private/confirmruledeletion.html
  9. 54
      qbittorrent/root/defaults/theme/private/css/Core.css
  10. 443
      qbittorrent/root/defaults/theme/private/css/Layout.css
  11. 65
      qbittorrent/root/defaults/theme/private/css/Tabs.css
  12. 396
      qbittorrent/root/defaults/theme/private/css/Window.css
  13. 109
      qbittorrent/root/defaults/theme/private/css/dynamicTable.css
  14. 8
      qbittorrent/root/defaults/theme/private/css/noscript.css
  15. 639
      qbittorrent/root/defaults/theme/private/css/style.css
  16. 176
      qbittorrent/root/defaults/theme/private/download.html
  17. 87
      qbittorrent/root/defaults/theme/private/downloadlimit.html
  18. 72
      qbittorrent/root/defaults/theme/private/edittracker.html
  19. 12
      qbittorrent/root/defaults/theme/private/icons/README.md
  20. 3
      qbittorrent/root/defaults/theme/private/icons/application-exit.svg
  21. 3
      qbittorrent/root/defaults/theme/private/icons/application-rss+xml.svg
  22. 3
      qbittorrent/root/defaults/theme/private/icons/application-x-mswinurl.svg
  23. 22
      qbittorrent/root/defaults/theme/private/icons/build-icons/Gruntfile.js
  24. 13
      qbittorrent/root/defaults/theme/private/icons/build-icons/package.json
  25. 14
      qbittorrent/root/defaults/theme/private/icons/build-icons/readme.md
  26. 3
      qbittorrent/root/defaults/theme/private/icons/checked.svg
  27. 3
      qbittorrent/root/defaults/theme/private/icons/checking.svg
  28. 3
      qbittorrent/root/defaults/theme/private/icons/collapse.svg
  29. 3
      qbittorrent/root/defaults/theme/private/icons/completed.svg
  30. 6
      qbittorrent/root/defaults/theme/private/icons/configure.svg
  31. 3
      qbittorrent/root/defaults/theme/private/icons/connected.svg
  32. 3
      qbittorrent/root/defaults/theme/private/icons/dialog-cancel.svg
  33. 4
      qbittorrent/root/defaults/theme/private/icons/dialog-information.svg
  34. 3
      qbittorrent/root/defaults/theme/private/icons/dialog-warning.svg
  35. 3
      qbittorrent/root/defaults/theme/private/icons/disconnected.svg
  36. 5
      qbittorrent/root/defaults/theme/private/icons/document-edit-verify.svg
  37. 5
      qbittorrent/root/defaults/theme/private/icons/document-edit.svg
  38. 3
      qbittorrent/root/defaults/theme/private/icons/document-encrypt.svg
  39. 5
      qbittorrent/root/defaults/theme/private/icons/document-import.svg
  40. 5
      qbittorrent/root/defaults/theme/private/icons/document-new.svg
  41. 5
      qbittorrent/root/defaults/theme/private/icons/document-properties.svg
  42. 3
      qbittorrent/root/defaults/theme/private/icons/document-save.svg
  43. 3
      qbittorrent/root/defaults/theme/private/icons/download.svg
  44. 3
      qbittorrent/root/defaults/theme/private/icons/downloading.svg
  45. 3
      qbittorrent/root/defaults/theme/private/icons/downloading_small.svg
  46. 8
      qbittorrent/root/defaults/theme/private/icons/edit-clear-history.svg
  47. 7
      qbittorrent/root/defaults/theme/private/icons/edit-clear.svg
  48. 6
      qbittorrent/root/defaults/theme/private/icons/edit-copy.svg
  49. 6
      qbittorrent/root/defaults/theme/private/icons/edit-cut.svg
  50. 3
      qbittorrent/root/defaults/theme/private/icons/edit-delete.svg
  51. 11
      qbittorrent/root/defaults/theme/private/icons/edit-find-user.svg
  52. 6
      qbittorrent/root/defaults/theme/private/icons/edit-find.svg
  53. 6
      qbittorrent/root/defaults/theme/private/icons/edit-paste.svg
  54. 6
      qbittorrent/root/defaults/theme/private/icons/edit-rename.svg
  55. 3
      qbittorrent/root/defaults/theme/private/icons/error.svg
  56. 3
      qbittorrent/root/defaults/theme/private/icons/expand.svg
  57. 71
      qbittorrent/root/defaults/theme/private/icons/fileicon.svg
  58. 3
      qbittorrent/root/defaults/theme/private/icons/filteractive.svg
  59. 3
      qbittorrent/root/defaults/theme/private/icons/filterall.svg
  60. 3
      qbittorrent/root/defaults/theme/private/icons/filterinactive.svg
  61. 3
      qbittorrent/root/defaults/theme/private/icons/filterstalled.svg
  62. 3
      qbittorrent/root/defaults/theme/private/icons/firewalled.svg
  63. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ad.svg
  64. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ae.svg
  65. 1
      qbittorrent/root/defaults/theme/private/icons/flags/af.svg
  66. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ag.svg
  67. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ai.svg
  68. 1
      qbittorrent/root/defaults/theme/private/icons/flags/al.svg
  69. 1
      qbittorrent/root/defaults/theme/private/icons/flags/am.svg
  70. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ao.svg
  71. 1
      qbittorrent/root/defaults/theme/private/icons/flags/aq.svg
  72. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ar.svg
  73. 1
      qbittorrent/root/defaults/theme/private/icons/flags/as.svg
  74. 1
      qbittorrent/root/defaults/theme/private/icons/flags/at.svg
  75. 1
      qbittorrent/root/defaults/theme/private/icons/flags/au.svg
  76. 1
      qbittorrent/root/defaults/theme/private/icons/flags/aw.svg
  77. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ax.svg
  78. 1
      qbittorrent/root/defaults/theme/private/icons/flags/az.svg
  79. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ba.svg
  80. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bb.svg
  81. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bd.svg
  82. 1
      qbittorrent/root/defaults/theme/private/icons/flags/be.svg
  83. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bf.svg
  84. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bg.svg
  85. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bh.svg
  86. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bi.svg
  87. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bj.svg
  88. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bl.svg
  89. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bm.svg
  90. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bn.svg
  91. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bo.svg
  92. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bq.svg
  93. 1
      qbittorrent/root/defaults/theme/private/icons/flags/br.svg
  94. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bs.svg
  95. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bt.svg
  96. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bv.svg
  97. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bw.svg
  98. 1
      qbittorrent/root/defaults/theme/private/icons/flags/by.svg
  99. 1
      qbittorrent/root/defaults/theme/private/icons/flags/bz.svg
  100. 1
      qbittorrent/root/defaults/theme/private/icons/flags/ca.svg

4
qbittorrent/Dockerfile

@ -0,0 +1,4 @@
FROM scratch
# copy local files
COPY root/ /

18
qbittorrent/root/defaults/theme/README.md

@ -0,0 +1,18 @@
qBittorrent Web UI
---
### Browser compatibility
| Browser | Lower bound |
| ----------------- | -------------------------------------------------- |
| Chrome | [The release from 1 year ago][Chrome-history-link] |
| Firefox | [Oldest active ESR release][Firefox-ESR-link] |
| Microsoft Edge | [The release from 1 year ago][MSEdge-history-link] |
| Safari | [The release from 1 year ago][Safari-history-link] |
The upper bound will always be the latest stable release.
[Chrome-history-link]: https://en.wikipedia.org/wiki/Google_Chrome_version_history
[Firefox-ESR-link]: https://en.wikipedia.org/wiki/Firefox_version_history#Current_and_future_releases
[MSEdge-history-link]: https://en.wikipedia.org/wiki/Microsoft_Edge#Release_history
[Safari-history-link]: https://en.wikipedia.org/wiki/Safari_version_history

69
qbittorrent/root/defaults/theme/private/addpeers.html

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
new Keyboard({
defaultEventType: 'keydown',
events: {
'Escape': function(event) {
window.parent.closeWindows();
event.preventDefault();
},
'Esc': function(event) {
window.parent.closeWindows();
event.preventDefault();
}
}
}).activate();
window.addEvent('domready', function() {
const hash = new URI().getData('hash');
if (!hash)
return false;
$('peers').focus();
$('addPeersOk').addEvent('click', function(e) {
new Event(e).stop();
const peers = $('peers').get('value').trim().split(/[\r\n]+/);
if (peers.length === 0)
return
new Request({
url: 'api/v2/torrents/addPeers',
method: 'post',
data: {
hashes: hash,
peers: peers.join('|')
},
onFailure: function() {
alert("QBT_TR(Unable to add peers. Please ensure you are adhering to the IP:port format.)QBT_TR[CONTEXT=HttpServer]");
},
onSuccess: function() {
window.parent.closeWindows();
}
}).send();
});
});
</script>
</head>
<body>
<div style="padding: 10px 10px 0px 10px;">
<p>QBT_TR(List of peers to add (one IP per line):)QBT_TR[CONTEXT=PeersAdditionDialog]</p>
<textarea id="peers" rows="10" style="width: 100%;" placeholder="QBT_TR(Format: IPv4:port / [IPv6]:port)QBT_TR[CONTEXT=PeersAdditionDialog]"></textarea>
<div style="margin-top: 10px; text-align: center;">
<button onclick="parent.closeWindows();">QBT_TR(Cancel)QBT_TR[CONTEXT=PeersAdditionDialog]</button>
<button id="addPeersOk">QBT_TR(Ok)QBT_TR[CONTEXT=PeersAdditionDialog]</button>
</div>
</div>
</body>
</html>

58
qbittorrent/root/defaults/theme/private/addtrackers.html

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Trackers addition dialog)QBT_TR[CONTEXT=TrackersAdditionDialog]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', function() {
new Keyboard({
defaultEventType: 'keydown',
events: {
'Escape': function(event) {
window.parent.closeWindows();
event.preventDefault();
},
'Esc': function(event) {
window.parent.closeWindows();
event.preventDefault();
}
}
}).activate();
$('trackersUrls').focus();
$('addTrackersButton').addEvent('click', function(e) {
new Event(e).stop();
const hash = new URI().getData('hash');
new Request({
url: 'api/v2/torrents/addTrackers',
method: 'post',
data: {
hash: hash,
urls: $('trackersUrls').value
},
onComplete: function() {
window.parent.closeWindows();
}
}).send();
});
});
</script>
</head>
<body>
<div style="text-align: center;">
<br/>
<h2 class="vcenter">QBT_TR(List of trackers to add (one per line):)QBT_TR[CONTEXT=TrackersAdditionDialog]</h2>
<textarea name="list" id="trackersUrls" rows="10" cols="1"></textarea>
<br/>
<input type="button" value="QBT_TR(Add)QBT_TR[CONTEXT=HttpServer]" id="addTrackersButton" />
</div>
</body>
</html>

54
qbittorrent/root/defaults/theme/private/confirmdeletion.html

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Deletion confirmation - qBittorrent)QBT_TR[CONTEXT=confirmDeletionDlg]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', function() {
const isDeletingFiles = (new URI().getData('deleteFiles') === "true");
$('deleteFromDiskCB').checked = isDeletingFiles;
const hashes = new URI().getData('hashes').split('|');
$('cancelBtn').focus();
$('cancelBtn').addEvent('click', function(e) {
new Event(e).stop();
window.parent.closeWindows();
});
$('confirmBtn').addEvent('click', function(e) {
parent.torrentsTable.deselectAll();
new Event(e).stop();
const cmd = 'api/v2/torrents/delete';
const deleteFiles = $('deleteFromDiskCB').get('checked');
new Request({
url: cmd,
method: 'post',
data: {
'hashes': hashes.join('|'),
'deleteFiles': deleteFiles
},
onComplete: function() {
window.parent.closeWindows();
}
}).send();
});
});
</script>
</head>
<body>
<br/>
<p>&nbsp;&nbsp;QBT_TR(Are you sure you want to delete the selected torrents from the transfer list?)QBT_TR[CONTEXT=HttpServer]</p>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" id="deleteFromDiskCB" /> <label for="deleteFromDiskCB"><i>QBT_TR(Also delete the files on the hard disk)QBT_TR[CONTEXT=confirmDeletionDlg]</i></label><br/><br/>
<div style="text-align: right;">
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" />&nbsp;&nbsp;<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" />&nbsp;&nbsp;
</div>
</body>
</html>

55
qbittorrent/root/defaults/theme/private/confirmfeeddeletion.html

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Deletion confirmation)QBT_TR[CONTEXT=RSSWidget]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', () => {
const paths = decodeURIComponent(new URI().getData('paths')).split('|');
$('cancelBtn').focus();
$('cancelBtn').addEvent('click', (e) => {
new Event(e).stop();
window.parent.closeWindows();
});
$('confirmBtn').addEvent('click', (e) => {
new Event(e).stop();
let completionCount = 0;
paths.forEach((path) => {
new Request({
url: 'api/v2/rss/removeItem',
noCache: true,
method: 'post',
data: {
path: path
},
onComplete: (response) => {
++completionCount;
if (completionCount === paths.length) {
window.parent.qBittorrent.Rss.updateRssFeedList();
window.parent.closeWindows();
}
}
}).send();
});
});
});
</script>
</head>
<body>
<div style="padding: 10px 10px 0px 10px;">
<p>QBT_TR(Are you sure you want to delete the selected RSS feeds?)QBT_TR[CONTEXT=RSSWidget]</p>
<div style="text-align: right;">
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" />
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" />
</div>
</div>
</body>
</html>

48
qbittorrent/root/defaults/theme/private/confirmruleclear.html

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Clear downloaded episodes)QBT_TR[CONTEXT=AutomatedRssDownloader]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', () => {
const rules = decodeURIComponent(new URI().getData('rules')).split('|');
$('cancelBtn').focus();
$('cancelBtn').addEvent('click', (e) => {
new Event(e).stop();
window.parent.MochaUI.closeWindow(window.parent.$('clearRulesPage'));
});
$('confirmBtn').addEvent('click', (e) => {
new Event(e).stop();
let completionCount = 0;
rules.forEach((rule) => {
window.parent.qBittorrent.RssDownloader.modifyRuleState(rule, 'previouslyMatchedEpisodes', [], () => {
++completionCount;
if (completionCount === rules.length) {
window.parent.qBittorrent.RssDownloader.updateRulesList();
window.parent.MochaUI.closeWindow(window.parent.$('clearRulesPage'));
}
});
});
});
});
</script>
</head>
<body>
<div style="padding: 10px 10px 0px 10px;">
<p>QBT_TR(Are you sure you want to clear the list of downloaded episodes for the selected rule?)QBT_TR[CONTEXT=AutomatedRssDownloader]</p>
<div style="text-align: right;">
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" />
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" />
</div>
</div>
</body>
</html>

56
qbittorrent/root/defaults/theme/private/confirmruledeletion.html

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Rule deletion confirmation)QBT_TR[CONTEXT=AutomatedRssDownloader]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', () => {
const rules = decodeURIComponent(new URI().getData('rules')).split('|');
$('cancelBtn').focus();
$('cancelBtn').addEvent('click', (e) => {
new Event(e).stop();
window.parent.MochaUI.closeWindow(window.parent.$('removeRulePage'));
});
$('confirmBtn').addEvent('click', (e) => {
new Event(e).stop();
let completionCount = 0;
rules.forEach((rule) => {
new Request({
url: 'api/v2/rss/removeRule',
noCache: true,
method: 'post',
data: {
ruleName: rule
},
onComplete: (response) => {
++completionCount;
if (completionCount === rules.length) {
window.parent.qBittorrent.RssDownloader.updateRulesList();
window.parent.MochaUI.closeWindow(window.parent.$('removeRulePage'));
}
}
}).send();
});
});
});
</script>
</head>
<body>
<div style="padding: 10px 10px 0px 10px;">
<p>QBT_TR(Are you sure you want to remove the selected download rules?)QBT_TR[CONTEXT=AutomatedRssDownloader]</p>
<div style="text-align: right;">
<input type="button" id="cancelBtn" value="QBT_TR(No)QBT_TR[CONTEXT=MainWindow]" />
<input type="button" id="confirmBtn" value="QBT_TR(Yes)QBT_TR[CONTEXT=MainWindow]" />
</div>
</div>
</body>
</html>

54
qbittorrent/root/defaults/theme/private/css/Core.css

@ -0,0 +1,54 @@
/*
Core.css for Mocha UI
Theme: Default
Copyright:
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>.
License:
MIT-style license.
Notes:
CSS rules in this file:
1. Rules required by all MochaUI components or are shared by more than one.
2. Theme specific adjustments to plugin styles.
3. Miscellaneous rules that have no better place to go.
*/
/* Required By All
---------------------------------------------------------------- */
/* Clears */
.clear {
clear: both;
height: 0;
}
* html .clear {
font-size: 1px;
line-height: 1px;
overflow: hidden;
visibility: hidden;
}
/* Miscellaneous
---------------------------------------------------------------- */
#themeControl {
margin-top: 2px;
}
/* Theme Specific Adjustments to Default Plugin Styles
---------------------------------------------------------------- */
/* Folder Tree */
.tree li a {
color: #3f3f3f !important;
}

443
qbittorrent/root/defaults/theme/private/css/Layout.css

@ -0,0 +1,443 @@
/*
Core.css for Mocha UI
Theme: Default
Copyright:
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>.
License:
MIT-style license.
Required by:
Layout.js
*/
/* Layout
---------------------------------------------------------------- */
html, body {
background: #fff;
}
body {
margin: 0; /* Required */
}
#desktop {
position: relative;
min-width: 400px; /* Helps keep header content from wrapping */
height: 100%;
min-height: 100%;
overflow: hidden;
cursor: default; /* Fix for issue in IE7. IE7 wants to use the I-bar text cursor */
}
#desktopHeader {
background: #f2f2f2;
}
#desktopTitlebarWrapper {
position: relative;
height: 45px;
overflow: hidden;
background: #718BA6 url(../images/bg-header.gif) repeat-x;
}
#desktopTitlebar {
padding: 7px 8px 6px 8px;
height: 32px;
background: url(../images/logo.gif) no-repeat;
background-position: left 0;
}
#desktopTitlebar h1.applicationTitle {
display: none;
margin: 0;
padding: 0 5px 0 0;
font-size: 20px;
line-height: 25px;
font-weight: bold;
color: #fff;
}
#desktopTitlebar h2.tagline {
padding: 7px 0 0 0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #d4dce4;
font-weight: bold;
text-align: center;
text-transform: uppercase;
}
#desktopTitlebar h2.tagline .taglineEm {
color: #fff;
font-weight: bold;
}
#topNav {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
position: absolute;
right: 0;
top: 0;
color: #d4dce4;
text-align: right;
padding: 13px 10px 0 0;
}
#topNav a {
color: #fff;
font-weight: normal;
}
#topNav a:hover {
text-decoration: none;
}
/* Navbar */
#desktopNavbar {
background: #f2f2f2;
/*height: 30px;*/
margin: 0 0px;
overflow: hidden; /* Remove this line if you want the menu to be backward compatible with Firefox 2 */
/* Fixes by Chris */
/*background-color: #ccc;*/
height: 20px;
border-bottom: 1px solid #3f3f3f;
}
#desktopNavbar ul {
padding: 0;
margin: 0;
list-style: none;
font-size: 12px;
}
#desktopNavbar>ul>li {
float: left;
}
#desktopNavbar a {
display: block;
}
#desktopNavbar ul li a {
/*padding: 6px 10px 6px 10px;*/
color: #333;
font-weight: normal;
/* Fix by Chris */
padding: 2px 10px 6px 10px;
}
#desktopNavbar ul li a:hover {
color: #333;
/* Fix By Chris */
background-color: #fff;
}
#desktopNavbar ul li a.arrow-right, #desktopNavbar ul li a:hover.arrow-right {
background-image: url(../images/arrow-right.gif);
background-repeat: no-repeat;
background-position: right 7px;
}
#desktopNavbar li ul {
border: 1px solid #3f3f3f;
background: #fff url(../images/bg-dropdown.gif) repeat-y;
position: absolute;
left: -999em;
z-index: 8000;
/* Fix by Chris */
margin-top: -6px;
}
#desktopNavbar li:hover ul ul,
#desktopNavbar li.ieHover ul ul,
#desktopNavbar li:hover ul ul ul,
#desktopNavbar li.ieHover ul ul ul {
left: -999em;
}
#desktopNavbar li ul ul { /* third-and-above-level lists */
margin: -22px 0 0 163px;
}
#desktopNavbar li ul li .check {
position: absolute;
top: 8px;
left: 6px;
width: 5px;
height: 5px;
background: #555;
overflow: hidden;
line-height: 1px;
font-size: 1px;
}
#desktopNavbar li ul li a {
position: relative;
/*padding: 1px 9px 1px 25px;*/
min-width: 120px;
color: #3f3f3f;
font-weight: normal;
/* Fix By Chris */
padding: 1px 10px 1px 20px;
/* Reduce left padding */
}
#desktopNavbar li ul li a:hover {
background: #6C98D9;
color: #fff;
-moz-border-radius: 2px;
}
#desktopNavbar li ul li a:hover .check {
background: #fff;
}
#desktopNavbar li:hover ul,
#desktopNavbar li.ieHover ul,
#desktopNavbar li li.ieHover ul,
#desktopNavbar li li li.ieHover ul,
#desktopNavbar li li:hover ul,
#desktopNavbar li li li:hover ul { /* lists nested under hovered list items */
left: auto;
}
#desktopNavbar li:hover { /* For IE7 */
position: static;
}
li.divider {
margin-top: 2px;
padding-top: 3px;
border-top: 1px solid #ebebeb;
}
#pageWrapper {
position: relative;
overflow: hidden; /* This can be set to hidden or auto */
border-top: 1px solid #909090;
border-bottom: 1px solid #909090;
/*height: 100%;*/
}
/* Footer */
#desktopFooterWrapper {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 30px;
overflow: hidden;
}
#desktopFooter {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
height: 24px;
padding: 6px 8px 0 8px;
background: #f2f2f2;
}
/* Panel Layout
---------------------------------------------------------------- */
/* Columns */
.column {
position: relative;
float: left;
overflow: hidden; /* Required by IE6 */
}
/* Panels */
.panel {
position: relative;
overflow: auto;
background: #f8f8f8;
border-bottom: 1px solid #b9b9b9;
}
.panelWrapper.collapsed .panel-header {
border-bottom: 0;
}
.panelAlt {
background: #f2f2f2;
}
.bottomPanel {
border-bottom: 0;
}
.pad {
padding: 8px;
}
#mainPanel {
background: #fff;
}
.panel-header {
position: relative;
background: #f1f1f1 url(../images/bg-panel-header.gif) repeat-x;
height: 30px;
overflow: hidden;
border-bottom: 1px solid #d3d3d3;
}
.panel-headerContent {
padding-top: 2px;
}
.panel-headerContent.tabs {
background: url(../images/tabs.gif) repeat-x;
background-position: left -68px;
}
.panel-header h2 {
display: inline-block;
font-size: 12px;
margin: 0;
padding: 3px 8px 0 8px;
height: 22px;
overflow: hidden;
color: #333;
}
.panel-collapse {
background: url(../icons/collapse.svg) left top no-repeat;
}
.panel-expand {
background: url(../icons/collapse.svg) left top no-repeat;
transform: rotate(180deg);
}
.icon16 {
margin: 4px 0 0 2px;
cursor: pointer;
}
/* Column and Panel Handles */
.horizontalHandle {
height: 4px;
line-height: 1px;
font-size: 1px;
overflow: hidden;
background: #eee url(../images/bg-handle-horizontal.gif) repeat-x;
}
.horizontalHandle.detached .handleIcon {
background: transparent;
}
.horizontalHandle .handleIcon {
margin: 0 auto;
height: 4px;
line-height: 1px;
font-size: 1px;
overflow: hidden;
background: url(../images/handle-icon-horizontal.gif) center center no-repeat;
}
.columnHandle {
min-height: 10px;
float: left;
width: 4px;
overflow: hidden;
background: #c3c3c3 url(../images/handle-icon.gif) center center no-repeat;
border: 1px solid #909090;
border-top: 0;
border-bottom: 0;
}
/* Toolboxes */
.toolbox {
float: right;
margin-top: 3px;
padding: 0 5px;
height: 24px;
overflow: hidden;
text-align: right;
}
.panel-header-toolbox {
}
div.toolbox.divider { /* Have to specify div here for IE6's sake */
background: url(../images/toolbox-divider.gif) repeat-y;
padding-left: 8px;
}
.toolbox img.disabled {
cursor: default;
}
.iconWrapper {
display: inline-block;
height: 22px;
min-width: 22px;
overflow: hidden;
border: 1px solid transparent;
}
* html .iconWrapper {
padding: 1px;
border: 0;
}
.iconWrapper img {
cursor: pointer;
margin: 0;
padding: 3px;
}
.iconWrapper:hover {
border: 1px solid #a0a0a0;
-moz-border-radius: 3px;
}
#spinnerWrapper {
width: 16px;
height: 16px;
background: url(../images/spinner-placeholder.gif) no-repeat;
margin: 4px 5px 0 5px;
}
#spinner {
display: none;
background: url(../images/spinner.gif) no-repeat;
width: 16px;
height: 16px;
}
#desktopFooter td {
vertical-align: top;
text-align: left;
}
td.speedLabel {
cursor: pointer;
min-width: 18em;
}
#freeSpaceOnDisk {
white-space: nowrap;
}
#DHTNodes {
white-space: nowrap;
}

65
qbittorrent/root/defaults/theme/private/css/Tabs.css

@ -0,0 +1,65 @@
/*
Tabs.css for Mocha UI
Theme: Default
Copyright:
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>.
License:
MIT-style license.
Required by:
Tabs.js
*/
/* Toolbar Tabs */
.toolbarTabs {
padding: 0 5px 2px 2px;
background: url(../images/tabs.gif) repeat-x;
background-position: left -70px;
overflow: visible;
}
.tab-menu {
padding-top: 1px;
list-style: none;
margin: 0;
padding: 0;
line-height: 16px;
font-size: 11px;
}
.tab-menu li {
float: left;
margin: 0 0 5px 0;
cursor: pointer;
background: url(../images/tabs.gif) repeat-x;
background-position: left -35px;
}
.tab-menu li.selected {
background: url(../images/tabs.gif) repeat-x;
background-position: left 0;
}
.tab-menu li a {
display: block;
margin-left: 8px;
padding: 6px 15px 5px 9px;
text-align: center;
font-weight: normal;
color: #181818;
background: url(../images/tabs.gif) repeat-x;
background-position: right -35px;
}
.tab-menu li.selected a {
color: #181818;
font-weight: bold;
background: url(../images/tabs.gif) repeat-x;
background-position: right 0;
}

396
qbittorrent/root/defaults/theme/private/css/Window.css

@ -0,0 +1,396 @@
/*
Window.css for Mocha UI
Theme: Default
Copyright:
Copyright (c) 2007-2009 Greg Houston, <http://greghoustondesign.com/>.
License:
MIT-style license.
Required by:
Window.js and Modal.css
*/
/* Windows
---------------------------------------------------------------- */
.mocha {
display: none;
overflow: hidden;
background-color: #e5e5e5;
}
.mocha.isFocused {}
.mochaOverlay {
position: absolute; /* This is also set in theme.js in order to make theme transitions smoother */
top: 0;
left: 0;
}
/*
We get a little creative here in order to define a gradient in the CSS using a query
string appended to a background image.
"from" is the top color of the gradient. "to" is the bottom color of the gradient.
Both must be hex values without the leading # sign.
*/
.mochaTitlebar {
width: 100%;
overflow: hidden;
background: url(../images/spacer.gif?from=fafafa&to=e5e5e5);
}
.mochaTitlebar h3 {
font-size: 12px;
line-height: 15px;
font-weight: bold;
margin: 0;
padding: 5px 10px 4px 12px;
color: #888;
}
.mocha.isFocused .mochaTitlebar h3 {
color: #181818;
}
.mochaToolbarWrapper {
width: 100%; /* For IE */
position: relative;
height: 29px;
background: #f1f1f1;
overflow: hidden;
border-top: 1px solid #d9d9d9;
}
div.mochaToolbarWrapper.bottom {
border: 0;
border-bottom: 1px solid #d9d9d9;
}
.mochaToolbar {
width: 100%; /* For IE */
border-top: 1px solid #fff;
}
.mochaContentBorder {
border-top: 1px solid #dadada;
border-bottom: 1px solid #dadada;
}
.mochaContentWrapper { /* Has a fixed height and scrollbars if required. */
font-size: 12px;
overflow: auto;
background: #fff;
}
.mochaContent {
padding: 10px 12px;
}
.mocha .handle {
position: absolute;
background: #0f0;
width: 3px;
height: 3px;
z-index: 2;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/
opacity: .0;
-moz-opacity: .0;
overflow: hidden;
font-size: 1px; /* For IE6 */
}
.mocha .corner { /* Corner resize handles */
width: 10px;
height: 10px;
background: #f00;
}
.mocha .cornerSE { /* Bottom right resize handle */
width: 20px;
height: 20px;
background: #fefefe; /* This is the color of the visible resize handle */
}
.mochaCanvasHeader {
position: absolute;
top: 0;
left: 0;
background: transparent;
z-index: -1;
visibility: hidden;
overflow: hidden;
}
.mochaControls {
position: absolute;
width: 52px;
top: 8px;
right: 8px;
height: 14px;
z-index: 4;
background: transparent;
}
.mochaCanvasControls {
position: absolute;
top: 8px;
right: 8px;
z-index: 3;
background: transparent;
}
/*
To use images for these buttons:
1. Set the useCanvasControls window option to false.
2. If you use a different button size you may need to reposition the controls.
Modify the controlsOffset window option.
2. Replcac the background-color with a background-image for each button.
*/
.mochaMinimizeButton, .mochaMaximizeButton, .mochaCloseButton {
float: right;
width: 14px;
height: 14px;
font-size: 1px;
cursor: pointer;
z-index: 4;
color: #666;
background-color: #fff;
margin-left: 5px;
}
.mochaMinimizeButton {
margin-left: 0;
}
.mochaMaximizeButton {
}
.mochaCloseButton {
}
.mochaSpinner {
display: none;
position: absolute;
bottom: 7px;
left: 6px;
width: 16px;
height: 16px;
background: url(../images/spinner.gif) no-repeat;
}
.mochaIframe {
width: 100%;
}
/* Fix for IE6 select z-index issue */
.zIndexFix {
display: block;
position: absolute;
top: 0;
left: 0;
z-index: -1;
filter: mask();
width: 100px;
height: 100px;
border: 1px solid transparent;
}
/* Viewport overlays
---------------------------------------------------------------- */
#modalOverlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
background: #000;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/
opacity: 0;
-moz-opacity: 0;
z-index: 10000;
}
/* Fix for IE6 select z-index issue */
#modalFix {
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/
opacity: 0;
-moz-opacity: 0;
z-index: 9999;
}
/* Underlay */
#windowUnderlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: #fff;
}
* html #windowUnderlay {
position: absolute;
}
/* The replaced class is used internally when converting CSS values to Canvas. These classes should not be removed. */
.mocha.replaced, .mochaTitlebar.replaced, .mochaMinimizeButton.replaced,
.mochaMaximizeButton.replaced, .mochaCloseButton.replaced {
background-color: transparent !important;
}
.windowClosed {
visibility: hidden;
display: none;
position: absolute;
top: -20000px;
left: -20000px;
z-index: -1;
overflow: hidden;
}
.windowClosed .mochaContentBorder, .windowClosed .mochaToolbarWrapper,
.windowClosed .mochaTitlebar, .windowClosed .mochaControls,
.windowClosed .mochaCanvasControls {
position: absolute;
top: 0;
left: 0;
visibility: hidden;
display: none;
z-index: -1;
}
/* Modals */
.modal2 {
border: 8px solid #fff;
}
.modal2 .mochaContentBorder {
border-width: 0px;
}
/* Window Themes */
.mocha.no-canvas {
background: #e5e5e5;
border: 1px solid #555;
}
.mocha.no-canvas .mochaTitlebar {
background: #e5e5e5;
}
.mocha.transparent .mochaTitlebar h3 {
color: #fff;
display: none;
}
.mocha.transparent .mochaContentWrapper {
background: transparent;
}
.mocha.notification {
background: #cedff2;
}
.mocha.notification .mochaTitlebar {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); /* IE6 and 7*/
opacity: .0;
-moz-opacity: 0;
}
.mocha.notification .mochaContentBorder {
border-width: 0px;
}
.mocha.notification .mochaContentWrapper {
text-align: center;
font-size: 12px;
font-weight: bold;
background: transparent;
}
/* Example Window Themes */
#about_contentWrapper {
background: #e5e5e5 url(../images/logo2.gif) 3px 3px no-repeat;
}
#builder_contentWrapper {
background: #f5f5f7;
}
#json01 .mochaTitlebar {
background: #6dd2db;
}
#json02 .mochaTitlebar {
background: #6db6db;
}
#json03 .mochaTitlebar {
background: #6d92db;
}
.jsonExample .mochaTitlebar h3 {
color: #ddd;
}
/* This does not work in IE6. */
.isFocused.jsonExample .mochaTitlebar h3 {
color: #fff;
}
#fxmorpherExample .mochaContentWrapper {
background: #577a9e;
}
#clock {
background: #fff;
}
/* Workaround to make invisible buttons clickable */
.mochaMinimizeButton.replaced,
.mochaMaximizeButton.replaced,
.mochaCloseButton.replaced {
background-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7) !important;
}
/* iOS iframe scrolling */
.windowFrame .mochaContentWrapper {
/* scroll the Window content. !important required. */
overflow: auto !important;
-webkit-overflow-scrolling: touch;
}
.windowFrame .mochaContent {
height: 100%;
}
.windowFrame iframe {
/* fix double scroll bar by reducing frame height. !important required. */
height: calc(100% - 5px) !important;
}

109
qbittorrent/root/defaults/theme/private/css/dynamicTable.css

@ -0,0 +1,109 @@
/**************************************************************
Dynamic Table
v 0.4
**************************************************************/
.dynamicTable tbody tr {
background-color: #fff;
}
.dynamicTable tbody tr:nth-child(even),
.dynamicTable tbody tr.alt {
background-color: #eee;
}
#transferList .dynamicTable td {
padding: 0 2px;
}
.dynamicTable tbody tr.selected {
background-color: #354158;
color: #fff;
}
.dynamicTable tbody tr:hover {
background-color: #ee6600;
color: #fff;
}
#transferList tr:hover {
cursor: pointer;
}
#transferList img.stateIcon {
height: 1.3em;
vertical-align: middle;
margin-bottom: -1px;
}
tr.dynamicTableHeader {
cursor: pointer;
}
.dynamicTable {
table-layout: fixed;
width: 1%;
padding: 0;
border-spacing: 0;
}
.dynamicTable th {
background-color: #eee;
padding: 4px;
white-space: nowrap;
border-right-color: #ccc;
border-right-style: solid;
border-right-width: 1px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.dynamicTable td {
padding: 0px 4px;
white-space: nowrap;
}
.dynamicTable thead tr {
background-color: #eee;
}
.dynamicTable th,
.dynamicTable td {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.dynamicTable th.sorted {
background-image: url(../icons/go-up.svg);
background-position: right;
background-repeat: no-repeat;
background-size: 15px;
}
.dynamicTable th.sorted.reverse {
background-image: url(../icons/go-down.svg);
}
.dynamicTable td img.flags {
height: 1.25em;
vertical-align: middle;
}
.dynamicTableFixedHeaderDiv {
overflow: hidden;
}
.dynamicTableDiv {
overflow: auto;
}
.dynamicTableDiv thead th {
line-height: 0px !important;
height: 0px !important;
padding-top: 0px !important;
padding-bottom: 0px !important;
}

8
qbittorrent/root/defaults/theme/private/css/noscript.css

@ -0,0 +1,8 @@
#desktop {
display: none;
}
#noscript {
color: #f00;
text-align: center;
}

639
qbittorrent/root/defaults/theme/private/css/style.css

@ -0,0 +1,639 @@
/* Reset */
/*ul,ol,dl,li,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input,object,iframe { margin: 0; padding: 0; }*/
a img, :link img, :visited img {
border: none;
}
/*table { border-collapse: collapse; border-spacing: 0; }*/
:focus {
outline: none;
}
/* Structure */
body {
margin: 0;
text-align: left;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
line-height: 18px;
color: #555;
}
.aside {
width: 300px;
}
.invisible {
display: none;
}
/* Typography */
h2, h3, h4 {
margin: 0;
padding: 0 0 5px 0;
font-size: 12px;
font-weight: bold;
color: #333;
}
h2 {
font-size: 14px;
color: #555;
font-weight: bold;
}
#mochaPage h3 {
display: block;
font-size: 12px;
padding: 6px 0 6px 0;
margin: 0 0 8px 0;
border-bottom: 1px solid #bbb;
}
#error_div {
color: #f00;
font-weight: bold;
}
h4 {
font-size: 11px;
}
a {
color: #e60;
text-decoration: none;
cursor: pointer;
}
a:hover {
text-decoration: none;
}
p {
margin: 0;
padding: 0 0 9px 0;
}
/* List Elements */
ul {
list-style: outside;
margin: 0 0 9px 16px;
}
dt {
font-weight: bold;
}
dd {
padding: 0 0 9px 0;
}
/* Code */
pre {
background-color: #f6f6f6;
color: #006600;
display: block;
font-family: 'Courier New', Courier, monospace;
font-size: 11px;
max-height: 250px;
overflow: auto;
margin: 0 0 10px 0;
padding: 10px;
border: 1px solid #d1d7dc;
}
/* Dividers */
hr {
background-color: #ddd;
color: #ccc;
height: 1px;
border: 0px;
}
.vcenter {
vertical-align: middle;
}
#urls {
width: 90%;
height: 100%;
}
#trackersUrls {
width: 90%;
height: 100%;
}
#Filters ul {
list-style-type: none;
}
#Filters ul li {
margin-left: -16px;
}
#Filters ul img {
padding: 2px 4px;
vertical-align: middle;
width: 16px;
height: 16px;
}
.selectedFilter {
background-color: #415A8D;
color: #FFFFFF;
}
.selectedFilter a {
color: #FFFFFF;
}
#properties {
background-color: #e5e5e5;
}
a.propButton {
border: 1px solid rgb(85, 81, 91);
/*border-radius: 3px;*/
padding: 2px;
margin-left: 3px;
margin-right: 3px;
}
a.propButton img {
margin-bottom: -4px;
}
.scrollableMenu {
overflow-y: auto;
overflow-x: hidden;
}
/* context menu specific */
.contextMenu {
border: 1px solid #999;
padding: 0;
background: #eee;
list-style-type: none;
display: none;
}
.contextMenu .separator {
border-top: 1px solid #999;
}
.contextMenu li {
margin: 0;
padding: 0;
}
.contextMenu li a {
display: block;
padding: 5px 20px 5px 5px;
font-size: 12px;
text-decoration: none;
font-family: tahoma, arial, sans-serif;
color: #000;
white-space: nowrap;
}
.contextMenu li a:hover {
background-color: #ddd;
}
.contextMenu li a.disabled {
color: #ccc;
font-style: italic;
}
.contextMenu li a.disabled:hover {
background-color: #eee;
}
.contextMenu li ul {
padding: 0;
border: 1px solid #999;
padding: 0;
background: #eee;
list-style-type: none;
position: absolute;
left: -999em;
z-index: 8000;
margin: -29px 0 0 100%;
width: 164px;
}
.contextMenu li ul li a {
position: relative;
}
.contextMenu li a.arrow-right, .contextMenu li a:hover.arrow-right {
background-image: url(../images/arrow-right.gif);
background-repeat: no-repeat;
background-position: right center;
}
.contextMenu li:hover ul,
.contextMenu li.ieHover ul,
.contextMenu li li.ieHover ul,
.contextMenu li li li.ieHover ul,
.contextMenu li li:hover ul,
.contextMenu li li li:hover ul { /* lists nested under hovered list items */
left: auto;
}
.contextMenu li img {
width: 16px;
height: 16px;
margin-bottom: -4px;
-ms-interpolation-mode: bicubic;
}
.contextMenu li input[type=checkbox] {
position: relative;
top: 3px;
}
/* Sliders */
.slider {
clear: both;
position: relative;
font-size: 12px;
font-weight: bold;
width: 400px;
margin-bottom: 15px;
}
.sliderWrapper {
position: relative;
font-size: 1px;
line-height: 1px;
height: 9px;
width: 422px;
}
.sliderarea {
position: absolute;
top: 0;
left: 0;
height: 7px;
width: 420px;
font-size: 1px;
line-height: 1px;
background: #f2f2f2 url(../images/slider-area.gif) repeat-x;
border: 1px solid #a3a3a3;
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
margin: 0;
padding: 0;
overflow: hidden;
}
.sliderknob {
position: absolute;
top: 0;
left: 0;
height: 9px;
width: 19px;
font-size: 1px;
line-height: 1px;
background: url(../images/knob.gif) no-repeat;
cursor: pointer;
overflow: hidden;
z-index: 2;
}
.update {
padding-bottom: 5px;
}
.mochaToolButton {
margin-right: 10px;
}
/* Mocha Customization */
#mochaToolbar {
margin-top: 5px;
position: relative;
height: 29px;
overflow-y: hidden;
}
#mochaToolbar .divider {
background-image: url(../images/toolbox-divider.gif);
background-repeat: no-repeat;
background-position: left center;
padding-left: 14px;
padding-top: 15px;
}
.MyMenuIcon {
margin-left: -18px;
margin-bottom: -3px;
padding-right: 5px;
}
#mainWindowTabs {
float: right;
margin: 4px 5px 0 0;
}
#torrentsFilterToolbar {
float: right;
margin-right: 30px;
}
#torrentsFilterInput {
width: 160px;
padding-left: 2em;
background-image: url("../icons/edit-find.svg");
background-repeat: no-repeat;
background-size: 1.5em;
background-position: left;
}
#torrentFilesFilterToolbar {
float: right;
margin-right: 30px;
}
#torrentFilesFilterInput {
width: 160px;
padding-left: 2em;
background-image: url("../icons/edit-find.svg");
background-repeat: no-repeat;
background-size: 1.5em;
background-position: left;
}
/* Tri-state checkbox */
label.tristate {
background: url(../images/3-state-checkbox.gif) 0 0 no-repeat;
display: block;
float: left;
height: 13px;
margin: .15em 8px 5px 0px;
overflow: hidden;
text-indent: -999em;
width: 13px;
}
label.checked {
background-position: 0 -13px;
}
label.partial {
background-position: 0 -26px;
}
fieldset.settings {
border: solid 1px black;
border-radius: 8px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
padding: 4px 4px 4px 10px;
}
fieldset.settings legend {
margin-left: 8px;
padding: 4px;
font-weight: bold;
}
fieldset.settings label {
padding: 2px;
}
fieldset.settings + div.formRow {
margin-top: 10px;
}
div.formRow {
clear: left;
display: block;
}
.filterTitle {
font-weight: bold;
text-transform: uppercase;
padding-left: 5px;
padding-top: 5px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.filterTitle img {
width: 16px;
height: 16px;
margin-bottom: -3px;
padding: 0 5px;
}
.filterTitle img.rotate {
transform: rotate(270deg);
}
ul.filterList {
margin: 0 0 0 16px;
padding-left: 0;
}
ul.filterList a {
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: inherit;
}
ul.filterList li:hover {
background-color: #e60;
}
ul.filterList li:hover a {
color: white;
}
td.generalLabel {
white-space: nowrap;
text-align: right;
width: 1px;
vertical-align: top;
}
#torrentFilesTableDiv {
line-height: 20px;
}
#torrentTrackersTableDiv,
#webseedsTable {
line-height: 25px;
}
.filesTableCollapseIcon {
width: 15px;
height: 15px;
cursor: pointer;
margin-bottom: -3px;
padding-right: 5px;
}
.filesTableCollapseIcon.rotate {
transform: rotate(270deg);
margin-bottom: -1px;
}
.unselectable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#prop_general {
padding: 2px;
}
#watched_folders_tab {
border-collapse: collapse;
}
#watched_folders_tab td, #watched_folders_tab th {
padding: 2px 4px;
border: 1px solid black;
}
.select-watched-folder-editable {
position: relative;
background-color: white;
border: solid grey 1px;
width: 160px;
height: 20px;
}
.select-watched-folder-editable select {
position: absolute;
top: 0px;
bottom: 0px;
left: 0px;
border: none;
width: 160px;
margin: 0;
}
.select-watched-folder-editable input {
position: absolute;
top: 0px;
left: 0px;
width: 140px;
padding: 1px;
border: none;
}
.select-watched-folder-editable select:focus, .select-editable input:focus {
outline: none;
}
/*
* Workaround to prevent the transfer list from
* disappearing when zooming in the browser.
*/
#filtersColumn_handle {
margin-left: -1px;
}
#error_div {
float: left;
font-size: 14px;
}
.combo_priority {
font-size: 1em;
}
td.statusBarSeparator {
width: 22px;
background-image: url('../images/toolbox-divider.gif');
background-repeat: no-repeat;
background-position: center 1px;
background-size: 2px 18px;
}
/* Statistics window */
.statisticsValue {
text-align: right;
}
/* Search tab */
#SearchPanel, #SearchPanel_wrapper, #SearchPanel_pad {
height: inherit;
}
#searchResults {
padding: 0 20px;
height: 100%;
}
#searchResultsTableContainer {
height: calc(100% - 140px);
-moz-height: calc(100% - 140px);
-webkit-height: calc(100% - 140px);
overflow: auto;
}
#searchResultsTableDiv {
height: calc(100% - 26px) !important;
-moz-height: calc(100% - 26px) !important;
-webkit-height: calc(100% - 26px) !important;
}
#searchResults .dynamicTable {
width: 100%;
}
#searchResults .numSearchResults {
font-style: italic;
}
.red {
color: red;
}
.green {
color: green;
}
.searchPluginsTableRow {
cursor: pointer;
}
#torrentFilesTableDiv .dynamicTable tr.nonAlt {
background-color: #fff;
}
#torrentFilesTableDiv .dynamicTable tr.nonAlt.selected {
background-color: #354158;
color: #fff;
}
#torrentFilesTableDiv .dynamicTable tr.nonAlt:hover {
background-color: #ee6600;
color: #fff;
}

176
qbittorrent/root/defaults/theme/private/download.html

@ -0,0 +1,176 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Add Torrent Links)QBT_TR[CONTEXT=downloadFromURL]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<link rel="stylesheet" href="css/Window.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script src="scripts/download.js?v=${CACHEID}"></script>
<script src="scripts/misc.js?locale=${LANG}&v=${CACHEID}"></script>
</head>
<body>
<iframe id="download_frame" name="download_frame" class="invisible" src="about:blank"></iframe>
<form action="api/v2/torrents/add" enctype="multipart/form-data" method="post" id="downloadForm" style="text-align: center;" target="download_frame" autocorrect="off" autocapitalize="none">
<div style="text-align: center;">
<br/>
<h2 class="vcenter">QBT_TR(Download Torrents from their URLs or Magnet links)QBT_TR[CONTEXT=HttpServer]</h2>
<textarea id="urls" rows="10" name="urls"></textarea>
<p>QBT_TR(Only one link per line)QBT_TR[CONTEXT=HttpServer]</p>
<fieldset class="settings" style="border: 0; text-align: left; margin-top: 6px;">
<table style="margin: auto;">
<tr>
<td>
<label for="autoTMM">QBT_TR(Torrent Management Mode:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label>
</td>
<td>
<select id="autoTMM" name="autoTMM" onchange="qBittorrent.Download.changeTMM(this)">
<option selected value="false">Manual</option>
<option value="true">Automatic</option>
</select>
</td>
</tr>
<tr>
<td>
<label for="savepath">QBT_TR(Save files to location:)QBT_TR[CONTEXT=HttpServer]</label>
</td>
<td>
<input type="text" id="savepath" name="savepath" style="width: 16em;" />
</td>
</tr>
<tr>
<td>
<label for="cookie">QBT_TR(Cookie:)QBT_TR[CONTEXT=HttpServer]</label>
</td>
<td>
<input type="text" id="cookie" name="cookie" style="width: 16em;" />
</td>
</tr>
<tr>
<td>
<label for="rename">QBT_TR(Rename torrent)QBT_TR[CONTEXT=HttpServer]</label>
</td>
<td>
<input type="text" id="rename" name="rename" style="width: 16em;" />
</td>
</tr>
<tr>
<td>
<label for="category">QBT_TR(Category:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label>
</td>
<td>
<div class="select-watched-folder-editable">
<select id="categorySelect" onchange="qBittorrent.Download.changeCategorySelect(this)">
<option selected value="\other"></option>
</select>
<input name="category" type="text" />
</div>
</td>
</tr>
<tr>
<td>
<label for="startTorrent">QBT_TR(Start torrent)QBT_TR[CONTEXT=AddNewTorrentDialog]</label>
</td>
<td>
<input type="hidden" id="startTorrentHidden" name="paused" />
<input type="checkbox" id="startTorrent" />
</td>
</tr>
<tr>
<td>
<label for="skip_checking">QBT_TR(Skip hash check)QBT_TR[CONTEXT=AddNewTorrentDialog]</label>
</td>
<td>
<input type="checkbox" id="skip_checking" name="skip_checking" value="true" />
</td>
</tr>
<tr>
<td>
<label for="contentLayout">QBT_TR(Content layout:)QBT_TR[CONTEXT=AddNewTorrentDialog]</label>
</td>
<td>
<select id="contentLayout" name="contentLayout">
<option selected value="Original">QBT_TR(Original)QBT_TR[CONTEXT=AddNewTorrentDialog]</option>
<option value="Subfolder">QBT_TR(Create subfolder)QBT_TR[CONTEXT=AddNewTorrentDialog]</option>
<option value="NoSubfolder">QBT_TR(Don't create subfolder)QBT_TR[CONTEXT=AddNewTorrentDialog]</option>
</select>
</td>
</tr>
<tr>
<td>
<label for="sequentialDownload">QBT_TR(Download in sequential order)QBT_TR[CONTEXT=TransferListWidget]</label>
</td>
<td>
<input type="checkbox" id="sequentialDownload" name="sequentialDownload" value="true" />
</td>
</tr>
<tr>
<td>
<label for="firstLastPiecePrio">QBT_TR(Download first and last pieces first)QBT_TR[CONTEXT=TransferListWidget]</label>
</td>
<td>
<input type="checkbox" id="firstLastPiecePrio" name="firstLastPiecePrio" value="true" />
</td>
</tr>
<tr>
<td>
<label for="dlLimitText">QBT_TR(Limit download rate)QBT_TR[CONTEXT=HttpServer]</label>
</td>
<td>
<input type="hidden" id="dlLimitHidden" name="dlLimit" />
<input type="text" id="dlLimitText" style="width: 16em;" placeholder="KiB/s" />
</td>
</tr>
<tr>
<td>
<label for="upLimitText">QBT_TR(Limit upload rate)QBT_TR[CONTEXT=HttpServer]</label>
</td>
<td>
<input type="hidden" id="upLimitHidden" name="upLimit" />
<input type="text" id="upLimitText" style="width: 16em;" placeholder="KiB/s" />
</td>
</tr>
</table>
<div id="submitbutton" style="margin-top: 12px; text-align: center;">
<button type="submit" id="submitButton">QBT_TR(Download)QBT_TR[CONTEXT=downloadFromURL]</button>
</div>
</fieldset>
</div>
</form>
<script>
'use strict';
const encodedUrls = new URI().getData('urls');
if (encodedUrls) {
const urls = encodedUrls.split('|').map(function(url) {
return decodeURIComponent(url);
});
if (urls.length)
$('urls').set('value', urls.join("\n"));
}
let submitted = false;
$('downloadForm').addEventListener("submit", function() {
$('startTorrentHidden').value = $('startTorrent').checked ? 'false' : 'true';
$('dlLimitHidden').value = $('dlLimitText').value.toInt() * 1024;
$('upLimitHidden').value = $('upLimitText').value.toInt() * 1024;
$('download_spinner').style.display = "block";
submitted = true;
});
$('download_frame').addEventListener("load", function() {
if (submitted)
window.parent.closeWindows();
});
</script>
<div id="download_spinner" class="mochaSpinner"></div>
</body>
</html>

87
qbittorrent/root/defaults/theme/private/downloadlimit.html

@ -0,0 +1,87 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script src="scripts/lib/mocha-0.9.6-yc.js"></script>
<script src="scripts/speedslider.js?v=${CACHEID}"></script>
</head>
<body>
<div style="width: 100%; text-align: center; margin: 0 auto; overflow: hidden">
<div id="dllimitSlider" class="slider">
<div id="dllimitUpdate" class="update">QBT_TR(Download limit:)QBT_TR[CONTEXT=PropertiesWidget] <input id="dllimitUpdatevalue" size="6" placeholder="∞" style="text-align: center;"> <span id="dlLimitUnit">QBT_TR(KiB/s)QBT_TR[CONTEXT=SpeedLimitDialog]</span></div>
<div class="sliderWrapper">
<div id="dllimitSliderknob" class="sliderknob"></div>
<div id="dllimitSliderarea" class="sliderarea"></div>
</div>
<div class="clear"></div>
</div>
<script>
'use strict';
const hashes = new URI().getData('hashes').split('|');
const setDlLimit = function() {
const limit = $("dllimitUpdatevalue").value.toInt() * 1024;
if (hashes[0] == "global") {
new Request({
url: 'api/v2/transfer/setDownloadLimit',
method: 'post',
data: {
'limit': limit
},
onComplete: function() {
window.parent.updateMainData();
window.parent.closeWindows();
}
}).send();
}
else {
new Request({
url: 'api/v2/torrents/setDownloadLimit',
method: 'post',
data: {
'hashes': hashes.join('|'),
'limit': limit
},
onComplete: function() {
window.parent.closeWindows();
}
}).send();
}
}
</script>
<input type="button" id="applyButton" value="QBT_TR(Apply)QBT_TR[CONTEXT=HttpServer]" onclick="setDlLimit()" />
</div>
<script>
new Keyboard({
defaultEventType: 'keydown',
events: {
'Enter': function(event) {
$('applyButton').click();
event.preventDefault();
},
'Escape': function(event) {
window.parent.closeWindows();
event.preventDefault();
},
'Esc': function(event) {
window.parent.closeWindows();
event.preventDefault();
}
}
}).activate();
$('dllimitUpdatevalue').focus();
MochaUI.addDlLimitSlider(hashes);
</script>
</body>
</html>

72
qbittorrent/root/defaults/theme/private/edittracker.html

@ -0,0 +1,72 @@
<!DOCTYPE html>
<html lang="${LANG}">
<head>
<meta charset="UTF-8" />
<title>QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css" />
<script src="scripts/lib/mootools-1.2-core-yc.js"></script>
<script src="scripts/lib/mootools-1.2-more.js"></script>
<script>
'use strict';
window.addEvent('domready', function() {
new Keyboard({
defaultEventType: 'keydown',
events: {
'Enter': function(event) {
$('editTrackerButton').click();
event.preventDefault();
},
'Escape': function(event) {
window.parent.closeWindows();
event.preventDefault();
},
'Esc': function(event) {
window.parent.closeWindows();
event.preventDefault();
}
}
}).activate();
const currentUrl = new URI().getData('url');
if (!currentUrl)
return false;
const decodedUrl = decodeURIComponent(currentUrl);
$('trackerUrl').value = decodedUrl;
$('trackerUrl').focus();
$('editTrackerButton').addEvent('click', function(e) {
new Event(e).stop();
const hash = new URI().getData('hash');
new Request({
url: 'api/v2/torrents/editTracker',
method: 'post',
data: {
hash: hash,
origUrl: decodedUrl,
newUrl: $('trackerUrl').value
},
onComplete: function() {
window.parent.closeWindows();
}
}).send();
});
});
</script>
</head>
<body>
<div style="text-align: center;">
<br/>
<h2 class="vcenter">QBT_TR(Tracker URL:)QBT_TR[CONTEXT=TrackerListWidget]</h2>
<div style="text-align: center; padding-top: 10px;">
<input id="trackerUrl" style="width: 90%;" />
</div>
<br/>
<input type="button" value="QBT_TR(Edit)QBT_TR[CONTEXT=HttpServer]" id="editTrackerButton" />
</div>
</body>
</html>

12
qbittorrent/root/defaults/theme/private/icons/README.md

@ -0,0 +1,12 @@
# qBittorrent Icons
Initial `qbt-theme` icons created by Bert Verhelst (<verhelstbert@gmail.com>).
Icons are based on the `Font-Awesome` icon-set: [link](http://fontawesome.io/icons/).
If you need to add an icon that qBittorrent does not already use, you can take an icon from the SVG fork of `Font-Awesome`: [link](https://github.com/encharm/Font-Awesome-SVG-PNG).
## Optimizing SVG
Use [svgcleaner](https://github.com/RazrFalcon/svgcleaner)

3
qbittorrent/root/defaults/theme/private/icons/application-exit.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#733737" d="M29.6 24.2c0 .6-.2 1.1-.6 1.6l-3.1 3.1c-.4.4-.9.6-1.6.6-.6 0-1.1-.2-1.6-.6L16 22.1l-6.7 6.7c-.4.4-.9.6-1.6.6-.6 0-1.1-.2-1.6-.6L3 25.7c-.4-.4-.6-.9-.6-1.6s.2-1.1.6-1.6l6.7-6.7-6.6-6.6c-.5-.4-.7-1-.7-1.6 0-.6.2-1.1.6-1.6l3.2-3c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.6.6L16 9.7 22.7 3c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.6.6L29 6.1c.4.4.6.9.6 1.6 0 .6-.2 1.1-.6 1.6L22.3 16l6.7 6.7c.4.4.6.9.6 1.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 478 B

3
qbittorrent/root/defaults/theme/private/icons/application-rss+xml.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-5 -5 42 42">
<path fill="#D1954E" d="M30.2 28.8c0 .4-.1.7-.4.9-.2.3-.6.4-.9.4H26c-.3 0-.6-.1-.9-.4-.2-.2-.4-.5-.4-.9-.2-2.9-.8-5.6-2-8.2-1.2-2.6-2.8-4.9-4.7-6.8-1.9-1.9-4.2-3.5-6.8-4.7-2.5-1-5.3-1.7-8.2-1.8-.3 0-.6-.1-.9-.4-.2-.3-.3-.6-.3-.9V3.1c0-.4.1-.7.4-.9.2-.2.5-.4.9-.4h.1c3.5.2 6.8 1 10.1 2.4 3.2 1.4 6.1 3.4 8.6 5.9 2.5 2.5 4.5 5.4 5.9 8.6 1.4 3.2 2.2 6.6 2.4 10.1zm-10.3 0c0 .4-.1.7-.3 1-.2.3-.6.4-.9.4H16c-.3 0-.6-.1-.9-.3-.2-.2-.4-.5-.4-.8-.3-3.1-1.5-5.7-3.7-7.9s-4.9-3.5-8-3.8c-.3 0-.6-.2-.8-.4-.2-.2-.3-.5-.3-.9v-2.7c0-.4.1-.7.4-.9.2-.2.5-.3.9-.3h.1c2.2.2 4.2.7 6.2 1.6s3.7 2.1 5.2 3.7c1.5 1.5 2.8 3.3 3.7 5.2.8 1.9 1.3 3.9 1.5 6.1zM8.4 23.6c.8.8 1.1 1.7 1.1 2.7 0 1.1-.4 2-1.1 2.7-.8.8-1.7 1.1-2.7 1.1-1.1 0-2-.4-2.7-1.1-.8-.8-1.1-1.7-1.1-2.7 0-1.1.4-2 1.1-2.7.8-.8 1.7-1.1 2.7-1.1 1.1 0 2 .3 2.7 1.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 878 B

3
qbittorrent/root/defaults/theme/private/icons/application-x-mswinurl.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#375273" d="M9.1 4.1c2.1-1.2 4.4-1.8 6.9-1.8s4.8.6 6.9 1.8c2.1 1.2 3.8 2.9 5 5 1.2 2.1 1.8 4.4 1.8 6.9s-.6 4.8-1.8 6.9c-1.2 2.1-2.9 3.8-5 5-2.1 1.2-4.4 1.8-6.9 1.8s-4.8-.6-6.9-1.8c-2.1-1.2-3.8-2.9-5-5-1.2-2.1-1.8-4.4-1.8-6.9s.6-4.8 1.8-6.9c1.2-2.1 2.9-3.8 5-5zm11.8 7.5l-.2.2-.2.2s.1 0 .1-.1.1-.1.1-.2.1-.1.1-.1c.1-.1.2-.2.4-.3.2-.1.5-.1.9-.2s.7 0 .9.2c0 0 0-.1.2-.2.1-.1.2-.2.3-.2 0 0 .1-.1.3-.1.1 0 .2-.1.3-.1v-.4c-.1 0-.2 0-.3-.1-.1-.1-.1-.2-.1-.4 0 0 0 .1-.1.1 0-.1 0-.1-.1-.1h-.4c-.1 0-.2-.1-.3-.1-.1-.1-.1-.2-.1-.3 0-.1-.1-.2-.1-.3 0-.1-.1-.1-.2-.2l-.2-.2v-.1s0-.1-.1-.1c0 0 0-.1-.1-.1h-.1s-.1 0-.1.1-.1.1-.1.2-.1.1-.1.1h-.2l-.1.1-.1.1s-.1 0-.2.1h-.2c.2-.1.2-.1 0-.2-.1 0-.2-.1-.3-.1.1 0 .2-.1.1-.2 0-.1-.1-.2-.2-.3h.1l-.2-.2c-.1-.1-.2-.1-.3-.2-.1 0-.2-.1-.2-.1-.1-.1-.3-.1-.6-.2s-.5-.1-.6 0c-.1.1-.1.1-.1.2s0 .1.1.3c0 .1.1.2.1.2 0 .1 0 .1-.1.2s-.1.2-.1.2c0 .1.1.2.3.3.2 0 .3.1.2.3 0 .1-.1.2-.3.3-.2.1-.3.2-.3.2-.1.1-.1.2 0 .3 0 .1.1.2.2.3v.1s0 .1-.1.1l-.1.1s-.1 0-.1.1h-.1c-.1.1-.3 0-.4-.1-.1-.1-.2-.3-.2-.5-.1-.3-.2-.5-.3-.5-.3-.1-.4-.1-.5 0-.1-.2-.3-.3-.7-.5-.3-.1-.6-.1-1-.1.1 0 .1-.1 0-.3-.1-.2-.2-.3-.3-.2 0-.1.1-.2.1-.3v-.2c0-.2.1-.3.2-.4 0 0 .1-.1.1-.2.1-.1.1-.2.2-.2v-.1c.4 0 .7 0 .9-.2.1-.1.1-.2.2-.3.1-.1.1-.2.2-.3.1-.1.2-.1.3-.1.1 0 .1 0 .3.1.1.1.2.1.3.1.2 0 .3-.1.3-.2s0-.3-.1-.4c.1 0 .2-.1.1-.3-.1-.1-.1-.1-.1-.2-.1 0-.3 0-.5.1-.1 0-.1.1 0 .1l-.2.2-.3.3c-.1.1-.2 0-.3-.1 0 0 0-.1-.1-.2s-.1-.2-.2-.2-.2.1-.3.3c0-.1 0-.2-.2-.3-.2-.1-.3-.1-.4-.1 0-.2 0-.4-.3-.5-.1 0-.2-.1-.4-.1s-.3 0-.3.1c-.1.1-.1.2-.1.2 0 .1 0 .1.1.1s.1.1.2.1.1 0 .2.1c.1 0 .1 0 .2.1.1 0 .1.1 0 .2 0 0-.1 0-.2.1-.1 0-.1.1-.2.1s-.1 0-.1.1v.6c-.1-.1-.1-.2-.2-.3 0-.1-.1-.2-.1-.3.1-.1 0-.1-.4-.1h-.9c-.1 0-.2-.1-.2-.1v-.4s0-.1.1 0l-.2-.2-.2-.2c-.5.2-1.1.4-1.7.7h.2c.1 0 .1-.1.2-.1.1-.1.2-.1.2-.1.4-.2.7-.2.8-.1l.1-.1.4.4c-.1 0-.3-.1-.5 0s-.4.1-.4.2c.1.1.1.3.1.3l-.2-.2c-.1-.1-.2-.1-.3-.2-.1.1-.2.1-.3 0h-.4c-1.7 1-3.1 2.3-4.2 4 .1.1.2.1.2.1s.1.1.1.2v.2s.1 0 .2-.1c.2.2.2.3.1.4 0 0 .3.1.8.5.2.2.4.3.4.4 0 .1 0 .2-.2.3l-.2-.2c-.1-.1-.1-.1-.2-.1v.3c0 .2.1.2.2.2-.1 0-.1.1-.2.3v1c0 .1 0 .3.1.6s.2.4.4.3c-.2 0 0 .3.4.8.1.1.1.1.1.2 0 0 .1.1.2.1.2.3.3.3.3.4l.2.2c0 .1.1.2.2.4s.2.3.3.4c0 .1 0 .2.2.4.1.2.2.3.2.4 0 .1.1.2.3.3.1.1.2.2.3.2v.2c0 .1 0 .1.1.2 0 0 .1.1.1 0 0-.2-.1-.6-.4-1.1-.2-.3-.3-.5-.3-.5 0-.1-.1-.2-.1-.3 0-.1-.1-.2-.1-.3h.1s.1 0 .2.1c.1 0 .1 0 .1.1v.4c.1.1.1.2.2.3l.3.3.2.2.3.3c.1.2.1.2 0 .2.1 0 .2.1.4.2.1.1.2.2.3.4-.1.2-.1.3-.1.6 0 .2.1.4.1.4 0 .1.1.2.2.2s.2.1.2.2c.1 0 .2.1.3.1.1.1.2.1.2.1.1 0 .2.1.3.2.2.1.3.2.4.2.1 0 .2.1.3.1h.3c.1 0 .2-.1.2-.1.2 0 .4.1.5.3l.4.4c.4.2.8.3 1 .2v.1c0 .1.1.2.1.3.1.1.1.2.2.3 0 .1.1.1.1.2l.3.3c.2.1.3.2.3.3.1 0 .1-.1.1-.2 0 .1 0 .2.1.4.1.1.2.2.3.2.2 0 .3-.2.3-.6-.4.2-.7.1-.9-.3v-.1c0-.1-.1-.1-.1-.2v-.3s0-.1.1-.1.2 0 .2-.1v-.2c0-.1-.1-.2-.1-.2 0-.1-.1-.2-.2-.4-.1-.1-.2-.2-.2-.3-.1.1-.2.2-.3.1-.1 0-.2-.1-.3-.2v.2h-.3v-.3c0-.2 0-.3.1-.4 0 0 0-.1.1-.2s.1-.2.1-.3c0-.1.1-.2.1-.2 0-.1 0-.1-.1-.2-.1 0-.2-.1-.3 0-.2 0-.4.1-.5.4 0 0 0 .1-.1.2s-.1.2-.1.2-.1.1-.2.1h-.4c-.2 0-.3 0-.4-.1-.2-.1-.3-.3-.4-.5-.1-.3-.2-.5-.2-.7v-.5c0-.2 0-.3.1-.4 0-.1 0-.2-.1-.4l.2-.2c.1-.1.1-.2.2-.2h.3s0-.1.1-.1l-.1-.1-.1-.1h.5c.3-.1.4 0 .5 0 .2.1.3.1.4 0v-.4c.1.3.2.4.5.2 0 0 .1.1.3.1.1 0 .3.1.3.1l.1.1.1.1h.1s.1-.1.2-.1c.1.2.2.3.2.4.1.5.2.7.3.8h.2s.1-.1.1-.2v-1c-.2 0-.3-.1-.3-.2v-.3c.1-.1.1-.2.3-.3 0 0 .1 0 .1-.1.1 0 .2-.1.3-.1.1 0 .2-.1.2-.1.3-.2.3-.4.3-.6.1 0 .1-.1.2-.2l-.1-.1-.1-.1H19c.1-.1.1-.2 0-.3.1 0 .1-.1.1-.2s.1-.2.1-.2c.1.1.2.2.4 0 .1-.1.1-.2 0-.3.1-.1.2-.1.4-.2.2 0 .3-.1.3-.2h.1v-.2c0-.1 0-.2.1-.2 0-.1.1-.1.3-.2.1 0 .2-.1.2-.1l.3-.2v-.1c.2 0 .4 0 .6-.2.1-.1.1-.3-.1-.4 0-.1 0-.1-.1-.2-.1 0-.2-.1-.3-.1h.4c.2-.1.1-.2-.1-.3-.2 0-.5.1-.8.3zM18 27.3c2.5-.4 4.5-1.6 6.3-3.4 0 0-.1-.1-.2-.1s-.2 0-.2-.1c-.2-.1-.4-.1-.4-.1v-.2c0-.1-.1-.1-.1-.2-.1 0-.1-.1-.2-.1-.1-.1-.2-.1-.2-.1l-.1-.1c-.1 0-.1-.1-.1-.1s-.1 0-.1-.1h-.6s-.1 0-.1.1-.1 0-.1.1c-.3-.2-.5-.3-.6-.4-.1 0-.1 0-.2-.1s-.1-.1-.2-.1h-.2c-.1 0-.1.1-.2.1-.1.1-.1.1-.1.3v.2c-.1-.1-.1-.2 0-.3.1-.1.1-.3 0-.3 0-.1-.1-.1-.2-.1s-.2 0-.2.1c-.1 0-.1.1-.2.2s-.1.1-.2.1c0 0-.1 0-.2.1s-.1.1-.2.1c0 0-.1.1-.1.2s-.1.2-.1.2-.1-.1-.2-.1-.2-.1-.2-.1c0 .1 0 .3.1.6 0 .3.1.5.1.7.1.4 0 .7-.2.9-.3.3-.5.5-.5.7 0 .3 0 .4.2.5 0 .1 0 .2-.1.4s-.1.3-.1.4c-.2-.1-.1 0-.1.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

22
qbittorrent/root/defaults/theme/private/icons/build-icons/Gruntfile.js

@ -0,0 +1,22 @@
module.exports = function(grunt) {
grunt.initConfig({
svg2png: {
all: {
options:{
size: 256
},
files: [
{
src: ['icons/*.svg']
}
]
}
}
});
grunt.loadNpmTasks('grunt-svg2png');
grunt.registerTask('default', ['svg2png']);
}

13
qbittorrent/root/defaults/theme/private/icons/build-icons/package.json

@ -0,0 +1,13 @@
{
"name": "build-icons",
"version": "1.0.0",
"description": "Convert svg icons to png",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"grunt": "^0.4.5",
"grunt-svg2png": "git+https://git@github.com/bertyhell/grunt-svg2png.git"
},
"author": "Bert Verhelst",
"license": "ISC"
}

14
qbittorrent/root/defaults/theme/private/icons/build-icons/readme.md

@ -0,0 +1,14 @@
Convert SVG icons to PNG
------------------------
install npm
Execute:
```
npm install
```
Convert icons by running:
```
grunt
```

3
qbittorrent/root/defaults/theme/private/icons/checked.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#427337" d="M30.2 9.4c0 .5-.2.9-.5 1.2L16.4 23.9l-2.5 2.5c-.3.3-.8.5-1.2.5-.5 0-.9-.2-1.2-.5L9 23.9l-6.6-6.6c-.4-.4-.6-.8-.6-1.3s.2-.9.5-1.2l2.5-2.5c.3-.3.8-.5 1.2-.5.5 0 .9.2 1.2.5l5.4 5.4 12-12c.3-.3.8-.5 1.2-.5.5 0 .9.2 1.2.5l2.5 2.5c.5.3.7.7.7 1.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 338 B

3
qbittorrent/root/defaults/theme/private/icons/checking.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.4 25.4" width="21.4" height="25.4">
<path d="M10.7 9.2c-1 0-1.8.3-2.5 1s-1 1.5-1 2.5.3 1.8 1 2.5 1.5 1 2.5 1 1.8-.3 2.5-1 1-1.5 1-2.5-.3-1.8-1-2.5-1.5-1-2.5-1zm10.7 2v3.1c0 .1 0 .2-.1.3-.1.1-.2.2-.3.2l-2.6.4c-.2.5-.4.9-.5 1.3.3.5.8 1.1 1.5 1.9.1.1.1.2.1.3 0 .1 0 .2-.1.3-.3.3-.7.8-1.4 1.5s-1.1 1-1.3 1c-.1 0-.2 0-.4-.1l-1.9-1.5c-.4.2-.8.4-1.3.5-.1 1.3-.3 2.1-.4 2.6-.1.3-.2.4-.5.4H9.1c-.1 0-.2 0-.3-.1-.1-.1-.2-.2-.2-.3l-.4-2.6c-.5-.1-.9-.3-1.3-.5l-2 1.5c-.1.1-.2.1-.3.1-.1 0-.2-.1-.3-.2C3.1 20.2 2.4 19.5 2 19c-.1-.1-.1-.2-.1-.3 0-.1 0-.2.1-.3.1-.2.4-.5.7-.9.3-.4.6-.8.8-1-.3-.5-.4-.9-.6-1.4l-2.5-.4c-.1 0-.2-.1-.3-.2-.1-.1-.1-.2-.1-.3v-3.1c0-.1 0-.2.1-.3.1-.1.2-.2.3-.2l2.6-.4c.1-.4.3-.9.5-1.3C3.1 8.4 2.6 7.7 2 7c-.1-.1-.1-.2-.1-.3 0-.1 0-.2.1-.3.2-.4.7-.9 1.4-1.5.7-.7 1.1-1 1.3-1 .1 0 .2 0 .4.1L7 5.5c.4-.2.8-.4 1.3-.5.1-1.3.3-2.1.4-2.6.1-.3.2-.4.5-.4h3.1c.1 0 .2 0 .3.1.1.1.1.2.2.3l.4 2.6c.5.1.9.3 1.3.5l2-1.5c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1 1.2 1.1 2 1.9 2.3 2.4.1.1.1.2.1.3 0 .1 0 .2-.1.3-.1.2-.4.5-.7.9-.3.4-.6.8-.8 1 .2.5.4.9.6 1.4l2.6.4c.1 0 .2.1.3.2z" fill="teal"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

3
qbittorrent/root/defaults/theme/private/icons/collapse.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15">
<path d="M7.5.9C3.9.9.9 3.9.9 7.5s3 6.6 6.6 6.6 6.6-3 6.6-6.6S11.2.9 7.5.9zm0 9.2l-4-4.3h8l-4 4.3z" fill="#375273"/>
</svg>

After

Width:  |  Height:  |  Size: 187 B

3
qbittorrent/root/defaults/theme/private/icons/completed.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 23.2 27.3">
<path d="M22.7 9.2L11.9 20l-2 2c-.2.2-.7.4-1 .4-.4 0-.7-.2-1-.4l-2-2-5.4-5.4c-.3-.3-.5-.7-.5-1.1 0-.4.2-.7.4-1l2-2c.2-.2.7-.4 1-.4.4 0 .7.2 1 .4l4.4 4.4 9.8-9.7c.2-.2.7-.4 1-.4.4 0 .7.2 1 .4l2 2c.4.2.6.6.6 1-.1.4-.2.7-.5 1z" fill="#375273"/>
</svg>

After

Width:  |  Height:  |  Size: 316 B

6
qbittorrent/root/defaults/theme/private/icons/configure.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M26.7 14.5v3.1c0 .1 0 .2-.1.3-.1.1-.2.2-.3.2l-2.6.4c-.2.5-.4.9-.5 1.3.3.5.8 1.1 1.5 1.9.1.1.1.2.1.3 0 .1 0 .2-.1.3-.3.3-.7.8-1.4 1.5s-1.1 1-1.3 1c-.1 0-.2 0-.4-.1l-1.9-1.5c-.4.2-.8.4-1.3.5-.1 1.3-.3 2.1-.4 2.6-.1.3-.2.4-.5.4h-3.1c-.1 0-.2 0-.3-.1s-.2-.2-.2-.3l-.4-2.6c-.5-.1-.9-.3-1.3-.5l-2 1.5c-.1.1-.2.1-.3.1-.1 0-.2-.1-.3-.2-1.2-1.1-1.9-1.8-2.3-2.3-.1-.1-.1-.2-.1-.3 0-.1 0-.2.1-.3.1-.2.4-.5.7-.9.3-.4.6-.8.8-1-.3-.5-.4-.9-.6-1.4L5.7 18c-.1 0-.2-.1-.3-.2-.1-.1-.1-.2-.1-.3v-3.1c0-.1 0-.2.1-.3.1-.1.2-.2.3-.2l2.6-.4c.1-.4.3-.9.5-1.3-.4-.5-.9-1.2-1.5-1.9-.1-.1-.1-.2-.1-.3 0-.1 0-.2.1-.3.2-.4.7-.9 1.4-1.5.7-.7 1.1-1 1.3-1 .1 0 .2 0 .4.1l1.9 1.5c.4-.2.8-.4 1.3-.5.1-1.3.3-2.1.4-2.6.1-.3.2-.4.5-.4h3.1c.1 0 .2 0 .3.1.1.1.1.2.2.3l.4 2.6c.5.1.9.3 1.3.5l2-1.5c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1 1.2 1.1 2 1.9 2.3 2.4.1.1.1.2.1.3 0 .1 0 .2-.1.3-.1.2-.4.5-.7.9-.3.4-.6.8-.8 1 .2.5.4.9.6 1.4l2.6.4c.1 0 .2.1.3.2v.3zm-8.2 4c.7-.7 1-1.5 1-2.5s-.3-1.8-1-2.5-1.5-1-2.5-1-1.8.3-2.5 1-1 1.5-1 2.5.3 1.8 1 2.5 1.5 1 2.5 1 1.8-.3 2.5-1z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

3
qbittorrent/root/defaults/theme/private/icons/connected.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#427337" d="M25.1 17.3l4.2-4.2c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0l-4.2 4.2-4.7-4.7 4.2-4.2c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0L14.8 7l-2.3-2.3-3.8 3.5c-3.4 3.4-4 8.6-1.8 12.6L3 24.7c-1.2 1.2-1.2 3.1 0 4.2.6.6 1.4.9 2.1.9.8 0 1.5-.3 2.1-.9l3.9-3.9c4 2.2 9.2 1.6 12.6-1.8l3.6-3.6-2.2-2.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 367 B

3
qbittorrent/root/defaults/theme/private/icons/dialog-cancel.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#733737" d="M28.1 10.8c.7 1.6 1 3.3 1 5.1s-.3 3.5-1 5.2c-.7 1.6-1.6 3-2.8 4.2-1.2 1.2-2.6 2.1-4.2 2.8-1.6.7-3.3 1-5.1 1-1.8 0-3.5-.3-5.1-1-1.6-.7-3-1.6-4.2-2.8-1.2-1.2-2.1-2.6-2.8-4.2-.7-1.6-1-3.4-1-5.2s.3-3.5 1-5.1c.7-1.6 1.6-3 2.8-4.2s2.6-2.1 4.2-2.8c1.6-.7 3.3-1 5.1-1 1.8 0 3.5.3 5.1 1 1.6.7 3 1.6 4.2 2.8s2.1 2.6 2.8 4.2zM8.2 21.1l13-13c-1.5-1-3.3-1.6-5.2-1.6-1.7 0-3.3.4-4.7 1.3-1.4.8-2.6 2-3.4 3.4-.8 1.4-1.3 3-1.3 4.7.1 1.9.6 3.7 1.6 5.2zM25.3 16c0-1.8-.5-3.5-1.5-5.1l-13 12.9c1.6 1 3.3 1.5 5.1 1.5 1.3 0 2.5-.2 3.6-.7 1.2-.5 2.1-1.2 3-2s1.5-1.8 2-3c.6-1.1.8-2.3.8-3.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 663 B

4
qbittorrent/root/defaults/theme/private/icons/dialog-information.svg

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M1012.3 993.2c1.3 2.2 1.9 4.6 1.9 7.2 0 2.6-.6 5-1.9 7.2-1.3 2.2-3 3.9-5.2 5.2-2.2 1.3-4.6 1.9-7.2 1.9s-5-.6-7.2-1.9c-2.2-1.3-3.9-3-5.2-5.2-1.3-2.2-1.9-4.6-1.9-7.2 0-2.6.6-5 1.9-7.2s3-3.9 5.2-5.2 4.6-1.9 7.2-1.9 5 .6 7.2 1.9 4 3 5.2 5.2zm-7.5 16.1v-3c0-.2-.1-.3-.2-.4s-.3-.2-.4-.2h-1.8v-9.5c0-.2-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2h-5.9c-.2 0-.3.1-.4.2-.1.1-.2.3-.2.4v3c0 .2.1.3.2.4.1.1.3.2.4.2h1.8v5.9h-1.8c-.2 0-.3.1-.4.2-.1.1-.2.3-.2.4v3c0 .2.1.3.2.4.1.1.3.2.4.2h8.3c.2 0 .3-.1.4-.2s.2-.2.2-.4zm-2.4-16.6v-3c0-.2-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2h-3.6c-.2 0-.3.1-.4.2-.1.1-.2.3-.2.4v3c0 .2.1.3.2.4.1.1.3.2.4.2h3.6c.2 0 .3-.1.4-.2.1-.1.2-.3.2-.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 796 B

3
qbittorrent/root/defaults/theme/private/icons/dialog-warning.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#D1954E" d="M17.7 4.6l11.5 21.1c.3.6.3 1.3 0 1.9-.2.3-.4.5-.7.7-.3.2-.6.3-.9.3h-23c-.3 0-.7-.1-.9-.3s-.7-.5-.8-.8c-.4-.6-.4-1.3 0-1.9l11.4-21c.2-.3.4-.6.7-.8.3-.2.6-.3 1-.3.3 0 .7.1 1 .3.3.2.5.5.7.8zm.2 13.9l.3-6.9c0-.1 0-.2-.1-.3-.1-.1-.2-.2-.4-.2h-3.3c-.1 0-.2.1-.4.2-.1.1-.1.2-.1.3l.3 6.8c0 .1 0 .2.1.2.1.1.2.1.4.1h2.8c.1 0 .3 0 .4-.1-.1.1 0 0 0-.1zm0 5.6v-2.8c0-.1 0-.3-.1-.4-.1-.1-.2-.1-.3-.1h-2.9c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.4v2.8c0 .1 0 .3.1.4.1.1.2.1.3.1h2.9c.1 0 .2 0 .3-.1.1-.1.1-.2.1-.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 585 B

3
qbittorrent/root/defaults/theme/private/icons/disconnected.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#733737" d="M25.1 17.3l4.2-4.2c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0l-4.2 4.2-4.7-4.7 4.2-4.2c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0L14.8 7l-2.3-2.3-3.8 3.5c-3.4 3.4-4 8.6-1.8 12.6L3 24.7c-1.2 1.2-1.2 3.1 0 4.2.6.6 1.4.9 2.1.9.8 0 1.5-.3 2.1-.9l3.9-3.9c4 2.2 9.2 1.6 12.6-1.8l3.6-3.6-2.2-2.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 367 B

5
qbittorrent/root/defaults/theme/private/icons/document-edit-verify.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="#375273" d="M1013.2 994.1c-.2-.4-.4-.8-.6-1l-4.2-4.2c-.3-.3-.6-.5-1-.6-.4-.2-.8-.3-1.2-.3h-12c-.4 0-.7.1-.9.4-.2.3-.4.6-.4.9v6.2c.5-.3 1.1-.4 1.7-.5v-5.3h10.3v5.6c0 .4.1.7.4.9.3.3.6.4.9.4h5.6v13.7h-17.2v-5.5c-.6-.1-1.2-.2-1.7-.5v6.4c0 .4.1.7.4.9.3.2.6.4.9.4h18c.4 0 .7-.1.9-.4.2-.3.4-.6.4-.9v-15.4c0-.4-.1-.8-.3-1.2zm-6.6.8v-5c.3.1.4.2.5.3l4.2 4.2c.1.1.2.3.3.5h-5z"/>
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M986.5 1006.6l3.2-3.2c-.8-1.1-1.2-2.4-1.2-3.8 0-.9.2-1.8.5-2.6s.8-1.5 1.4-2.1 1.3-1.1 2.1-1.4c.8-.3 1.7-.5 2.6-.5s1.8.2 2.6.5 1.5.8 2.1 1.4c.6.6 1.1 1.3 1.4 2.1.3.8.5 1.7.5 2.6s-.2 1.8-.5 2.6-.8 1.5-1.4 2.1c-.6.6-1.3 1.1-2.1 1.4-.8.3-1.7.5-2.6.5-1.4 0-2.6-.4-3.8-1.2l-3.2 3.2c-.2.2-.5.4-.8.4-.3 0-.6-.1-.8-.4s-.4-.5-.4-.8c0-.3.1-.6.4-.8zm8.6-2.8c1.2 0 2.2-.4 3-1.2.8-.8 1.2-1.8 1.2-3s-.4-2.2-1.2-3c-.8-.8-1.8-1.2-3-1.2s-2.2.4-3 1.2-1.2 1.8-1.2 3 .4 2.2 1.2 3 1.9 1.2 3 1.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 1013 B

5
qbittorrent/root/defaults/theme/private/icons/document-edit.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M986.1 995l2.2-2.2c.2-.2.5-.4.9-.4.3 0 .6.1.8.4l1.6 1.6-3.9 3.9-1.6-1.6c-.2-.2-.3-.5-.3-.8 0-.4.1-.7.3-.9zm13.9 7.8v3.9h-3.9l-7.8-7.8 3.9-3.9 7.8 7.8zm-8.3-5.9l5.1 5.1s.1.1.2.1.2-.1.2-.2 0-.1-.1-.2l-5.1-5.1s-.1-.1-.2-.1-.2.1-.2.2c.1.1.1.2.1.2zm5.9 8.6v-1.2h1.2v-1l-.9-.9-2.2 2.2.9.9h1z"/>
<path fill="#375273" d="M1013.2 994.1c-.2-.4-.4-.8-.6-1l-4.2-4.2c-.3-.3-.6-.5-1-.6-.4-.2-.8-.3-1.2-.3h-12c-.4 0-.7.1-.9.4-.2.3-.4.6-.4.9v6.4l1.7 1.7v-7.7h10.3v5.6c0 .4.1.7.4.9.3.3.6.4.9.4h5.6v13.7h-17.2v-5.1l-1.7-1.7v7.2c0 .4.1.7.4.9.3.2.6.4.9.4h18c.4 0 .7-.1.9-.4.2-.3.4-.6.4-.9v-15.4c0-.4-.1-.8-.3-1.2zm-6.6.8v-5c.3.1.4.2.5.3l4.2 4.2c.1.1.2.3.3.5h-5z"/>
</svg>

After

Width:  |  Height:  |  Size: 801 B

3
qbittorrent/root/defaults/theme/private/icons/document-encrypt.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#D1954E" d="M27.1 16.6v11.1c0 .5-.2 1-.5 1.3-.4.4-.8.5-1.3.5H6.7c-.5 0-1-.2-1.3-.5-.4-.4-.5-.8-.5-1.3V16.6c0-.5.2-1 .5-1.3.4-.4.8-.5 1.3-.5h.6v-3.7c0-2.4.8-4.4 2.5-6.1 1.7-1.7 3.7-2.5 6.1-2.5 2.4 0 4.4.8 6.1 2.5 1.7 1.7 2.5 3.7 2.5 6.1v3.7h.6c.5 0 1 .2 1.3.5.5.4.7.8.7 1.3zm-16-1.8H21v-3.7c0-1.4-.5-2.5-1.4-3.5S17.4 6.1 16 6.1s-2.5.5-3.5 1.4c-1 1-1.4 2.1-1.4 3.5v3.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 453 B

5
qbittorrent/root/defaults/theme/private/icons/document-import.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M1012.2 993.1c.2.3.5.6.6 1 .2.4.3.8.3 1.2v15.4c0 .4-.1.7-.4.9-.3.2-.6.4-.9.4h-18c-.4 0-.7-.1-.9-.4-.2-.3-.4-.6-.4-.9v-21.4c0-.4.1-.7.4-.9.3-.2.6-.4.9-.4h12c.4 0 .8.1 1.2.3.4.2.8.4 1 .6l4.2 4.2zm-.8 17.2v-13.7h-5.6c-.4 0-.7-.1-.9-.4-.3-.2-.4-.6-.4-.9v-5.6h-10.3v20.6h17.2zm-5.2-20.5v5h5c-.1-.3-.2-.4-.3-.5l-4.2-4.2c0-.1-.2-.2-.5-.3z"/>
<path fill="#375273" d="M1005.7 1001.4c0 .3-.1.6-.3.9l-6.1 6.1c-.2.2-.5.3-.9.3-.3 0-.6-.1-.8-.3l-.7-.7c-.2-.2-.4-.5-.4-.9s.1-.6.4-.9l2.8-2.8H988c-.3 0-.6-.1-.8-.4-.2-.2-.3-.5-.3-.9v-1.2c0-.3.1-.6.3-.9.2-.2.5-.4.8-.4h11.6l-2.8-2.8c-.2-.2-.4-.5-.4-.8 0-.3.1-.6.4-.8l.7-.7c.2-.2.5-.4.8-.4.3 0 .6.1.9.4l6.1 6.1c.3.5.4.8.4 1.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 817 B

5
qbittorrent/root/defaults/theme/private/icons/document-new.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M1010 992.4c.2.3.5.6.6 1 .2.4.3.8.3 1.2v15.4c0 .4-.1.7-.4.9-.3.2-.6.4-.9.4h-18c-.4 0-.7-.1-.9-.4-.2-.3-.4-.6-.4-.9v-21.4c0-.4.1-.7.4-.9.3-.2.6-.4.9-.4h12c.4 0 .8.1 1.2.3.4.2.8.4 1 .6l4.2 4.2zm-.8 17.2v-13.7h-5.6c-.4 0-.7-.1-.9-.4-.3-.2-.4-.6-.4-.9V989H992v20.6h17.2zm-5.2-20.4v5h5c-.1-.3-.2-.4-.3-.5l-4.2-4.2c0-.1-.2-.2-.5-.3z"/>
<path fill="#427337" d="M1000 1006.5v1.5c0 .2-.1.4-.2.5-.1.1-.3.2-.5.2H996v3.2c0 .2-.1.4-.2.5-.1.1-.3.2-.5.2h-1.5c-.2 0-.4-.1-.5-.2-.1-.1-.2-.3-.2-.5v-3.2h-3.2c-.2 0-.4-.1-.5-.2-.1-.1-.2-.3-.2-.5v-1.5c0-.2.1-.4.2-.5.1-.1.3-.2.5-.2h3.2v-3.2c0-.2.1-.4.2-.5.1-.1.3-.2.5-.2h1.5c.2 0 .4.1.5.2.1.1.2.3.2.5v3.2h3.2c.2 0 .4.1.5.2.2.1.3.3.3.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 824 B

5
qbittorrent/root/defaults/theme/private/icons/document-properties.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="none" d="M-43.8-437.5H2700v2625H-43.8z"/>
<path fill="#375273" d="M999.7 1005.7v2c0 .1 0 .1-.1.2 0 .1-.1.1-.2.1l-1.7.2c-.1.3-.2.6-.3.8.2.3.5.7 1 1.2.1.1.1.1.1.2s0 .1-.1.2c-.2.2-.5.5-.9 1-.4.4-.7.6-.8.6-.1 0-.1 0-.2-.1l-1.2-1c-.3.1-.5.2-.8.3-.1.8-.2 1.4-.3 1.7 0 .2-.1.3-.3.3h-2c-.1 0-.2 0-.2-.1-.1-.1-.1-.1-.1-.2l-.3-1.6c-.3-.1-.6-.2-.8-.3l-1.3 1c-.1.1-.1.1-.2.1s-.2 0-.2-.1c-.8-.7-1.2-1.2-1.5-1.5 0-.1-.1-.1-.1-.2s0-.1.1-.2.2-.3.5-.6c.2-.3.4-.5.5-.6-.2-.3-.3-.6-.4-.9l-1.6-.2c-.1 0-.1 0-.2-.1 0-.1-.1-.1-.1-.2v-2c0-.1 0-.1.1-.2 0-.1.1-.1.2-.1l1.7-.2c.1-.3.2-.5.3-.8-.2-.3-.6-.8-1-1.2-.1-.1-.1-.1-.1-.2s0-.1.1-.2c.2-.2.4-.5.9-1 .4-.4.7-.6.8-.6.1 0 .2 0 .2.1l1.2 1c.3-.1.5-.2.8-.3.1-.8.2-1.4.3-1.7 0-.2.1-.3.3-.3h2c.1 0 .2 0 .2.1.1.1.1.1.1.2l.3 1.6c.3.1.6.2.8.3l1.3-1c.1-.1.1-.1.2-.1s.2 0 .2.1c.8.7 1.3 1.2 1.5 1.5 0 0 .1.1.1.2s0 .1-.1.2-.2.3-.5.6c-.2.3-.4.5-.5.6.2.3.3.6.4.9l1.6.2c.1 0 .1 0 .2.1.1 0 .1.1.1.2zm-5.2 2.6c.4-.4.7-1 .7-1.6 0-.6-.2-1.2-.7-1.6-.4-.4-1-.7-1.6-.7-.6 0-1.2.2-1.6.7-.4.4-.7 1-.7 1.6 0 .6.2 1.2.7 1.6.4.4 1 .7 1.6.7.6-.1 1.1-.3 1.6-.7z"/>
<path fill="#375273" d="M1013.7 992.6c-.2-.4-.4-.8-.6-1l-4.2-4.2c-.3-.3-.6-.5-1-.6-.4-.2-.8-.3-1.2-.3h-12c-.4 0-.7.1-.9.4-.2.3-.4.6-.4.9v15.7h1.7v-15.2h10.3v5.6c0 .4.1.7.4.9.3.3.6.4.9.4h5.6v13.7h-15.9v1.7h16.3c.4 0 .7-.1.9-.4.2-.3.4-.6.4-.9v-15.4c0-.5-.1-.9-.3-1.3zm-6.6.8v-5c.3.1.4.2.5.3l4.2 4.2c.1.1.2.3.3.5h-5z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

3
qbittorrent/root/defaults/theme/private/icons/document-save.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#375273" d="M28.3 11.9v14.9c0 .4-.1.8-.4 1.1-.3.3-.7.4-1.1.4H5.2c-.4 0-.8-.1-1.1-.4-.3-.3-.4-.7-.4-1.1V5.2c0-.4.1-.8.4-1.1.3-.3.7-.4 1.1-.4h14.9c.4 0 .9.1 1.4.3.5.2.9.5 1.2.8l4.5 4.5c.3.3.6.7.8 1.2.2.5.3 1 .3 1.4zm-4.1 14.3h2.1V11.9c0-.1-.1-.4-.2-.6-.1-.3-.2-.4-.3-.6l-4.5-4.5c-.1-.1-.3-.2-.6-.3-.3-.1-.5-.2-.6-.2v6.7c0 .4-.1.8-.4 1.1-.3.3-.7.5-1.1.5H9.3c-.4 0-.8-.1-1.1-.4-.3-.3-.4-.7-.4-1.1V5.8h-2v20.5h2v-6.7c0-.4.1-.8.4-1.1.3-.3.7-.5 1.1-.5h13.3c.4 0 .8.1 1.1.4.3.3.4.7.4 1.1v6.7zm-14.4 0h12.3v-6.1H9.8v6.1zM18 11.4V6.3c0-.2 0-.3-.1-.4-.1-.1-.2-.2-.4-.2h-3.1c-.1 0-.3.1-.4.2v5.5c0 .1.1.3.2.4.1.1.2.2.4.2h3.1c.1 0 .3-.1.4-.2-.1-.2-.1-.3-.1-.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 732 B

3
qbittorrent/root/defaults/theme/private/icons/download.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#375273" d="M28.5 21.3v4.8c0 .4-.1.7-.4 1s-.6.4-1 .4H4.9c-.4 0-.7-.1-1-.4s-.4-.6-.4-1v-4.8c0-.4.1-.7.4-1s.6-.4 1-.4h7l2 2c.6.6 1.3.8 2 .8.8 0 1.5-.3 2-.8l2-2h7c.4 0 .7.1 1 .4s.6.6.6 1zm-4.9-8.6c.2.4.1.8-.2 1.1l-6.8 6.8c-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3l-6.8-6.8c-.3-.3-.4-.6-.2-1.1.2-.4.5-.6.9-.6H13V5.4c0-.3.1-.5.3-.7.2-.2.4-.3.7-.3h3.9c.3 0 .5.1.7.3s.3.4.3.7v6.8h3.9c.4-.1.7.1.8.5zm-1.1 12.7c.2-.2.3-.4.3-.7 0-.3-.1-.5-.3-.7-.2-.2-.4-.3-.7-.3s-.5.1-.7.3c-.2.2-.3.4-.3.7 0 .3.1.5.3.7.2.2.4.3.7.3s.5-.2.7-.3zm3.8 0c.2-.2.3-.4.3-.7 0-.3-.1-.5-.3-.7s-.4-.3-.7-.3c-.3 0-.5.1-.7.3s-.3.4-.3.7c0 .3.1.5.3.7s.4.3.7.3c.3-.1.5-.2.7-.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 711 B

3
qbittorrent/root/defaults/theme/private/icons/downloading.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.7 25.8">
<path d="M20.2 14.4l-9 9c-.3.3-.5.4-.9.4s-.7-.1-.9-.4l-9-9c-.4-.4-.5-.8-.3-1.5.3-.5.7-.8 1.2-.8h5.2V3.3c0-.4.1-.7.4-.9.3-.3.5-.4.9-.4H13c.4 0 .7.1.9.4.2.2.4.5.4.9v9h5.2c.5-.1.9.1 1.1.7.2.5 0 1-.4 1.4z" fill="#427337"/>
</svg>

After

Width:  |  Height:  |  Size: 293 B

3
qbittorrent/root/defaults/theme/private/icons/downloading_small.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#427337" d="M29 16.1c.3.7.2 1.4-.3 1.9L17.2 29.4c-.3.3-.7.5-1.2.5s-.8-.2-1.2-.5L3.3 17.9c-.5-.5-.7-1-.3-1.9.3-.7.8-1 1.5-1h6.6V3.8c0-.5.2-.8.5-1.2.3-.3.7-.5 1.2-.5h6.6c.5 0 .8.2 1.2.5.3.3.5.7.5 1.2v11.5h6.6c.6-.2 1.1.1 1.3.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 311 B

8
qbittorrent/root/defaults/theme/private/icons/edit-clear-history.svg

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path d="M12.4 17.6c-.4.3-.7.5-1 .7s-.5.5-.9.8c-.4.3-.7.7-.9.9-.2.3-.5.6-.7 1-.3.4-.5.8-.6 1.2-.2.4-.3.8-.4 1.3-.1.5-.2 1-.2 1.4h13.1l-.6-.6c-.1 0-.2-.3-.2-.6 0-.2.1-.3.2-.5 0 0 0-.1.1-.1l1.9-1.9-1.9-1.9c-.3-.2-.3-.5-.3-.7 0-.2.1-.3.2-.5 0 0 0-.1.1-.1l.2-.2c-.1 0-.1-.1-.2-.1-.4-.3-.7-.5-.9-.6s-.5-.3-.9-.6c.4-.3.7-.4.9-.6.2-.1.5-.3.9-.6s.7-.5 1-.7c.2-.2.5-.5.9-.8.4-.3.7-.7.9-.9.2-.3.5-.6.7-1 .3-.4.5-.8.6-1.2s.3-.8.4-1.3c.1-.5.2-1 .2-1.4H7.7c0 .5.1 1 .2 1.4.1.5.3.9.4 1.3s.4.8.6 1.2.5.7.7 1c.2.3.5.6.9.9.4.3.7.6.9.8.2.2.6.5 1 .7.4.3.7.5.9.6.2.1.5.3.9.6-.4.3-.7.4-.9.6s-.5.2-.9.5zM23 25h2c0-.4-.1-.8-.2-1.2l-.3-.3L23 25zm3.3.9H6.4c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3V28c0 .1 0 .2.1.3.1.1.2.1.3.1h19.9c.1 0 .2 0 .3-.1.1-.1.1-.2.1-.3v-1.7c0-.1 0-.2-.1-.3-.1-.1-.2-.1-.3-.1zM6.4 6.8h19.9c.1 0 .2 0 .3-.1s.1-.2.1-.3V4.7c0-.1 0-.2-.1-.3s-.2-.1-.3-.1H6.4c-.1 0-.2 0-.3.1s-.1.1-.1.3v1.7c0 .1 0 .2.1.3s.2.1.3.1z" fill="#375273"/>
<path fill="none" d="M28.6 19.2c.1-.2.2-.3.2-.5 0 .1-.1.3-.2.5z"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0zm0 4.3l2.2-2.1c.1-.2.2-.4.2-.5 0-.2-.1-.4-.2-.4l-1-1c-.2-.1-.3-.2-.5-.2s-.4 0-.5.2l-2.1 2.1-2.2-2.1c-.2-.1-.3-.2-.5-.2s-.4.1-.5.2l-1 .9c-.1.2-.2.3-.2.5s0 .4.2.5l2.1 2.1-2.1 2.1c-.1.2-.2.3-.2.5s.1.4.2.5l1 1c.2.1.3.2.5.2s.4-.1.5-.2l2.2-2.1 2 2.2c.2.1.3.2.5.2s.4-.1.5-.2l1-1c.1-.2.2-.3.2-.5s-.1-.4-.2-.5l-2.1-2.2z"/>
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

7
qbittorrent/root/defaults/theme/private/icons/edit-clear.svg

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="984 984 32 32">
<path fill="#375273" d="M998.8 999c0 .3-.2.5-.5.5h-.8c-.3 0-.5-.2-.5-.5v-12.5c0-.3.2-.5.5-.5h.8c.3 0 .5.2.5.5V999zm.7 2.4c.3 0 .4-.2.2-.4l-.5-.7c-.2-.2-.5-.4-.8-.4h-1.2c-.3 0-.6.2-.8.4l-.3.7c-.2.2-.1.4.2.4h3.2z"/>
<path fill="#733737" d="M1007.1 1010.5c0 .2-.1.3-.2.5l-1 1c-.1.1-.3.2-.5.2s-.3-.1-.5-.2l-2.1-2.2-2.2 2.1c-.1.1-.3.2-.5.2s-.3-.1-.5-.2l-1-1c-.1-.1-.2-.3-.2-.5s.1-.3.2-.5l2.1-2.1-2.1-2.1c-.2-.1-.2-.3-.2-.5s.1-.3.2-.5l1-.9c.1-.1.3-.2.5-.2s.3.1.5.2l2.2 2.1 2.1-2.1c.1-.1.3-.2.5-.2s.3.1.5.2l1 1c.1.1.2.3.2.5s-.1.3-.2.5l-2.2 2.1 2.1 2.1c.2.1.3.3.3.5z"/>
<path fill="none" d="M1006.9 1005.8c.1-.2.2-.3.2-.5 0 .2-.1.3-.2.5z"/>
<path fill="#733737" d="M1004.7 1003.7c.1-.1.1-.1 0 0 .1-.1.1-.1 0 0zm0 4.2l2.2-2.1c.1-.2.2-.4.2-.5 0-.2-.1-.4-.2-.4l-1-1c-.2-.1-.3-.2-.5-.2s-.4 0-.5.2l-2.1 2.1-2.2-2.1c-.2-.1-.3-.2-.5-.2s-.4.1-.5.2l-1 .9c-.1.2-.2.3-.2.5s0 .4.2.5l2.1 2.1-2.1 2.1c-.1.2-.2.3-.2.5s.1.4.2.5l1 1c.2.1.3.2.5.2s.4-.1.5-.2l2.2-2.1 2 2.2c.2.1.3.2.5.2s.4-.1.5-.2l1-1c.1-.2.2-.3.2-.5s-.1-.4-.2-.5l-2.1-2.2z"/>
<path fill="#375273" d="M1000.9 1012c-.2.2-.4.3-.7.3s-.5-.1-.7-.3l-1-1c-.2-.2-.3-.4-.3-.7s.1-.5.3-.7l1.9-1.9-1.6-1.6h-3.7c-.3 0-.6.2-.6.5l-1.6 6.8c-.1.3.1.5.4.5h9.4c.3 0 .4-.2.4-.5l-.7-3-1.5 1.6zm-2.7-6.8c0-.3.1-.5.3-.7l1-.9c.2-.2.4-.3.7-.3.2 0 .3 0 .5.1l-.3-1.1c-.1-.3-.3-.5-.6-.5H996c-.3 0-.6.2-.6.5l-.7 3c-.1.3.1.5.4.5h3.3c-.1-.1-.2-.3-.2-.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

6
qbittorrent/root/defaults/theme/private/icons/edit-copy.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M27.2 8.9c.4 0 .7.1.9.4s.4.6.4.9v17c0 .4-.1.7-.4.9s-.6.4-.9.4H13.8c-.4 0-.7-.1-.9-.4-.3-.3-.4-.6-.4-.9v-4H4.8c-.4 0-.7-.1-.9-.4s-.4-.6-.4-.9v-9.4c0-.4.1-.8.3-1.2.2-.4.4-.8.7-1.1l5.7-5.7c.3-.3.6-.5 1.1-.7.4-.2.9-.3 1.2-.3h5.8c.4 0 .7.1.9.4.3.3.4.6.4.9v4.6c.6-.4 1.2-.6 1.8-.6h5.8zm-13.8 6.6l4.4-4.4V5.3h-5.4v5.8c0 .4-.1.7-.4.9-.3.3-.6.4-.9.4H5.3v8.9h7.1v-3.6c0-.4.1-.8.3-1.2s.4-.7.7-1zm-2.8-9l-4.2 4.2h4.2V6.5zm16.1 20.2V10.6h-5.4v5.8c0 .4-.1.7-.4.9-.3.3-.6.4-.9.4h-5.8v8.9h12.5zm-7.1-14.9L15.4 16h4.2v-4.2z"/>
</svg>

After

Width:  |  Height:  |  Size: 805 B

6
qbittorrent/root/defaults/theme/private/icons/edit-cut.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M21.1 16l7.1 5.6c.3.2.4.4.3.8 0 .3-.2.6-.5.7l-1.8.9h-.4c-.2 0-.3 0-.4-.1l-9.6-5.4-1.5.9c-.1 0-.1.1-.2.1.1.5.2.9.1 1.4-.1.7-.3 1.4-.8 2.1-.5.7-1.1 1.2-1.8 1.7-1.2.8-2.5 1.2-3.9 1.2-1.3 0-2.3-.4-3.1-1.1-.8-.8-1.2-1.8-1.1-3 .1-.7.3-1.4.8-2.1.5-.7 1.1-1.2 1.8-1.7 1.2-.8 2.5-1.2 3.9-1.2.8 0 1.5.1 2.1.4l.3-.3 1.7-1-1.7-1-.3-.3c-.6.3-1.3.4-2.1.4-1.4 0-2.7-.4-3.9-1.2-.8-.5-1.4-1.1-1.8-1.7-.5-.7-.7-1.3-.8-2.1 0-.5 0-1.1.2-1.6s.5-.9.9-1.3C5.4 6.4 6.4 6 7.7 6s2.6.4 3.9 1.2c.8.5 1.4 1.1 1.8 1.7.5.7.7 1.3.8 2.1 0 .4 0 .9-.1 1.4 0 0 .1 0 .2.1l1.5.9L25.4 8h.4c.1 0 .3 0 .4.1L28 9c.3.1.4.4.5.7 0 .3-.1.6-.3.8L21.1 16zm-9.5-3.6c.4-.4.5-.9.3-1.5s-.7-1.2-1.5-1.6c-.9-.6-1.8-.9-2.7-.9-.7 0-1.2.2-1.6.5-.4.4-.5.9-.3 1.5s.7 1.2 1.5 1.6c.9.5 1.7.8 2.7.8.7.1 1.2-.1 1.6-.4zm-1.2 10.4c.8-.5 1.2-1 1.5-1.6s.1-1.1-.3-1.5c-.4-.3-.9-.5-1.6-.5-.9 0-1.8.3-2.7.8-.8.5-1.2 1-1.5 1.6-.2.6-.1 1.1.3 1.5.4.3.9.5 1.6.5.9 0 1.8-.3 2.7-.8zm5.6-5.5l1.3.4 10.3-8-1.8-.9-10.7 6v1.6l-2.2 1.3.1.1s.1 0 .1.1l.2.2.2.2.4.4 2.1-1.4zm-3.1-3.1l1.3.8v-.2c0-.3.2-.6.5-.8l.2-.1-1.1-.7-.4.4s-.1.1-.1.2l-.2.2H13l-.1.2zm3.4 1.2c.2-.2.4-.3.6-.3.2 0 .5.1.6.3.2.2.3.4.3.6s-.1.5-.3.6-.4.3-.6.3c-.2 0-.5-.1-.6-.3-.2-.1-.3-.4-.3-.6s.1-.5.3-.6zm9.5 7.7l1.8-.9-7.3-5.7-2.5 1.9s-.1.1-.2.1l8.2 4.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

3
qbittorrent/root/defaults/theme/private/icons/edit-delete.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#733737" d="M29.6 24.2c0 .6-.2 1.1-.6 1.6l-3.1 3.1c-.4.4-.9.6-1.6.6-.6 0-1.1-.2-1.6-.6L16 22.1l-6.7 6.7c-.4.4-.9.6-1.6.6-.6 0-1.1-.2-1.6-.6L3 25.7c-.4-.4-.6-.9-.6-1.6s.2-1.1.6-1.6l6.7-6.7-6.6-6.6c-.5-.4-.7-1-.7-1.6 0-.6.2-1.1.6-1.6l3.2-3c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.6.6L16 9.7 22.7 3c.4-.4.9-.6 1.6-.6.6 0 1.1.2 1.6.6L29 6.1c.4.4.6.9.6 1.6 0 .6-.2 1.1-.6 1.6L22.3 16l6.7 6.7c.4.4.6.9.6 1.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 478 B

11
qbittorrent/root/defaults/theme/private/icons/edit-find-user.svg

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M27.1 29.5c-.4 0-.7-.1-.9-.4l-2.6-2.6c-.9.6-2 .9-3.1.9-.8 0-1.6-.2-2.3-.5-.7-.3-1.3-.7-1.9-1.2-.5-.5-.9-1.1-1.2-1.9-.3-.7-.5-1.5-.5-2.3s.2-1.6.5-2.3c.3-.7.7-1.3 1.2-1.9.5-.5 1.1-.9 1.9-1.2.7-.3 1.5-.5 2.3-.5.8 0 1.6.2 2.3.5.7.3 1.3.7 1.9 1.2.5.5.9 1.1 1.2 1.9.3.7.5 1.5.5 2.3 0 1.1-.3 2.2-.9 3.1l2.6 2.6c.2.2.4.5.4.9 0 .3-.1.6-.4.9-.3.4-.6.5-1 .5zm-6.6-11.2c-.9 0-1.7.3-2.3 1s-1 1.4-1 2.3c0 .9.3 1.7 1 2.3.7.7 1.4 1 2.3 1 .9 0 1.7-.3 2.3-1 .7-.7 1-1.4 1-2.3 0-.9-.3-1.7-1-2.3s-1.4-1-2.3-1z"/>
<path fill="#FFF" d="M20.5 16.1c.8 0 1.5.1 2.2.4.7.3 1.3.7 1.8 1.2s.9 1.1 1.2 1.8c.3.7.4 1.4.4 2.2 0 1.2-.3 2.2-1 3.2l2.7 2.7c.2.2.3.4.3.7 0 .3-.1.5-.3.7-.2.2-.4.3-.7.3-.3 0-.5-.1-.7-.3l-2.7-2.7c-.9.7-2 1-3.2 1-.8 0-1.5-.1-2.2-.4-.7-.3-1.3-.7-1.8-1.2s-.9-1.1-1.2-1.8c-.3-.7-.4-1.4-.4-2.2 0-.8.1-1.5.4-2.2.3-.7.7-1.3 1.2-1.8s1.1-.9 1.8-1.2c.7-.3 1.5-.4 2.2-.4m0 9.1c1 0 1.8-.3 2.5-1s1-1.5 1-2.5-.3-1.8-1-2.5-1.5-1-2.5-1-1.8.3-2.5 1-1 1.5-1 2.5.3 1.8 1 2.5 1.5 1 2.5 1m0-9.6c-.8 0-1.6.2-2.4.5-.7.3-1.4.8-1.9 1.3s-1 1.2-1.3 1.9c-.3.8-.5 1.5-.5 2.4 0 .8.2 1.6.5 2.4.3.7.8 1.4 1.3 1.9s1.2 1 1.9 1.3c.8.3 1.5.5 2.4.5 1.1 0 2.2-.3 3.1-.8l2.4 2.4c.3.3.6.4 1.1.4.4 0 .8-.2 1.1-.4.3-.3.4-.7.4-1.1 0-.4-.2-.8-.4-1.1l-2.4-2.4c.6-.9.8-2 .8-3.1 0-.8-.2-1.6-.5-2.4-.3-.7-.8-1.4-1.3-1.9s-1.2-1-1.9-1.3c-.8-.4-1.6-.5-2.4-.5zm0 9.1c-.8 0-1.6-.3-2.2-.9-.6-.6-.9-1.3-.9-2.2 0-.8.3-1.6.9-2.2.6-.6 1.3-.9 2.2-.9.8 0 1.6.3 2.2.9.6.6.9 1.3.9 2.2s-.3 1.6-.9 2.2c-.6.6-1.3.9-2.2.9z"/>
<g fill="#375273">
<path d="M12.9 14.8c1.5 0 2.7-.5 3.8-1.6 1-1 1.6-2.3 1.6-3.8s-.5-2.7-1.6-3.8c-1-1-2.3-1.6-3.8-1.6s-2.7.5-3.8 1.6-1.6 2.3-1.6 3.8.5 2.7 1.6 3.8 2.3 1.6 3.8 1.6z"/>
<path d="M14.9 24c-.3-.8-.5-1.5-.5-2.4 0-.8.2-1.6.5-2.4.3-.7.8-1.4 1.3-1.9s1.2-1 1.9-1.3c.8-.3 1.5-.5 2.4-.5h.7c-.2-.3-.4-.5-.6-.7-.3-.3-.7-.6-1.2-.7-.5-.2-1-.3-1.6-.3-.1 0-.3.1-.6.3-.3.2-.7.4-1 .7-.4.2-.9.5-1.5.7-.6.2-1.2.3-1.9.3s-1.2-.1-1.9-.3-1.1-.4-1.5-.7c-.4-.2-.7-.5-1-.7-.2-.1-.4-.2-.5-.2-.6 0-1.1.1-1.6.3s-.9.4-1.2.7-.6.7-.8 1.1c-.3.4-.5.9-.6 1.4-.1.5-.3 1-.4 1.5-.1.5-.2 1.1-.2 1.5v1.4c0 1.1.3 2 1 2.6.7.6 1.6 1 2.7 1h9c-.3-.4-.7-.8-.9-1.4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

6
qbittorrent/root/defaults/theme/private/icons/edit-find.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M27.6 25.8c0 .5-.2.9-.5 1.3-.4.4-.8.5-1.3.5s-.9-.2-1.3-.5l-4.8-4.8C18 23.5 16.2 24 14.1 24c-1.3 0-2.6-.3-3.8-.8s-2.2-1.2-3-2-1.6-2-2.1-3.2-.8-2.5-.8-3.8.3-2.6.8-3.8c.5-1.2 1.2-2.3 2.1-3.1s1.9-1.6 3.1-2.1 2.5-.8 3.8-.8 2.6.3 3.8.8c1.2.5 2.3 1.2 3.1 2.1s1.6 1.9 2.1 3.1c.5 1.2.8 2.5.8 3.8 0 2-.6 3.9-1.7 5.6l4.8 4.8c.3.3.5.7.5 1.2zm-9-7.2c1.2-1.2 1.8-2.7 1.8-4.4s-.6-3.2-1.8-4.4S15.9 8 14.2 8s-3.2.6-4.4 1.8C8.6 11 8 12.5 8 14.2s.6 3.2 1.8 4.4c1.2 1.2 2.7 1.8 4.4 1.8s3.2-.5 4.4-1.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 780 B

6
qbittorrent/root/defaults/theme/private/icons/edit-paste.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M28.5 17.8v9.4c0 .4-.1.7-.4.9s-.6.4-.9.4H13.8c-.4 0-.7-.1-.9-.4-.3-.3-.4-.6-.4-.9V25H4.8c-.4 0-.7-.1-.9-.4s-.4-.6-.4-1V4.8c0-.4.1-.7.4-.9.3-.3.6-.4.9-.4H20c.4 0 .7.1.9.4.3.3.4.6.4.9v4.6c.2.1.4.3.5.4l5.7 5.7c.3.3.5.6.7 1.1.2.4.3.8.3 1.2zM17.8 6.6v-.9c0-.1 0-.2-.1-.3-.1-.1-.2-.1-.3-.1H7.5c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3v.9c0 .1 0 .2.1.3.1.1.2.2.3.2h9.8c.1 0 .2 0 .3-.1.1-.1.2-.3.2-.4zm-3.6 20.1h12.5v-8.9h-5.8c-.4 0-.7-.1-.9-.4-.3-.3-.4-.6-.4-.9v-5.8h-5.4v16zM21.4 16h4.2l-4.2-4.2V16z"/>
</svg>

After

Width:  |  Height:  |  Size: 782 B

6
qbittorrent/root/defaults/theme/private/icons/edit-rename.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#FFF" d="M28.8 18.6c0 .1 0 .1 0 0 0 .2-.1.3-.2.5.1-.1.2-.3.2-.5"/>
<path fill="#733737" d="M26.4 17s.1 0 0 0c.1 0 0 0 0 0z"/>
<path fill="#FFF" d="M26.5 17s-.1 0 0 0c-.1 0 0 0 0 0"/>
<path fill="#375273" d="M23.2 19.2v2.7c0 1.1-.4 2.1-1.2 2.8s-1.7 1.2-2.8 1.2H7.6c-1.1 0-2.1-.4-2.8-1.2S3.6 23 3.6 21.9V10.2c0-1.1.4-2.1 1.2-2.8s1.7-1.2 2.8-1.2h11.6c.6 0 1.1.1 1.6.3.2.1.2.2.3.3 0 .2 0 .3-.1.4l-.7.7c-.2.2-.3.2-.5.1H7.6c-.6 0-1.2.2-1.6.6-.4.4-.7 1-.7 1.6v11.6c0 .6.2 1.1.7 1.6.4.4 1 .6 1.6.6h11.6c.6 0 1.1-.2 1.6-.7.4-.4.7-1 .7-1.6V20c0-.1 0-.2.1-.3l.9-.9c.1-.1.3-.2.5-.1.1.1.2.3.2.5zM21.9 8.9l4 4-9.4 9.4h-4v-4l9.4-9.4zm-6 12l1.6-1.6-2.1-2.1-1.6 1.6v.8h1.3v1.3h.8zm6.2-10c-.1-.1-.3-.1-.5 0l-4.9 4.9c-.2.2-.2.3 0 .5.1.1.3.1.5 0l4.9-4.9c.1-.2.1-.4 0-.5zm6-.2L26.8 12l-4-4L24 6.7c.3-.3.6-.4.9-.4.4 0 .7.1.9.4l2.1 2.1c.3.3.4.6.4.9s0 .7-.2 1z"/>
</svg>

After

Width:  |  Height:  |  Size: 928 B

3
qbittorrent/root/defaults/theme/private/icons/error.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="21.781" height="25.6" viewBox="0 0 21.782 25.6">
<path fill="red" d="M13.671 21.7c0 .2-.1.4-.3.6-.2.2-.4.3-.6.3h-3.5c-.2 0-.4-.1-.6-.3-.2-.2-.3-.4-.3-.6v-3.1c0-.2.1-.4.3-.6.2-.2.4-.3.6-.3h3.5c.2 0 .4.1.6.3.2.2.3.4.3.6zm0-7.1c0 .2-.1.4-.3.6-.2.2-.4.3-.6.3h-3.5c-.2 0-.5-.1-.6-.3-.2-.2-.3-.4-.3-.6l-.5-10.7c0-.2.1-.4.2-.6.2-.2.4-.3.6-.3h4.4c.2 0 .4.1.6.3.2.2.3.4.2.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 425 B

3
qbittorrent/root/defaults/theme/private/icons/expand.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15">
<path d="M7.5.9C3.9.9.9 3.9.9 7.5s3 6.6 6.6 6.6 6.6-3 6.6-6.6S11.1.9 7.5.9zm0 8.4h-4l4-4.3 4 4.3h-4z" fill="#375273"/>
</svg>

After

Width:  |  Height:  |  Size: 189 B

71
qbittorrent/root/defaults/theme/private/icons/fileicon.svg

@ -0,0 +1,71 @@
<svg xmlns="http://www.w3.org/2000/svg" height="110.001" width="93" version="1">
<defs>
<linearGradient id="a" y2="102.34" gradientUnits="userSpaceOnUse" x2="95.46" gradientTransform="translate(-.896 -.987) scale(1.012)" y1="93.621" x1="86.738">
<stop stop-color="#fcfcfc" offset="0"/>
<stop stop-color="#f8f8f8" offset=".523"/>
<stop stop-color="#f0efef" offset=".775"/>
<stop stop-color="#e3e1e1" offset=".901"/>
<stop stop-color="#cecbcb" offset="1"/>
</linearGradient>
<radialGradient id="k" gradientUnits="userSpaceOnUse" cy="110.25" cx="90.75" gradientTransform="translate(-27.836 -33.818) scale(1.3067)" r="18.75">
<stop stop-color="#fff" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<clipPath id="j">
<path d="M112 82.503c0 4.465-2.797 6.41-5.28 8.094-5.108 3.465-14.939 3.325-20.72 3.406-.08 5.781.166 15.505-3.299 20.613-1.684 2.482-5.29 5.387-8.2 5.387 2.317 0 4.742-1.335 7.583-4.085 9.142-8.849 17.367-16.135 25.673-25.298 1.92-2.116 4.24-3.64 4.24-8.117z" fill="url(#a)"/>
</clipPath>
<filter id="l" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation=".43"/>
</filter>
<linearGradient id="i" y2="102.07" gradientUnits="userSpaceOnUse" x2="95.182" gradientTransform="translate(-18.896 -9.987) scale(1.012)" y1="93.621" x1="86.738">
<stop stop-color="#fcfcfc" offset="0"/>
<stop stop-color="#f8f8f8" offset=".523"/>
<stop stop-color="#f0efef" offset=".723"/>
<stop stop-color="#e3e1e1" offset=".89"/>
<stop stop-color="#cecbcb" offset="1"/>
</linearGradient>
<clipPath id="e">
<path d="M17 8v112h57.5c1.675 0 3.914-.565 7-3.6 8.87-8.725 20.24-19.852 27.499-27.176 2.44-2.463 3-4.471 3-6.724V8z" fill="#fff"/>
</clipPath>
<filter id="h" width="1.225" y="-.121" x="-.113" height="1.241" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="2.386"/>
</filter>
<radialGradient id="g" fx="63.793" fy="47.275" gradientUnits="userSpaceOnUse" cy="64.004" cx="64" gradientTransform="matrix(1.6842 -.0843 .06886 1.3759 -66.197 -27.663)" r="47.5">
<stop stop-color="#fff" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1"/>
</radialGradient>
<filter id="f" width="1.957" y="-.513" x="-.479" height="2.026" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="10.141"/>
</filter>
<linearGradient id="d" y2="116.4" gradientUnits="userSpaceOnUse" x2="72" x1="72" gradientTransform="translate(-18 -9)">
<stop stop-color="#eeecec" offset="0"/>
<stop stop-color="#f4f4f4" offset=".4"/>
<stop stop-color="#f6f5f5" offset="1"/>
</linearGradient>
<filter id="c" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="1.036"/>
</filter>
<filter id="b" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="1.501"/>
</filter>
<linearGradient id="m" y2="786.48" gradientUnits="userSpaceOnUse" x2="782.06" x1="348.28">
<stop stop-color="#72B4F5" offset="0"/>
<stop stop-color="#356EBF" offset="1"/>
</linearGradient>
</defs>
<path d="M-1-.5v112h58.188c2.116 0 4.529-1.772 7-4.25.712-.714 1.44-1.394 2.156-2.094.416-.406.832-.814 1.25-1.219 7.774-7.41 14.983-14.023 22.22-22 .42-.42.811-.81 1.155-1.187 1.465-1.498 2.762-2.838 2.994-5.863l.04-.732V-.5z" opacity=".262" filter="url(#b)"/>
<path d="M-1-1v112.2h57.746c4.168 0 7.729-4.856 20.854-17.1 7.486-6.984 10.44-10.889 13.15-13.6 1.74-1.743 3.25-3.037 3.25-7.2V-1z" fill-opacity=".701" filter="url(#c)"/>
<path d="M-1-1v112h57.5c1.675 0 3.914-.565 7-3.6 8.87-8.725 20.24-19.852 27.499-27.176 2.44-2.463 3-4.471 3-6.724V-1z" fill="#fff"/>
<path d="M.5 0C.16 0 0 .235 0 .5v107.97c0 .822.68 1.5 1.5 1.5h53.688c.053 0 .81.023 1.5.031 1.778-.04 3.132-.753 4.356-1.593 1.052-.291 20.65-19.62 29.771-28.809 1.362-1.373 2.186-3.948 2.186-4.896V.5c0-.322-.16-.5-.5-.5z" fill="url(#d)"/>
<path d="M114.4 82.503c0 4.465-4.997 6.61-7.48 8.294-5.108 3.465-14.739 3.525-20.52 3.606-.08 5.781-.034 15.305-3.499 20.413-1.684 2.482-5.79 8.687-8.7 8.687-2.092 1.534 3.488 8.21 6.734 5.32 9.502-8.461 35.132-30.023 43.351-39.263 2.04-2.294-4.905-9.845-9.885-7.057z" clip-path="url(#e)" transform="translate(-18 -9)" opacity=".277" filter="url(#f)"/>
<path d="M.5 0C.16 0 0 .235 0 .5v107.97c0 .822.68 1.5 1.5 1.5l54.5.031c.053 0 3.274-.008 3.963 0 6.542-4.503 22.638-21.953 31.584-30.955 1.476-1.656.457-.37 1.453-1.607V.5c0-.323-.16-.5-.5-.5z" opacity=".847" fill="url(#g)"/>
<path d="M113.9 82.503c0 4.465-4.497 6.61-6.98 8.294-5.108 3.465-14.739 3.525-20.52 3.606-.08 5.781.766 15.305-2.699 20.413-1.684 2.482-5.79 7.987-8.7 7.987-2.092 1.534 3.488 11.21 6.734 8.32 9.502-8.461 46-30.201 54.218-39.442 2.04-2.294-17.072-11.966-22.053-9.179z" clip-path="url(#e)" transform="translate(-18 -9)" opacity=".401" filter="url(#h)"/>
<path d="M94 73.503c0 4.465-2.797 6.41-5.28 8.094-5.108 3.465-14.939 3.325-20.72 3.406-.08 5.781.166 15.505-3.299 20.613-1.684 2.482-5.29 5.387-8.2 5.387 2.317 0 4.742-1.335 7.583-4.085 9.142-8.849 17.367-16.135 25.673-25.298 1.92-2.116 4.24-3.64 4.24-8.117z" fill="url(#i)"/>
<path d="M94.02 74.212c-.316 3.9-3.523 5.903-5.85 7.481-5.11 3.466-15.339 2.326-21.12 2.407-.081 5.781.853 16.316-2.612 21.425-1.474 2.172-4.1 4.66-6.763 5.25 1.98-.362 3.885-1.661 6.269-3.969.339-.388.574-.679 1.106-1.5 3.465-5.108 2.924-14.466 3.005-20.247 5.78-.08 15.718.212 20.827-3.253.465-.315 1.594-1.187 2.006-1.6 1.536-1.536 2.902-2.613 3.131-5.994zM57.675 110.78c-.158.035-.313.041-.469.063.157-.017.31-.034.469-.063z" fill="#fff"/>
<path d="M117.31 81.861L72.639 125.35" clip-path="url(#j)" transform="translate(-18 -9)" fill="none" stroke="url(#k)" stroke-width="1.2" filter="url(#l)"/>
<g transform="translate(13.396 22.396) scale(.06368)">
<circle cy="512" cx="512" r="496" fill="url(#m)" stroke="#daefff" stroke-width="32"/>
<path d="M712.9 332.4q66.657 0 103.38 45.671 37.03 45.364 37.03 128.68 0 83.32-37.34 129.61-37.03 45.98-103.07 45.98-33.02 0-60.484-12.035-27.156-12.344-45.672-37.649h-3.703l-10.8 43.512h-36.72v-480.16h51.227v116.65q0 39.191-2.469 70.359h2.47q35.796-50.61 106.16-50.61zm-7.406 42.894q-52.46 0-75.605 30.242-23.145 29.934-23.145 101.22 0 71.285 23.762 102.14 23.761 30.55 76.222 30.55 47.215 0 70.36-34.254 23.144-34.562 23.144-99.058 0-66.04-23.144-98.442-23.145-32.402-71.594-32.402z" fill="#fff"/>
<path d="M317.27 639.45q51.227 0 74.68-27.466 23.453-27.464 24.996-92.578v-11.418q0-70.976-24.07-102.14-24.07-31.168-76.223-31.168-45.055 0-69.125 35.18-23.762 34.87-23.762 98.75 0 63.879 23.454 97.515 23.761 33.328 70.05 33.328zm-7.715 42.894q-65.421 0-102.14-45.98-36.723-45.981-36.723-128.38 0-83.011 37.032-129.61 37.03-46.598 103.07-46.598 69.433 0 106.77 52.461h2.778l7.406-46.289h40.426v490.06h-51.24v-144.73q0-30.86 3.395-52.461h-4.012q-35.488 51.535-106.77 51.535z" fill="#c8e8ff"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

3
qbittorrent/root/defaults/theme/private/icons/filteractive.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.781139 25.6" width="21.781" height="25.6">
<path d="M21.5 3.7l-7.6 7.5v11.4c0 .5-.2.7-.6.9-.1.1-.3.1-.4.1-.3 0-.6-.1-.7-.3l-4-4c-.2-.2-.3-.5-.3-.7v-7.5L.4 3.7C0 3.3-.1 2.9.1 2.6.3 2.2.6 2 1 2h19.7c.5 0 .7.3.9.6.3.4.2.7-.1 1.1z" fill="#427337"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

3
qbittorrent/root/defaults/theme/private/icons/filterall.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.781139 25.6" width="21.781" height="25.6">
<path d="M21.5 3.7l-7.6 7.5v11.4c0 .5-.2.7-.6.9-.1.1-.3.1-.4.1-.3 0-.6-.1-.7-.3l-4-4c-.2-.2-.3-.5-.3-.7v-7.5L.4 3.7C0 3.3-.1 2.9.1 2.6.3 2.2.6 2 1 2h19.7c.5 0 .7.3.9.6.3.4.2.7-.1 1.1z" fill="#d1954e"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

3
qbittorrent/root/defaults/theme/private/icons/filterinactive.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.781139 25.6" width="21.781" height="25.6">
<path d="M21.5 3.7l-7.6 7.5v11.4c0 .5-.2.7-.6.9-.1.1-.3.1-.4.1-.3 0-.6-.1-.7-.3l-4-4c-.2-.2-.3-.5-.3-.7v-7.5L.4 3.7C0 3.3-.1 2.9.1 2.6.3 2.2.6 2 1 2h19.7c.5 0 .7.3.9.6.3.4.2.7-.1 1.1z" fill="#733737"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

3
qbittorrent/root/defaults/theme/private/icons/filterstalled.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21.781139 25.6" width="21.781" height="25.6">
<path d="M21.5 3.7l-7.6 7.5v11.4c0 .5-.2.7-.6.9-.1.1-.3.1-.4.1-.3 0-.6-.1-.7-.3l-4-4c-.2-.2-.3-.5-.3-.7v-7.5L.4 3.7C0 3.3-.1 2.9.1 2.6.3 2.2.6 2 1 2h19.7c.5 0 .7.3.9.6.3.4.2.7-.1 1.1z" fill="#686868"/>
</svg>

After

Width:  |  Height:  |  Size: 310 B

3
qbittorrent/root/defaults/theme/private/icons/firewalled.svg

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<path fill="#D1954E" d="M25.8 27.2v.9c0 .1 0 .2-.1.3-.1.1-.2.1-.3.1H6.6c-.1 0-.2 0-.3-.1-.1-.1-.1-.2-.1-.3v-.9c0-.1 0-.2.1-.3s.2-.1.3-.1h18.8c.1 0 .2 0 .3.1.1 0 .1.1.1.3zm-3.5-14.8c0 .7-.1 1.4-.3 2s-.6 1.2-1 1.6l-1.2 1.2c-.4.4-.9.7-1.3 1.1-.4.3-.9.7-1.2 1-.4.3-.7.7-.9 1.1-.2.4-.3.9-.3 1.3 0 .9.3 1.9.9 3.1h-.1c-.8-.4-1.6-.8-2.2-1.2s-1.3-.9-1.9-1.4-1.2-1.1-1.6-1.7c-.4-.6-.8-1.3-1-2.1-.3-.8-.4-1.7-.4-2.6 0-.7.1-1.4.3-2s.5-1.1.9-1.6l1.2-1.2c.4-.4.9-.7 1.3-1.1.4-.3.9-.7 1.2-1 .4-.3.7-.7.9-1.1.3-.3.4-.7.4-1.2 0-.9-.3-1.9-.9-3.1.8.4 1.6.8 2.2 1.2.7.3 1.3.8 2 1.4s1.2 1.1 1.6 1.7c.4.6.8 1.3 1 2.1s.4 1.6.4 2.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 682 B

1
qbittorrent/root/defaults/theme/private/icons/flags/ad.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 32 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/ae.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v160h-640z" fill="#00732f"/><path d="m0 160h640v160h-640z" fill="#fff"/><path d="m0 320h640v160h-640z"/><path d="m0 0h220v480h-220z" fill="#f00"/></svg>

After

Width:  |  Height:  |  Size: 231 B

1
qbittorrent/root/defaults/theme/private/icons/flags/af.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/ag.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m-79.7 0h682.7v512h-682.7z"/></clipPath><g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(.9375 0 0 .9375 74.7 0)"><path d="m-120 0h763.3v511.5h-763.3z" fill="#fff"/><path d="m-118.3.6h760.9v216.1h-761z"/><path d="m21.3 203.2h505v113.8h-505z" fill="#0061ff"/><path d="m642.8 1.8v510.2h-380.8l380.8-510.3zm-761.5 0v510.2h380.7l-380.7-510.3z" fill="#e20000"/><path d="m440.4 203.3-76.4-19.3 64.9-49-79.7 11.4 41-69.5-70.7 41 12.8-80.9-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2-70.8-43.3 41 69.5-77.4-12.5 63.8 47.8-79.9 20.5h354.3z" fill="#ffd600"/></g></svg>

After

Width:  |  Height:  |  Size: 703 B

1
qbittorrent/root/defaults/theme/private/icons/flags/ai.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 34 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/al.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m0 0h640v480h-640z" fill="#e41e20"/><path id="a" d="m272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8 1.2-1.9 2.7-3 3.9-3.1 1.7-.3 3.5.3 5.4 1.4a21.6 21.6 0 0 1 4.8 4.1c-4.6 1.1-8.2.4-11.8-.2a16.5 16.5 0 0 1 -5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1s7.6-.5 9.8 0c-1.3.8-2.8 2.3-5.8 2.8-3 .6-7.5-1.8-10.3-2.4.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37.3 37.3 0 0 1 10.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a273.7 273.7 0 0 0 -32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50.2 50.2 0 0 1 -36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18 7.5 4.1 17 8.2 26.5 8 5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a53.9 53.9 0 0 1 -21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3s17.8-10.2 24.1-18.5c5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 0 0 -1.2 9.3c.8-3 2.3-5.5 4.9-7 8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8 1.6 5 5.3 6.9 11.3 5.6 7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8c1.5.9 2.9 1.1 3.8 0 6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11-1.7 3.5-3.6 5.6-5.7 8.3-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214-19.2-33.7c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4s3-.8 4.5-1c-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30.2 30.2 0 0 0 -13.5-10.2c4.2-3 5-3.2 9.2-6.7a86.3 86.3 0 0 1 -19.5-3.8 37.4 37.4 0 0 0 -12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9s-2.3 2.9-6.1 2.9-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8z"/><use height="100%" transform="matrix(-1 0 0 1 640 0)" width="100%" xlink:href="#a"/></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/am.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v160h-640z" fill="#f00"/><path d="m0 160h640v160h-640z" fill="#00f"/><path d="m0 320h640v160h-640z" fill="#ffa500"/></svg>

After

Width:  |  Height:  |  Size: 201 B

1
qbittorrent/root/defaults/theme/private/icons/flags/ao.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><g stroke-width="1pt"><path d="m0 0h640v243.6h-640z" fill="#f00"/><path d="m0 236.4h640v243.6h-640z"/></g><path d="m228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150z" fill="#ffec00"/><path d="m170 330.8 21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9 22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1 17.1-16.9 16.9 17-17 16.9zm-26.2-39.8 22.4 8.4-8.5 22.4-22.4-8.4zm60.9 146.5 22.3 8.9-9 22.2-22.2-8.9zm-69.9 70 22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z" fill="#ffec00"/><path d="m336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0 0 10.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z" fill="#fe0"/><path d="m365.3 372.8a4.3 4.3 0 1 1 -8.7 0 4.3 4.3 0 0 1 8.6 0zm-21.4-13.6a4.3 4.3 0 1 1 -8.7 0 4.3 4.3 0 0 1 8.7 0zm10.9 7a4.3 4.3 0 1 1 -8.7 0 4.3 4.3 0 0 1 8.7 0z"/><path d="m324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5a5288 5288 0 0 1 131.7 85.6c-3.4 5.8-6 12.3-9.5 18z" fill="#fe0"/><path d="m297.2 305.5 17.8 16-16 17.8-17.8-16z" fill="#ffec00"/></g><path d="m331.5 348.8-125-75.5m109.6 58.1-42.1-27.3m18.2 42.7-42.9-24.8" fill="none" stroke="#000" stroke-width="3"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/aq.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.9 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/ar.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m0 0h640v480h-640z" fill="#74acdf"/><path d="m0 160h640v160h-640z" fill="#fff"/><g id="a" transform="matrix(.96 0 0 .96 -64 0)"><path id="b" d="m396.8 251.3 28.5 62s.5 1.2 1.3.9c.8-.4.3-1.5.3-1.5l-23.7-64m-.7 24.1c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.3 5.2-.3 5.7s3-2.1 2.4-6.8c-.7-4.6-4.2-6-3.4-16.3s-4.2-12.7-3-22" fill="#f6b40e" stroke="#85340a" stroke-width="1.1"/><use height="100%" transform="matrix(.92387953 .38268343 -.38268343 .92387953 126.119045 -134.043256)" width="100%" xlink:href="#b"/><use height="100%" transform="matrix(.70710678 .70710678 -.70710678 .70710678 293.933983 -209.619408)" width="100%" xlink:href="#b"/><use height="100%" transform="matrix(.38268343 .92387953 -.92387953 .38268343 477.89651 -215.222671)" width="100%" xlink:href="#b"/><path id="c" d="m404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8 19.5 42.6-16.3-43.9" fill="#85340a"/><use height="100%" transform="matrix(.92387953 .38268343 -.38268343 .92387953 126.119045 -134.043256)" width="100%" xlink:href="#c"/><use height="100%" transform="matrix(.70710678 .70710678 -.70710678 .70710678 293.933983 -209.619408)" width="100%" xlink:href="#c"/><use height="100%" transform="matrix(.38268343 .92387953 -.92387953 .38268343 477.89651 -215.222671)" width="100%" xlink:href="#c"/></g><use height="100%" transform="matrix(0 1 -1 0 560 -80)" width="100%" xlink:href="#a"/><use height="100%" transform="matrix(-1 0 0 -1 640 480)" width="100%" xlink:href="#a"/><use height="100%" transform="matrix(0 -1 1 0 80 560)" width="100%" xlink:href="#a"/><circle cx="320" cy="240" fill="#f6b40e" r="26.7" stroke="#85340a" stroke-width="1.4"/><path id="d" d="m329.1 234.3c-1.8 0-3.6.8-4.6 2.4 2 1.9 6.6 2 9.7-.2a7 7 0 0 0 -5.1-2.2zm0 .4c1.7 0 3.4.8 3.6 1.6-2 2.3-5.3 2-7.4.4a4.3 4.3 0 0 1 3.8-2z" fill="#843511"/><use height="100%" transform="matrix(-1 0 0 1 640.2 0)" width="100%" xlink:href="#f"/><use height="100%" transform="matrix(-1 0 0 1 640.2 0)" width="100%" xlink:href="#e"/><use height="100%" transform="translate(18.1)" width="100%" xlink:href="#g"/><use height="100%" transform="matrix(-1 0 0 1 640.2 0)" width="100%" xlink:href="#h"/><path d="m316 243.7a1.9 1.9 0 1 0 1.8 2.9 4 4 0 0 0 2.2.6h.2a3.9 3.9 0 0 0 2.3-.6 1.9 1.9 0 1 0 1.8-3c.5.3.8.7.8 1.3s-.5 1.2-1.2 1.2a1.2 1.2 0 0 1 -1.2-1.2 3 3 0 0 1 -2.6 1.7 3 3 0 0 1 -2.5-1.7 1.2 1.2 0 0 1 -1.3 1.2c-.6 0-1.2-.6-1.2-1.2s.3-1 .8-1.2zm2 5.5c-2.1 0-3 1.8-4.8 3 1-.4 1.9-1.2 3.3-2s2.7.2 3.5.2 2-1 3.5-.2c1.4.8 2.3 1.6 3.3 2-1.9-1.2-2.7-3-4.8-3a5.5 5.5 0 0 0 -2 .6 5.5 5.5 0 0 0 -2-.7z" fill="#85340a"/><path d="m317.2 251.6c-.8 0-1.8.2-3.4.6 3.7-.8 4.5.5 6.2.5 1.6 0 2.4-1.3 6.1-.5-4-1.2-4.9-.4-6.1-.4-.8 0-1.4-.3-2.8-.2z" fill="#85340a"/><path d="m314 252.2h-.8c4.3.5 2.3 3 6.8 3s2.5-2.5 6.8-3c-4.5-.4-3.1 2.3-6.8 2.3-3.5 0-2.4-2.3-6-2.3zm9.7 6.7a3.7 3.7 0 0 0 -7.4 0 3.8 3.8 0 0 1 7.4 0z" fill="#85340a"/><path id="e" d="m303.4 234.3c4.7-4.1 10.7-4.8 14-1.7a8 8 0 0 1 1.5 3.5c.4 2.3-.3 4.8-2.1 7.4l.8.4a14.6 14.6 0 0 0 1.6-9.4 13.3 13.3 0 0 0 -.6-2.3c-4.5-3.7-10.7-4-15.2 2z" fill="#85340a"/><path id="f" d="m310.8 233c2.7 0 3.3.7 4.5 1.7s1.9.8 2 1c.3.2 0 .8-.3.6-.5-.2-1.3-.6-2.5-1.6s-2.5-1-3.7-1c-3.7 0-5.7 3-6.2 2.8-.3-.2 2.1-3.5 6.2-3.5z" fill="#85340a"/><use height="100%" transform="translate(-18.4)" width="100%" xlink:href="#d"/><circle id="g" cx="310.9" cy="236.3" fill="#85340a" r="1.9"/><path id="h" d="m305.9 237.5c3.5 2.7 7 2.5 9 1.3 2-1.3 2-1.7 1.6-1.7s-.8.4-2.4 1.3c-1.7.8-4.1.8-8.2-.9z" fill="#85340a"/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/as.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/at.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="m640 480h-640v-480h640z" fill="#fff"/><path d="m640 480h-640v-160h640zm0-319.9h-640v-160h640z" fill="#ed2939"/></g></svg>

After

Width:  |  Height:  |  Size: 215 B

1
qbittorrent/root/defaults/theme/private/icons/flags/au.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v480h-640z" fill="#006" stroke-width="1.3"/><path d="m299.8 392.5-43.7 3.8 6 43.4-30.1-31.7-30.1 31.7 6-43.4-43.7-3.8 37.7-22.3-24.3-36.5 41 15.5 13.4-41.7 13.5 41.7 41-15.5-24.3 36.5m224.4 62.3-10.6-15.8 17.8 6.7 5.8-18.1 5.8 18.1 17.8-6.7-10.5 15.8 16.4 9.7-19 1.7 2.6 18.9-13-13.9-13.2 13.9 2.6-18.9-19-1.6m16.4-291.9-10.5-15.8 17.8 6.7 5.8-18.1 5.8 18.1 17.8-6.7-10.5 15.8 16.4 9.8-19 1.6 2.6 18.9-13-13.8-13.2 13.7 2.6-18.8-19-1.6m-89.3 104.8-10.5-15.8 17.8 6.7 5.8-18.1 5.9 18.1 17.8-6.7-10.6 15.8 16.4 9.7-19 1.7 2.7 18.9-13.2-13.9-13 13.9 2.5-18.9-19-1.6m216.3-38-10.7-15.8 17.8 6.7 5.8-18.1 5.9 18.1 17.8-6.7-10.5 15.8 16.3 9.7-19 1.7 2.6 18.8-13-13.8-13.2 13.8 2.6-18.8-19-1.7m-22.1 73.5-10.3 6.5 2.9-11.9-9.3-7.8 12.1-1 4.6-11.2 4.7 11.3 12.1.9-9.3 7.8 2.9 11.9" fill="#fff" fill-rule="evenodd" stroke-width="1.3"/><g stroke-width=".5"><path d="m0 0h320v240h-320z" fill="#006"/><path d="m37.5 0 122 90.5 121.5-90.5h39v31l-120 89.5 120 89v30.5h-40l-120-89.5-119.5 89.5h-40.5v-30l119.5-89-119.5-89v-32z" fill="#fff"/><path d="m212 140.5 108 79.5v20l-135.5-99.5zm-92 10 3 17.5-96 72h-27zm200-150.5v1.5l-124.5 94 1-22 98.5-73.5zm-320 0 119.5 88h-30l-89.5-67z" fill="#c8102e"/><path d="m120.5 0v240h80v-240zm-120.5 80v80h320v-80z" fill="#fff"/><path d="m0 96.5v48h320v-48zm136.5-96.5v240h48v-240z" fill="#c8102e"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/aw.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.4 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/ax.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m106.3 0h1133.3v850h-1133.3z"/></clipPath><g clip-path="url(#a)" transform="matrix(.56472 0 0 .56482 -60 -.1)"><path d="m0 0h1300v850h-1300z" fill="#0053a5"/><g fill="#ffce00"><path d="m400 0h250v850h-250z"/><path d="m0 300h1300v250h-1300z"/></g><g fill="#d21034"><path d="m475 0h100v850h-100z"/><path d="m0 375h1300v100h-1300z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 475 B

1
qbittorrent/root/defaults/theme/private/icons/flags/az.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m.1 0h640v480h-640z" fill="#3f9c35"/><path d="m.1 0h640v320h-640z" fill="#ed2939"/><path d="m.1 0h640v160h-640z" fill="#00b9e4"/><circle cx="304" cy="240" fill="#fff" r="72"/><circle cx="320" cy="240" fill="#ed2939" r="60"/><path d="m384 200 7.7 21.5 20.6-9.8-9.8 20.7 21.5 7.6-21.5 7.7 9.8 20.6-20.6-9.8-7.7 21.5-7.7-21.5-20.6 9.8 9.8-20.6-21.5-7.7 21.5-7.7-9.8-20.6 20.6 9.8z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 469 B

1
qbittorrent/root/defaults/theme/private/icons/flags/ba.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m-85.3 0h682.6v512h-682.6z"/></clipPath><g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(.9375 0 0 .9375 80 0)"><path d="m-85.3 0h682.6v512h-682.6z" fill="#009"/><path d="m56.5 0 511 512.3v-512z" fill="#fc0"/><path d="m439.9 481.5-27.9-20.3-28.6 20.2 10.8-33.2-28.2-20.5h35l10.8-33.2 10.7 33.3h35l-28 20.7zm81.3 10.4-35-.1-10.7-33.3-10.8 33.2h-35l28.2 20.5-10.8 33.2 28.6-20.2 28 20.3-10.5-33zm-155.6-107.2 28-20.7-35-.1-10.7-33.2-10.8 33.2-35-.1 28.2 20.5-10.8 33.3 28.6-20.3 28 20.4zm-64.3-64.5 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.2 20.5-10.8 33.2 28.6-20.2 27.9 20.3zm-63.7-63.6 28-20.7h-35l-10.6-33.4-10.8 33.2h-35l28.2 20.4-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.4-64.3 28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.3 20.5-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.6-63.9 27.9-20.7h-35l-10.6-33.4-10.9 33.3h-35l28.4 20.4-10.9 33.2 28.6-20.2 27.8 20.4zm-64-64 27.9-20.7h-35l-10.6-33.4-10.9 33.3h-35l28.4 20.4-11 33.3 28.7-20.3 27.8 20.4zm-64-64 27.8-20.7h-35l-10.7-33.3-10.7 33.2h-35l28.3 20.4-10.8 33.2 28.6-20.2 27.8 20.4-10.3-33z" fill="#fff"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bb.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="m0 0h640v480h-640z" fill="#00267f"/><path d="m213.3 0h213.4v480h-213.4z" fill="#ffc726"/><path id="a" d="m319.8 135.5c-7 19-14 38.6-29.2 53.7 4.7-1.6 13-3 18.2-2.8v79.5l-22.4 3.3c-.8 0-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12 .8 0 9.5 3.6 8.2 1.9a85 85 0 0 0 -46.4-24c-1.5-.3-2.4.5-1 2.2 22.4 34.6 41.3 75.5 41.1 124 8.8 0 30-5.2 38.7-5.2v56.1h11.2l2.5-156.7z"/><use height="100%" transform="matrix(-1 0 0 1 639.5 0)" width="100%" xlink:href="#a"/></svg>

After

Width:  |  Height:  |  Size: 580 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bd.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v480h-640z" fill="#006a4e"/><circle cx="280" cy="240" fill="#f42a41" r="160"/></svg>

After

Width:  |  Height:  |  Size: 163 B

1
qbittorrent/root/defaults/theme/private/icons/flags/be.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd" stroke-width="1pt"><path d="m0 0h213.3v480h-213.3z"/><path d="m213.3 0h213.4v480h-213.4z" fill="#ffd90c"/><path d="m426.7 0h213.3v480h-213.3z" fill="#f31830"/></g></svg>

After

Width:  |  Height:  |  Size: 254 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bf.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="m640 479.6h-639.6v-479.6h639.6z" fill="#de0000"/><path d="m639.6 480h-639.6v-239.8h639.6z" fill="#35a100"/><path d="m254.6 276.2-106-72.4h131l40.4-117.2 40.4 117.4 131-.1-106 72.4 40.5 117.3-106-72.6-105.9 72.4" fill="#fff300"/></g></svg>

After

Width:  |  Height:  |  Size: 332 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bg.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd" stroke-width="1pt"><path d="m0 320h640v160h-640z" fill="#d62612"/><path d="m0 0h640v160h-640z" fill="#fff"/><path d="m0 160h640v160h-640z" fill="#00966e"/></g></svg>

After

Width:  |  Height:  |  Size: 250 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bh.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v480h-640" fill="#fff" stroke-width="4.8"/><path d="m640 0h-544l110.7 48-110.7 48 110.7 48-110.7 48 110.7 48-110.7 48 110.7 48-110.7 48 110.7 48-110.7 48h544" fill="#ce1126" stroke-width="5.1"/></svg>

After

Width:  |  Height:  |  Size: 279 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bi.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m-90.5 0h682.5v512h-682.5z"/></clipPath><g clip-path="url(#a)" fill-rule="evenodd" transform="matrix(.9375 0 0 .9375 84.9 0)"><path d="m-178 0 428.8 256-428.8 256zm857.6 0-428.8 256 428.8 256z" fill="#00cf00"/><path d="m-178 0 428.8 256 428.8-256zm0 512 428.8-256 428.8 256z" fill="#f00"/><g fill="#fff"><path d="m679.6 0h-79.9l-777.7 464.3v47.7h79.9l777.7-464.3z"/><path d="m398.9 256a148 148 0 1 1 -296.1 0 148 148 0 0 1 296 0z"/><path d="m-178 0v47.7l777.7 464.3h79.9v-47.7l-777.7-464.3z"/></g><path d="m280 200.2-19.3.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm-64.6 111.6-19.2.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm130.6 0-19.2.3-10 16.4-10-16.4-19.1-.4 9.3-16.9-9.3-16.8 19.2-.4 10-16.4 10 16.5 19.2.4-9.4 16.8z" fill="#f00" stroke="#00de00" stroke-width="3.9"/></g></svg>

After

Width:  |  Height:  |  Size: 1002 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bj.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m67.6-154h666v666h-666z"/></clipPath><g clip-path="url(#a)" transform="matrix(.961 0 0 .7207 -65 111)"><g fill-rule="evenodd" stroke-width="1pt"><path d="m0-154h333v666h-333z" fill="#319400"/><path d="m333-154h666v333h-666z" fill="#ffd600"/><path d="m333 179h666v333h-666z" fill="#de2110"/></g></g></svg>

After

Width:  |  Height:  |  Size: 435 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bl.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd" stroke-width="1pt"><path d="m0 0h640v480h-640z" fill="#fff"/><path d="m0 0h213.3v480h-213.3z" fill="#00267f"/><path d="m426.7 0h213.3v480h-213.3z" fill="#f31830"/></g></svg>

After

Width:  |  Height:  |  Size: 258 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bm.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bn.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bo.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 102 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bq.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h640v480h-640z" fill="#21468b"/><path d="m0 0h640v320h-640z" fill="#fff"/><path d="m0 0h640v160h-640z" fill="#ae1c28"/></svg>

After

Width:  |  Height:  |  Size: 200 B

1
qbittorrent/root/defaults/theme/private/icons/flags/br.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bs.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m-12 0h640v480h-640z"/></clipPath><g clip-path="url(#a)" fill-rule="evenodd" transform="translate(12)"><path d="m968.5 480h-979v-478.2h979z" fill="#fff"/><path d="m968.5 344.5h-979v-201.2h979z" fill="#ffe900"/><path d="m968.5 480h-979v-159.4h979zm0-318.7h-979v-159.3h979z" fill="#08ced6"/><path d="m-11 0c2.3 0 391.8 236.8 391.8 236.8l-392.8 242.4 1.1-479.2z"/></g></svg>

After

Width:  |  Height:  |  Size: 502 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bt.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bv.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m0 0h640v480h-640z"/></clipPath><g clip-path="url(#a)" fill-rule="evenodd" stroke-width="1pt"><path d="m-28 0h699.7v512h-699.7z" fill="#fff"/><path d="m-53-77.8h218.7v276.2h-218.7zm342.4 77.2h381v199h-381zm-317 320.6h190.4v190.3h-190.4zm319.6 2.1h378.3v188.2h-378.3z" fill="#d72828"/><g fill="#003897"><path d="m196.7-25.4h64.3v535.7h-64.5z"/><path d="m-27.6 224.8h698v63.5h-698z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 527 B

1
qbittorrent/root/defaults/theme/private/icons/flags/bw.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="m0 0h640v480h-640z" fill="#00cbff"/><path d="m0 160h640v160h-640z" fill="#fff"/><path d="m0 186h640v108h-640z"/></g></svg>

After

Width:  |  Height:  |  Size: 216 B

1
qbittorrent/root/defaults/theme/private/icons/flags/by.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.2 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/bz.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 45 KiB

1
qbittorrent/root/defaults/theme/private/icons/flags/ca.svg

@ -0,0 +1 @@
<svg viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg"><g transform="matrix(.9375 0 0 .9375 74.1 0)"><path d="m81.1 0h362.3v512h-362.3z" fill="#fff"/><path d="m-100 0h181.1v512h-181.1zm543.4 0h181.1v512h-181zm-308 247.4-14.2 4.8 65.5 57.5c5 14.7-1.7 19-6 26.8l71-9-1.7 71.5 14.8-.4-3.3-71 71.2 8.5c-4.4-9.3-8.3-14.2-4.3-29l65.4-54.5-11.4-4.2c-9.4-7.2 4-34.7 6-52.1 0 0-38.1 13.1-40.6 6.2l-9.8-18.7-34.7 38.2c-3.8.9-5.4-.6-6.3-3.8l16-79.8-25.4 14.3c-2.1 1-4.2.2-5.6-2.3l-24.5-49-25.2 50.9c-1.9 1.8-3.8 2-5.4.8l-24.2-13.6 14.6 79.1c-1.2 3.2-4 4-7.2 2.3l-33.3-37.7c-4.3 7-7.2 18.3-13 20.9-5.7 2.4-25-4.8-37.9-7.6 4.4 15.9 18.2 42.3 9.5 51z" fill="#d52b1e"/></g></svg>

After

Width:  |  Height:  |  Size: 671 B

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save