WebUI: Add missing icons

This adds missing icons to WebUI (in tabs, buttons, etc.).

PR #21162.
This commit is contained in:
skomerko 2024-08-17 07:38:44 +02:00 committed by GitHub
parent efdc4af448
commit e069fbc37f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
31 changed files with 217 additions and 64 deletions

View file

@ -120,6 +120,10 @@ body {
color: var(--color-text-white);
}
#desktopNavbar a:hover img {
filter: var(--color-icon-hover);
}
#desktopNavbar ul li a.arrow-right,
#desktopNavbar ul li a:hover.arrow-right {
background-image: url("../images/arrow-right.gif");

View file

@ -36,14 +36,21 @@ Required by:
float: left;
}
.tab-menu .selected img,
.tab-menu li:hover img {
filter: var(--color-icon-hover);
}
.tab-menu li a {
align-items: center;
background-color: var(--color-background-default);
border-radius: 5px 5px 0 0;
color: var(--color-text-default);
display: block;
display: flex;
font-weight: normal;
margin-left: 8px;
padding: 5px 16px;
gap: 5px;
margin-left: 6px;
padding: 5px 8px;
text-align: center;
}
@ -55,5 +62,4 @@ Required by:
.tab-menu li.selected a {
background-color: var(--color-background-blue);
color: var(--color-text-white);
font-weight: bold;
}

View file

@ -54,6 +54,7 @@ Required by:
}
.mochaTitlebar h3 {
background-size: 16px !important; /* override mocha titlebar logo inline style */
font-size: 12px;
font-weight: bold;
line-height: 15px;

View file

@ -52,6 +52,11 @@ tr.dynamicTableHeader {
white-space: nowrap;
}
.dynamicTable tr.selected img,
.dynamicTable tr:hover img {
filter: var(--color-icon-hover);
}
.dynamicTable td {
padding: 4px 2px;
white-space: nowrap;

View file

@ -16,6 +16,8 @@
--color-background-hover: hsl(26deg 80% 60%);
--color-border-blue: hsl(210deg 42% 48%);
--color-border-default: hsl(0deg 0% 85%);
--color-icon-hover: brightness(0) invert(100%) sepia(100%) saturate(0%)
hue-rotate(108deg) brightness(104%) contrast(104%);
}
:root {
@ -46,4 +48,11 @@
--color-background-hover: hsl(26deg 50% 55%);
--color-border-default: hsl(0deg 0% 33%);
}
#rssButtonBar img,
#startSearchButton img,
#manageSearchPlugins img {
filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(1%)
hue-rotate(156deg) brightness(106%) contrast(101%);
}
}

View file

@ -195,10 +195,6 @@ hr {
color: var(--color-text-white) !important;
}
.selectedFilter a {
color: var(--color-text-white) !important;
}
#properties {
background-color: var(--color-background-default);
}
@ -239,10 +235,12 @@ a.propButton img {
}
.contextMenu li a {
align-items: center;
color: var(--color-text-default);
display: block;
display: flex;
font-family: Tahoma, Arial, sans-serif;
font-size: 12px;
gap: 7px;
padding: 5px 20px 5px 5px;
text-decoration: none;
white-space: nowrap;
@ -253,6 +251,10 @@ a.propButton img {
color: var(--color-text-white);
}
.contextMenu li a:hover img {
filter: var(--color-icon-hover);
}
.contextMenu li a.disabled {
font-style: italic;
}
@ -296,8 +298,6 @@ a.propButton img {
.contextMenu li img {
height: 16px;
margin-bottom: -4px;
margin-right: 0.5em; /* return missed padding */
width: 16px;
}
@ -540,23 +540,29 @@ ul.filterList {
padding-left: 0;
}
ul.filterList li:hover img,
ul.filterList .selectedFilter img {
filter: var(--color-icon-hover);
}
ul.filterList a,
ul.filterList span.link {
color: var(--color-text-default);
align-items: center;
color: inherit;
cursor: pointer;
display: block;
display: flex;
overflow: hidden;
padding: 4px 6px;
text-overflow: ellipsis;
white-space: nowrap;
}
ul.filterList li:hover {
background-color: var(--color-background-hover);
color: var(--color-text-white);
ul.filterList li {
color: var(--color-text-default);
}
ul.filterList li:hover a {
ul.filterList li:hover {
background-color: var(--color-background-hover);
color: var(--color-text-white);
}

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m15.999886 2c7.719803 0 14.000114 6.2803125 14.000114 14 0 7.719687-6.280241 14-14.000044 14-7.7197325 0-13.999956-6.280313-13.999956-14 0-7.7196875 6.2802235-14 13.999886-14zm0 4.732385c-1.698231 0-3.290919.4595675-4.661163 1.26021l12.668651 12.66853c.800719-1.37018 1.26029-2.962925 1.26029-4.661125 0-5.110228-4.157579-9.267615-9.267778-9.267615zm0 18.535248c1.698267 0 3.290902-.459568 4.661163-1.260211l-12.6686503-12.668529c-.800649 1.370215-1.2602203 2.962907-1.2602203 4.661107 0 5.110227 4.1575966 9.267633 9.2677076 9.267633z" fill="#f00"/></svg>

After

Width:  |  Height:  |  Size: 648 B

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m13.322662 4.5c-.44648 0-.826845.1387885-1.139361.4183349-.312514.2793628-.467671.6197868-.467671 1.0191651v4.792603c0 .399378.155156.736811.467671 1.016357.31231.279547.692881.421143 1.139361.421143h1.60703v2.874999h-8.5718767c-.580443 0-1.0825085.187793-1.5065914.56714-.4240829.37916-.6371626.828629-.6371626 1.347656v2.875h-1.6070307c-.4462733 0-.8237063.14178-1.1362209.421141-.3125147.279364-.4708099.61698-.4708099 1.016359v4.792602c0 .399378.1582957.739802.4708099 1.019164.3125146.279547.6899476.418336 1.1362209.418336h5.3578155c.4462732 0 .8268451-.138972 1.1393597-.418336.3125144-.279362.4676714-.619786.4676714-1.019164v-4.792602c0-.399379-.155157-.736812-.4676714-1.016359-.3125146-.279546-.6930865-.421141-1.1393597-.421141h-1.6070308v-2.875h8.5718767v2.875h-1.60703c-.44648 0-.826845.141781-1.139361.421141-.312514.279364-.467671.61698-.467671 1.016359v4.792602c0 .399378.155156.739802.467671 1.019164.31231.279547.692881.418336 1.139361.418336h5.354677c.446684 0 .826844-.138978 1.139358-.418336.31231-.279546.467672-.619786.467672-1.019164v-4.792602c0-.399379-.155159-.736812-.467672-1.016359-.312514-.279546-.692674-.421141-1.139358-.421141h-1.607031v-2.875h8.571876v2.875h-1.60703c-.446275 0-.826845.14178-1.13936.421141-.31231.279547-.467671.61698-.467671 1.016359v4.792602c0 .399378.155367.739802.467671 1.019164.312515.279547.693085.418336 1.13936.418336h5.357814c.446275 0 .823708-.138978 1.136222-.418336.312515-.279362.47081-.619786.47081-1.019164v-4.792602c0-.399379-.155561-.736995-.46767-1.016359-.312516-.279546-.692676-.421141-1.139362-.421141h-1.60703v-2.875c0-.519027-.213285-.968495-.637163-1.347656-.424082-.379529-.926352-.56714-1.506591-.56714h-8.571876v-2.874999h1.607031c.446684 0 .82705-.141597 1.139358-.421143.312516-.279362.467672-.616979.467672-1.016357v-4.792603c0-.3993783-.155367-.7398023-.467672-1.0191651-.312514-.2795464-.692674-.4183349-1.139358-.4183349z" fill="#1e90ff"/></svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><g fill="#1e90ff" transform="matrix(.06730765 0 0 .0625 -1.230751 0)"><path d="m256 428c-52.35 0-111.39-11.61-157.93-31-17.07-7.19-31.69-18.82-43.64-28a4 4 0 0 0 -6.43 3.18v12.58c0 28.07 23.49 53.22 66.14 70.82 38.15 15.75 88.53 24.42 141.86 24.42s103.7-8.67 141.86-24.42c42.65-17.58 66.14-42.75 66.14-70.82v-12.58a4 4 0 0 0 -6.43-3.18c-11.95 9.17-26.57 20.81-43.65 28-46.54 19.39-105.57 31-157.92 31zm208-301.49c-.81-27.65-24.18-52.4-66-69.85-38.26-15.9-88.66-24.66-142-24.66s-103.74 8.76-141.91 24.66c-41.78 17.41-65.15 42.11-66 69.69l-.09 17.65c0 6.41 5.2 16.48 14.63 24.73 11.13 9.73 27.65 19.33 47.78 27.73 42.83 17.9 97.26 28.54 145.59 28.54s102.76-10.68 145.59-28.58c20.13-8.4 36.65-18 47.78-27.73 9.43-8.2 14.63-18.27 14.63-24.69z"/><path d="m413.92 226c-46.53 19.43-105.57 31-157.92 31s-111.39-11.57-157.93-31c-17.07-7.15-31.69-18.79-43.64-28a4 4 0 0 0 -6.43 3.22v30.78c0 6.41 5.2 14.48 14.63 22.73 11.13 9.74 27.65 19.33 47.78 27.74 42.83 17.87 97.26 28.53 145.59 28.53s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74 9.43-8.22 14.63-16.28 14.63-22.69v-30.78a4 4 0 0 0 -6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.96z"/><path d="m413.92 312c-46.54 19.41-105.57 31-157.92 31s-111.39-11.59-157.93-31c-17.07-7.17-31.69-18.81-43.64-28a4 4 0 0 0 -6.43 3.2v29.8c0 6.41 5.2 14.47 14.62 22.71 11.13 9.74 27.66 19.33 47.79 27.74 42.83 17.87 97.25 28.55 145.59 28.55s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74 9.43-8.25 14.63-16.32 14.63-22.69v-29.8a4 4 0 0 0 -6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.98z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m36.000962 91.499987c-1.284993 0-2.527487-.599829-3.499982-1.688407-.94562-1.061789-1.523117-2.477725-1.624991-3.985791-.10875-1.608691.360623-3.088008 1.321243-4.166132s2.303738-1.659657 3.80373-1.659657c1.489367 0 2.836235.591988 3.79373 1.667498.96687 1.085965 1.437493 2.562668 1.328743 4.157637-.104374 1.510027-.681246 2.92531-1.624991 3.985791-.969995 1.089232-2.211864 1.689061-3.497482 1.689061zm8.239332 11.499983h-16.478039a1.7318659 1.8105945 0 0 1 -1.374993-.69718 1.8887401 1.9746 0 0 1 -.328748-1.68514c.526247-2.209176 1.829991-4.041333 3.76998-5.297838 1.721866-1.114714 3.91373-1.728918 6.172468-1.728918 2.303113 0 4.437477.588067 6.169343 1.702129 1.944365 1.24997 3.249983 3.092581 3.77373 5.328547a1.8918651 1.9778671 0 0 1 -.332498 1.68448 1.7299909 1.8086343 0 0 1 -1.371243.69392zm-20.05177-11.23862c-2.199364 0-4.133103-2.137952-4.312478-4.765307-.08875-1.346021.312499-2.590764 1.124995-3.503575.803745-.903664 1.937489-1.401561 3.187483-1.401561 1.249993 0 2.374987.500511 3.183108 1.409402.818746.919999 1.218744 2.162128 1.124994 3.497041-.179374 2.626702-2.112489 4.764-4.308102 4.764zm4.103728 2.05497c-1.099369-.561932-2.526236-.842897-4.103103-.842897-1.84124 0-3.629356.501817-5.035599 1.412669-1.594366 1.034345-2.666861 2.540451-3.099984 4.358887a1.711866 1.7896855 0 0 0 .299374 1.526361 1.5824917 1.65443 0 0 0 1.255618.63773h6.937464a.49999738.52272668 0 0 0 .491872-.42929c.0069-.0412.01563-.0823.02562-.12284.529998-2.225512 1.771866-4.106021 3.606856-5.476872a.49999738.52272668 0 0 0 -.03937-.874913c-.09812-.060114-.210624-.123495-.338749-.188835z" fill="#1e90ff" stroke-width=".063904" transform="translate(-15.001137 -75.499998)"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m21.57125 30h-4.44625a1.125 1.1249747 0 0 1 -1.125-1.124974v-1.731836a1.9575 1.9574559 0 0 0 -.606875-1.423093c-.48625-.474364-1.1925-.737484-1.930625-.719359-1.335.031249-2.4625 1.206223-2.4625 2.566192v1.308096a1.125 1.1249747 0 0 1 -1.125 1.124974h-4.39875a3.47625 3.4761717 0 0 1 -3.47625-3.476171v-4.398651a1.125 1.1249747 0 0 1 1.125-1.124975h1.731875c.5725 0 1.129375-.244994 1.568125-.687484a2.62875 2.6286908 0 0 0 .7625-1.869958c-.01875-1.324345-1.10875-2.442445-2.380625-2.442445h-1.681875a1.125 1.1249747 0 0 1 -1.125-1.124975v-4.398651a3.47625 3.4761717 0 0 1 3.47625-3.4761711h3.4525a.5.49998874 0 0 0 .5-.499989v-.404991a4.095625 4.0955327 0 0 1 4.1675-4.094908c2.218125.03875 4.0225 1.898707 4.0225 4.145532v.354367a.5.49998874 0 0 0 .5.499989h3.4525a3.42875 3.4286728 0 0 1 3.42875 3.4286721v3.452423a.5.49998874 0 0 0 .5.499988h.35375c2.28625 0 4.14625 1.812459 4.14625 4.039909 0 2.288074-1.836875 4.149907-4.095 4.149907h-.405a.5.49998874 0 0 0 -.5.499988v3.499922a3.42875 3.4286728 0 0 1 -3.42875 3.428672z" fill="#1e90ff" stroke-width=".062499"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><g fill="#1e90ff" stroke="#1e90ff" stroke-linecap="round" stroke-width="1.8213" transform="matrix(1.002153 0 0 .9952124 -.039681 .049768)"><path d="m14.120835 17.554412c-1.024266-.939813-1.493624-1.377103-1.81649-1.674526a1.0687994 1.0083645 0 0 1 -.195127-1.180295 1.2164625 1.147678 0 0 1 .205088-.255408l.918793-.845279a1.0934099 1.0315834 0 0 1 .329898-.213946 1.0611819 1.0011777 0 0 1 1.171929.200125c.319351.292448.904143.829247 1.957708 1.797808m2.881773 2.575088c2.399525 2.106288 5.310012 4.603427 6.445611 5.495697a.78870835.74411106 0 0 1 .05508 1.10124l-1.95595 1.844799a.82035044.77396396 0 0 1 -1.188921-.042015c-.9686-1.060331-3.579658-3.710052-5.816871-5.915296" stroke-linejoin="round"/><path d="m26.582544 12.03218a1.5920658 1.5020429 0 0 1 -2.244244 0l-1.317249-1.243318a1.5908939 1.5009373 0 0 1 0-2.1167916l2.981974-2.813359a.04980699.04699067 0 0 0 -.015235-.0762908c-1.924308-.7772809-4.419931-.3820065-6.004379 1.1023458-1.516477 1.4202239-1.602613 3.5530476-1.047119 5.4177476a1.5821044 1.4926448 0 0 1 -.449435 1.500385l-10.1371874 8.887317a2.3883917 2.2533408 0 1 0 3.3733984 3.180992l9.501416-9.580568a1.5821044 1.4926448 0 0 1 1.568627-.42568c1.960638.494231 4.189061.401355 5.687958-.99178 1.610817-1.497067 1.958294-4.142918 1.177789-5.6571235a.04980699.04699067 0 0 0 -.07969-.012162z" stroke-miterlimit="10"/><path d="m2.0112905 12.551288 1.7233219-1.588837a.27598933.26038359 0 0 1 .1998139-.07463.28419283.26812323 0 0 1 .1998139.07463.5777611.54509176 0 0 0 .479905.153134c.2244245-.02322.464084-.08845.6193646-.227766.3515788-.320643-.055081-.9525289.2543086-1.3566486a12.129467 11.44361 0 0 1 1.159038-1.249399c.3515788-.3250649 1.7485184-1.5656185 4.0958926-2.4573356a6.2879861 5.9324338 0 0 1 2.362609-.4323141c1.323694 0 2.343859.5528314 2.710672.8662868a5.246727 4.9500524 0 0 1 .602372.6434957 4.6244326 4.3629454 0 0 0 -.539673-.1531343 4.0326084 3.8045857 0 0 0 -1.171929-.0696567c-.781091.060259-1.723322.4013556-2.226666.7739639-.814491.6081146-1.164312 1.4218824-1.219392 2.4717092-.03985.7805977.159382 1.2217577 2.115332 3.0676617a.38673664.36486872 0 0 1 -.01992.506393l-1.067627.995097a.40314364.380348 0 0 1 -.559011.005c-1.285609-1.212937-2.1475629-1.829344-2.6368433-2.109629-.4892805-.280286-.8830487-.359341-1.0723153-.37869a1.8077008 1.7054849 0 0 0 -1.0705573.213946.66741368.62967496 0 0 0 -.1546946.110566.82855394.7817036 0 0 0 .02461 1.110086l.1001999.08845a.27130161.25596094 0 0 1 0 .36708l-1.721564 1.586073a.27598933.26038359 0 0 1 -.1998139.0774.2847788.26867606 0 0 1 -.1998139-.07463l-2.7874331-2.566799a.28595072.26978172 0 0 1 0-.371503z" stroke-linejoin="round"/></g></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><g fill="#1e90ff" transform="matrix(.06228321 0 0 .06228321 .055498 .055498)"><path d="m340.75 344.49c5.91-20.7 9.82-44.75 11.31-67.84a4.41 4.41 0 0 0 -4.46-4.65h-71.06a4.43 4.43 0 0 0 -4.47 4.39v55.3a4.44 4.44 0 0 0 4.14 4.38 273.51 273.51 0 0 1 59 11.39 4.45 4.45 0 0 0 5.54-2.97zm-17.17 32.82a260.05 260.05 0 0 0 -46.6-9.09 4.42 4.42 0 0 0 -4.91 4.29v65.24a4.47 4.47 0 0 0 6.76 3.7c15.9-9.27 29-24.84 40.84-45.43 1.94-3.36 4.89-9.15 6.67-12.69a4.29 4.29 0 0 0 -2.76-6.02zm-88.29-8.91a256.85 256.85 0 0 0 -46.56 8.82c-2.64.76-3.75 4.4-2.55 6.79 1.79 3.56 4 8.11 5.89 11.51 13 23 26.84 37.5 41.24 45.93a4.47 4.47 0 0 0 6.76-3.7v-65.27a4.16 4.16 0 0 0 -4.78-4.08zm.31-96.4h-71.06a4.41 4.41 0 0 0 -4.46 4.64c1.48 23.06 5.37 47.16 11.26 67.84a4.46 4.46 0 0 0 5.59 3 272.2 272.2 0 0 1 59-11.36 4.44 4.44 0 0 0 4.15-4.38v-55.34a4.43 4.43 0 0 0 -4.48-4.4zm41.4-128.22a235.8 235.8 0 0 0 46.5-9.14 4.3 4.3 0 0 0 2.76-6c-1.79-3.57-4.27-8.68-6.17-12.09-12.29-22-26.14-37.35-41.24-46a4.48 4.48 0 0 0 -6.76 3.7v65.23a4.43 4.43 0 0 0 4.91 4.3zm-.46 96.22h71.06a4.39 4.39 0 0 0 4.46-4.58c-1.48-22.77-5.27-47.8-11.16-68.22a4.46 4.46 0 0 0 -5.59-2.95c-19 5.74-38.79 10.43-59.09 12a4.4 4.4 0 0 0 -4.15 4.32v55.11a4.4 4.4 0 0 0 4.47 4.32zm-43.23-169.44c-15.42 8.57-29.17 24.43-41.47 46.37-1.91 3.41-4.19 8.11-6 11.67a4.31 4.31 0 0 0 2.76 6 225.42 225.42 0 0 0 46.54 9.17 4.43 4.43 0 0 0 4.91-4.29v-65.22a4.49 4.49 0 0 0 -6.74-3.7zm2.61 105.7c-20.3-1.55-40.11-6.24-59.09-12a4.46 4.46 0 0 0 -5.59 2.95c-5.89 20.42-9.68 45.45-11.16 68.22a4.39 4.39 0 0 0 4.46 4.58h71.06a4.4 4.4 0 0 0 4.47-4.34v-55.09a4.4 4.4 0 0 0 -4.15-4.32z"/><path d="m414.39 97.61a224 224 0 1 0 -316.78 316.78 224 224 0 1 0 316.78-316.78zm-237.79 333.24a219.08 219.08 0 0 1 -12.48-19.66c-2-3.69-4.84-9.26-6.73-13.13a7.29 7.29 0 0 0 -10.31-3.16c-4.3 2.41-10 5.72-14.13 8.43a147.29 147.29 0 0 1 -23.57-22.43 248.83 248.83 0 0 1 30.41-18.36c1.86-1 2.77-2.14 2.18-4.18a374.8 374.8 0 0 1 -14.09-82.17 4.36 4.36 0 0 0 -4.3-4.17h-56.74a2 2 0 0 1 -2-1.7 98.28 98.28 0 0 1 -.84-14.32 96.27 96.27 0 0 1 .86-14.29 2 2 0 0 1 2-1.7h56.74c2.29 0 4.17-1.32 4.29-3.63a372.71 372.71 0 0 1 14-81.83 4.36 4.36 0 0 0 -2.19-5.11 260.63 260.63 0 0 1 -29.84-17.9 169.82 169.82 0 0 1 23.14-22.8c4.08 2.68 9.4 5.71 13.66 8.11a7.89 7.89 0 0 0 11-3.42c1.88-3.87 4-8.18 6.06-11.88a221.93 221.93 0 0 1 12.54-19.91 185 185 0 0 1 79.74-17.64c28.94 0 55.9 7 80.53 18.46a202.23 202.23 0 0 1 12 19c2.59 4.66 5.34 10.37 7.66 15.32a4.29 4.29 0 0 0 5.92 1.94c5.38-2.91 11.21-6.26 16.34-9.63a171.36 171.36 0 0 1 23.2 23 244.89 244.89 0 0 1 -29.06 17.31 4.35 4.35 0 0 0 -2.18 5.12 348.68 348.68 0 0 1 13.85 81.4 4.33 4.33 0 0 0 4.3 4.12l56.62-.07a2 2 0 0 1 2 1.7 117.46 117.46 0 0 1 0 28.62 2 2 0 0 1 -2 1.72h-56.67a4.35 4.35 0 0 0 -4.3 4.17 367.4 367.4 0 0 1 -13.87 81.3 4.45 4.45 0 0 0 2.19 5.19c5 2.59 10.57 5.48 15.37 8.42s9.55 6.08 14.13 9.34a172.73 172.73 0 0 1 -23 22.93c-2.44-1.61-5.34-3.44-7.84-4.94-1.72-1-4.89-2.77-6.65-3.76-3.82-2.14-7.88-.54-9.79 3.4s-4.83 9.59-6.87 13.25a212.42 212.42 0 0 1 -12.35 19.53c-24.62 11.53-50.59 17.16-79.53 17.16s-54.77-5.63-79.4-17.15z"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m64 144h226.75a48 48 0 0 0 90.5 0h66.75a16 16 0 0 0 0-32h-66.75a48 48 0 0 0 -90.5 0h-226.75a16 16 0 0 0 0 32zm384 224h-66.75a48 48 0 0 0 -90.5 0h-226.75a16 16 0 0 0 0 32h226.75a48 48 0 0 0 90.5 0h66.75a16 16 0 0 0 0-32zm0-128h-226.75a48 48 0 0 0 -90.5 0h-66.75a16 16 0 0 0 0 32h66.75a48 48 0 0 0 90.5 0h226.75a16 16 0 0 0 0-32z" fill="#1e90ff" transform="matrix(.06730769 0 0 .07955163 -1.230769 -4.365217)"/></svg>

After

Width:  |  Height:  |  Size: 507 B

View file

@ -0,0 +1 @@
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m96.85 286.62a8 8 0 0 0 -12.53 8.25c17.75 78.41 87.98 137.13 171.68 137.13a175.31 175.31 0 0 0 52.41-8 8 8 0 0 0 .79-15 1120 1120 0 0 1 -109.48-55.61 1126.24 1126.24 0 0 1 -102.87-66.77zm395.87 52.89c-4.19-5.58-9.11-11.44-14.7-17.53a15.83 15.83 0 0 0 -26.56 5.13c0 .16-.11.31-.17.47a15.75 15.75 0 0 0 3.15 16.06c22.74 25 26.42 38.51 25.48 41.36-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0 0 19.54-27.25c.17-.29.35-.58.52-.88a175.39 175.39 0 0 0 23.28-87.39 178.87 178.87 0 0 0 -1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 0 0 -106.4 35.89 177.4 177.4 0 0 0 -45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 0 0 -13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2-2.23 15.54-5.87 48.62 1.31a15.82 15.82 0 0 0 15.54-5.31l.36-.44a15.74 15.74 0 0 0 -8.67-25.43 237.38 237.38 0 0 0 -23.78-4.13c-30.72-3.53-50.83 2.52-59.78 18-3.24 5.58-6.35 15.09-2.72 28.6 5.37 20.06 24.51 44.4 51.6 69.9 8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12 8.24 6 16.7 11.78c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16 14.3 7.74 28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12h1.74c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z" fill="#1e90ff" transform="matrix(.05859584 0 0 .0653409 1.000053 -.72727)"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -121,12 +121,20 @@
</span>
<a id="preferencesButton" class="divider"><img class="mochaToolButton" title="QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]" src="images/configure.svg" alt="QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]" width="24" height="24"></a>
<div id="mainWindowTabs" class="toolbarTabs">
<ul id="mainWindowTabsList" class="tab-menu">
<li id="transfersTabLink" class="selected"><a class="tab">QBT_TR(Transfers)QBT_TR[CONTEXT=MainWindow]</a></li>
<li id="searchTabLink"><a class="tab">QBT_TR(Search)QBT_TR[CONTEXT=MainWindow]</a></li>
<li id="rssTabLink"><a class="tab">QBT_TR(RSS)QBT_TR[CONTEXT=MainWindow]</a></li>
<li id="logTabLink"><a class="tab">QBT_TR(Execution Log)QBT_TR[CONTEXT=MainWindow]</a></li>
</ul>
<menu id="mainWindowTabsList" class="tab-menu">
<li id="transfersTabLink" class="selected">
<a><img alt="QBT_TR(Transfers)QBT_TR[CONTEXT=MainWindow]" src="images/filter-all.svg" width="16" height="16">QBT_TR(Transfers)QBT_TR[CONTEXT=MainWindow]</a>
</li>
<li id="searchTabLink">
<a><img alt="QBT_TR(Search)QBT_TR[CONTEXT=MainWindow]" src="images/edit-find.svg" width="16" height="16">QBT_TR(Search)QBT_TR[CONTEXT=MainWindow]</a>
</li>
<li id="rssTabLink">
<a><img alt="QBT_TR(RSS)QBT_TR[CONTEXT=MainWindow]" src="images/application-rss.svg" width="16" height="16">QBT_TR(RSS)QBT_TR[CONTEXT=MainWindow]</a>
</li>
<li id="logTabLink">
<a><img alt="QBT_TR(Execution Log)QBT_TR[CONTEXT=MainWindow]" src="images/help-contents.svg" width="16" height="16">QBT_TR(Execution Log)QBT_TR[CONTEXT=MainWindow]</a>
</li>
</menu>
<div class="clear"></div>
</div>
<div id="torrentsFilterToolbar">

View file

@ -1603,6 +1603,7 @@ window.addEventListener("DOMContentLoaded", () => {
const id = "uploadPage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]",
loadMethod: "iframe",
contentURL: new URI("upload.html").toString(),
@ -1645,6 +1646,7 @@ window.addEventListener("DOMContentLoaded", () => {
const contentURI = new URI("download.html").setData("urls", urls.map(encodeURIComponent).join("|"));
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]",
loadMethod: "iframe",
contentURL: contentURI.toString(),

View file

@ -130,6 +130,7 @@ const initializeWindows = function() {
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Download from URLs)QBT_TR[CONTEXT=downloadFromURL]",
loadMethod: "iframe",
contentURL: contentUri.toString(),
@ -155,6 +156,7 @@ const initializeWindows = function() {
const id = "preferencesPage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Options)QBT_TR[CONTEXT=OptionsDialog]",
loadMethod: "xhr",
toolbar: true,
@ -182,6 +184,7 @@ const initializeWindows = function() {
const id = "uploadPage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Upload local torrent)QBT_TR[CONTEXT=HttpServer]",
loadMethod: "iframe",
contentURL: new URI("upload.html").toString(),
@ -202,6 +205,7 @@ const initializeWindows = function() {
globalUploadLimitFN = function() {
new MochaUI.Window({
id: "uploadLimitPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Global Upload Speed Limit)QBT_TR[CONTEXT=MainWindow]",
loadMethod: "iframe",
contentURL: new URI("uploadlimit.html").setData("hashes", "global").toString(),
@ -220,6 +224,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "uploadLimitPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Upload Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("uploadlimit.html").setData("hashes", hashes.join("|")).toString(),
@ -261,6 +266,7 @@ const initializeWindows = function() {
const orig = torrentsHaveSameShareRatio ? shareRatio : "";
new MochaUI.Window({
id: "shareRatioPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Upload/Download Ratio Limiting)QBT_TR[CONTEXT=UpDownRatioDialog]",
loadMethod: "iframe",
contentURL: new URI("shareratio.html").setData("hashes", hashes.join("|")).setData("orig", orig).toString(),
@ -335,6 +341,7 @@ const initializeWindows = function() {
globalDownloadLimitFN = function() {
new MochaUI.Window({
id: "downloadLimitPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Global Download Speed Limit)QBT_TR[CONTEXT=MainWindow]",
loadMethod: "iframe",
contentURL: new URI("downloadlimit.html").setData("hashes", "global").toString(),
@ -352,6 +359,7 @@ const initializeWindows = function() {
const id = "statisticspage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Statistics)QBT_TR[CONTEXT=StatsDialog]",
loadMethod: "xhr",
contentURL: new URI("views/statistics.html").toString(),
@ -370,6 +378,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "downloadLimitPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Torrent Download Speed Limiting)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("downloadlimit.html").setData("hashes", hashes.join("|")).toString(),
@ -389,6 +398,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).setData("deleteFiles", deleteFiles).toString(),
@ -494,6 +504,7 @@ const initializeWindows = function() {
new MochaUI.Window({
id: "setLocationPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Set location)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("setlocation.html").setData("hashes", hashes.join("|")).setData("path", encodeURIComponent(row.full_data.save_path)).toString(),
@ -516,6 +527,7 @@ const initializeWindows = function() {
if (row) {
new MochaUI.Window({
id: "renamePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Rename)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("rename.html").setData("hash", hash).setData("name", row.full_data.name).toString(),
@ -539,6 +551,7 @@ const initializeWindows = function() {
if (row) {
new MochaUI.Window({
id: "multiRenamePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TransferListWidget]",
data: { hash: hash, selectedRows: [] },
loadMethod: "xhr",
@ -562,6 +575,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "newCategoryPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("hashes", hashes.join("|")).toString(),
@ -604,6 +618,7 @@ const initializeWindows = function() {
const action = "create";
new MochaUI.Window({
id: "newCategoryPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).toString(),
@ -623,6 +638,7 @@ const initializeWindows = function() {
const categoryName = category_list.get(categoryHash).name + "/";
new MochaUI.Window({
id: "newSubcategoryPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Category)QBT_TR[CONTEXT=CategoryFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("categoryName", categoryName).toString(),
@ -642,6 +658,7 @@ const initializeWindows = function() {
const category = category_list.get(categoryHash);
new MochaUI.Window({
id: "editCategoryPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Edit Category)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newcategory.html").setData("action", action).setData("categoryName", category.name).setData("savePath", category.savePath).toString(),
@ -718,6 +735,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@ -738,6 +756,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "newTagPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add tags)QBT_TR[CONTEXT=TransferListWidget]",
loadMethod: "iframe",
contentURL: new URI("newtag.html").setData("action", action).setData("hashes", hashes.join("|")).toString(),
@ -785,6 +804,7 @@ const initializeWindows = function() {
const action = "create";
new MochaUI.Window({
id: "newTagPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New Tag)QBT_TR[CONTEXT=TagFilterWidget]",
loadMethod: "iframe",
contentURL: new URI("newtag.html").setData("action", action).toString(),
@ -860,6 +880,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@ -964,6 +985,7 @@ const initializeWindows = function() {
if (hashes.length) {
new MochaUI.Window({
id: "confirmDeletionPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Remove torrent(s))QBT_TR[CONTEXT=confirmDeletionDlg]",
loadMethod: "iframe",
contentURL: new URI("confirmdeletion.html").setData("hashes", hashes.join("|")).toString(),
@ -1157,6 +1179,7 @@ const initializeWindows = function() {
const id = "aboutpage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(About qBittorrent)QBT_TR[CONTEXT=AboutDialog]",
loadMethod: "xhr",
contentURL: new URI("views/about.html").toString(),

View file

@ -545,6 +545,7 @@ window.qBittorrent.PropFiles ??= (() => {
new MochaUI.Window({
id: "renamePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]",
loadMethod: "iframe",
contentURL: "rename_file.html?hash=" + hash + "&isFolder=" + node.isFolder
@ -562,6 +563,7 @@ window.qBittorrent.PropFiles ??= (() => {
const multiFileRename = function(hash) {
new MochaUI.Window({
id: "multiRenamePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Renaming)QBT_TR[CONTEXT=TorrentContentTreeView]",
data: { hash: hash, selectedRows: torrentFilesTable.selectedRows },
loadMethod: "xhr",

View file

@ -123,6 +123,7 @@ window.qBittorrent.PropPeers ??= (() => {
new MochaUI.Window({
id: "addPeersPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add Peers)QBT_TR[CONTEXT=PeersAdditionDialog]",
loadMethod: "iframe",
contentURL: "addpeers.html?hash=" + hash,

View file

@ -166,6 +166,7 @@ window.qBittorrent.PropTrackers ??= (() => {
return;
new MochaUI.Window({
id: "trackersPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Add trackers)QBT_TR[CONTEXT=TrackersAdditionDialog]",
loadMethod: "iframe",
contentURL: "addtrackers.html?hash=" + current_hash,
@ -190,6 +191,7 @@ window.qBittorrent.PropTrackers ??= (() => {
const trackerUrl = encodeURIComponent(element.childNodes[1].textContent);
new MochaUI.Window({
id: "trackersPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]",
loadMethod: "iframe",
contentURL: "edittracker.html?hash=" + current_hash + "&url=" + trackerUrl,

View file

@ -128,7 +128,7 @@ window.qBittorrent.Search ??= (() => {
const elem = e.event.srcElement;
if (elem.className.contains("searchInputField")) {
$("startSearchButton").click();
document.getElementById("startSearchButton").click();
return;
}
@ -179,7 +179,7 @@ window.qBittorrent.Search ??= (() => {
listItem.classList.add("selected");
listItem.addEventListener("click", (e) => {
setActiveTab(listItem);
$("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
});
listItem.appendChild(tabElem);
$("searchTabs").appendChild(listItem);
@ -258,7 +258,7 @@ window.qBittorrent.Search ??= (() => {
}
else if (isTabSelected && newTabToSelect) {
setActiveTab(newTabToSelect);
$("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
}
};
@ -335,7 +335,7 @@ window.qBittorrent.Search ??= (() => {
const currentSearchPattern = $("searchPattern").value.trim();
if (state.running && (state.searchPattern === currentSearchPattern)) {
// allow search to be stopped
$("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
searchPatternChanged = false;
}
@ -392,7 +392,7 @@ window.qBittorrent.Search ??= (() => {
plugins: plugins
},
onSuccess: (response) => {
$("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
const searchId = response.id;
createSearchTab(searchId, pattern);
@ -493,6 +493,7 @@ window.qBittorrent.Search ??= (() => {
new MochaUI.Window({
id: id,
title: "QBT_TR(Search plugins)QBT_TR[CONTEXT=PluginSelectDlg]",
icon: "images/qbittorrent-tray.svg",
loadMethod: "xhr",
contentURL: "views/searchplugins.html",
scrollbars: false,
@ -527,11 +528,11 @@ window.qBittorrent.Search ??= (() => {
// start a new search if pattern has changed, otherwise allow the search to be stopped
if (state && (state.searchPattern === currentSearchPattern)) {
searchPatternChanged = false;
$("startSearchButton").textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Stop)QBT_TR[CONTEXT=SearchEngineWidget]";
}
else {
searchPatternChanged = true;
$("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
}
};
@ -567,7 +568,7 @@ window.qBittorrent.Search ??= (() => {
};
const resetSearchState = function(searchId) {
$("startSearchButton").textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
document.getElementById("startSearchButton").lastChild.textContent = "QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]";
const state = searchState.get(searchId);
if (state) {
state.running = false;
@ -677,7 +678,7 @@ window.qBittorrent.Search ??= (() => {
$("searchPattern").disabled = searchPluginsEmpty;
$("categorySelect").disabled = searchPluginsEmpty;
$("pluginsSelect").disabled = searchPluginsEmpty;
$("startSearchButton").disabled = searchPluginsEmpty;
document.getElementById("startSearchButton").disabled = searchPluginsEmpty;
if (window.qBittorrent.SearchPlugins !== undefined)
window.qBittorrent.SearchPlugins.updateTable();

View file

@ -76,10 +76,6 @@
padding: 4px 12px !important;
}
.contextMenu>li>a>img {
margin-right: 0.5em;
}
</style>
<div id="logView">

View file

@ -1,7 +1,11 @@
<div class="toolbarTabs">
<ul id="panelTabs" class="tab-menu">
<li id="logMessageLink" class="selected"><a title="QBT_TR(General)QBT_TR[CONTEXT=ExecutionLogWidget]">QBT_TR(General)QBT_TR[CONTEXT=ExecutionLogWidget]</a></li>
<li id="logPeerLink"><a title="QBT_TR(Blocked IPs)QBT_TR[CONTEXT=ExecutionLogWidget]">QBT_TR(Blocked IPs)QBT_TR[CONTEXT=ExecutionLogWidget]</a></li>
</ul>
<menu id="panelTabs" class="tab-menu">
<li id="logMessageLink" class="selected">
<a><img alt="QBT_TR(General)QBT_TR[CONTEXT=ExecutionLogWidget]" src="images/help-contents.svg" width="16" height="16">QBT_TR(General)QBT_TR[CONTEXT=ExecutionLogWidget]</a>
</li>
<li id="logPeerLink">
<a><img alt="QBT_TR(Blocked IPs)QBT_TR[CONTEXT=ExecutionLogWidget]" src="images/ip-blocked.svg" width="16" height="16">QBT_TR(Blocked IPs)QBT_TR[CONTEXT=ExecutionLogWidget]</a>
</li>
</menu>
<div class="clear"></div>
</div>

View file

@ -1,15 +1,31 @@
<!-- preferences -->
<div class="toolbarTabs">
<ul id="preferencesTabs" class="tab-menu">
<li id="PrefBehaviorLink" class="selected"><a>QBT_TR(Behavior)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefDownloadsLink"><a>QBT_TR(Downloads)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefConnectionLink"><a>QBT_TR(Connection)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefSpeedLink"><a>QBT_TR(Speed)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefBittorrentLink"><a>QBT_TR(BitTorrent)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefRSSLink"><a>QBT_TR(RSS)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefWebUILink"><a>QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]</a></li>
<li id="PrefAdvancedLink"><a>QBT_TR(Advanced)QBT_TR[CONTEXT=OptionsDialog]</a></li>
</ul>
<menu id="preferencesTabs" class="tab-menu">
<li id="PrefBehaviorLink" class="selected">
<a><img alt="QBT_TR(Behavior)QBT_TR[CONTEXT=OptionsDialog]" src="images/preferences-desktop.svg" width="16" height="16">QBT_TR(Behavior)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefDownloadsLink">
<a><img alt="QBT_TR(Downloads)QBT_TR[CONTEXT=OptionsDialog]" src="images/download.svg" width="16" height="16">QBT_TR(Downloads)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefConnectionLink">
<a><img alt="QBT_TR(Connection)QBT_TR[CONTEXT=OptionsDialog]" src="images/network-connect.svg" width="16" height="16">QBT_TR(Connection)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefSpeedLink">
<a><img alt="QBT_TR(Speed)QBT_TR[CONTEXT=OptionsDialog]" src="images/slow_off.svg" width="16" height="16">QBT_TR(Speed)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefBittorrentLink">
<a><img alt="QBT_TR(BitTorrent)QBT_TR[CONTEXT=OptionsDialog]" src="images/preferences-bittorrent.svg" width="16" height="16">QBT_TR(BitTorrent)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefRSSLink">
<a><img alt="QBT_TR(RSS)QBT_TR[CONTEXT=OptionsDialog]" src="images/application-rss.svg" width="16" height="16">QBT_TR(RSS)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefWebUILink">
<a><img alt="QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]" src="images/preferences-webui.svg" width="16" height="16">QBT_TR(WebUI)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
<li id="PrefAdvancedLink">
<a><img alt="QBT_TR(Advanced)QBT_TR[CONTEXT=OptionsDialog]" src="images/preferences-advanced.svg" width="16" height="16">QBT_TR(Advanced)QBT_TR[CONTEXT=OptionsDialog]</a>
</li>
</menu>
<div class="clear"></div>
</div>

View file

@ -2,12 +2,22 @@
<div id="torrentFilesFilterToolbar" class="invisible">
<input type="text" id="torrentFilesFilterInput" placeholder="QBT_TR(Filter files...)QBT_TR[CONTEXT=PropertiesWidget]" aria-label="QBT_TR(Filter files...)QBT_TR[CONTEXT=PropertiesWidget]" autocorrect="off" autocapitalize="none">
</div>
<ul id="propertiesTabs" class="tab-menu">
<li id="PropGeneralLink" class="selected"><a>QBT_TR(General)QBT_TR[CONTEXT=PropTabBar]</a></li>
<li id="PropTrackersLink"><a>QBT_TR(Trackers)QBT_TR[CONTEXT=PropTabBar]</a></li>
<li id="PropPeersLink"><a>QBT_TR(Peers)QBT_TR[CONTEXT=PropTabBar]</a></li>
<li id="PropWebSeedsLink"><a>QBT_TR(HTTP Sources)QBT_TR[CONTEXT=PropTabBar]</a></li>
<li id="PropFilesLink"><a>QBT_TR(Content)QBT_TR[CONTEXT=PropTabBar]</a></li>
</ul>
<menu id="propertiesTabs" class="tab-menu">
<li id="PropGeneralLink" class="selected">
<a><img alt="QBT_TR(General)QBT_TR[CONTEXT=PropTabBar]" src="images/help-about.svg" width="16" height="16">QBT_TR(General)QBT_TR[CONTEXT=PropTabBar]</a>
</li>
<li id="PropTrackersLink">
<a><img alt="QBT_TR(Trackers)QBT_TR[CONTEXT=PropTabBar]" src="images/trackers.svg" width="16" height="16">QBT_TR(Trackers)QBT_TR[CONTEXT=PropTabBar]</a>
</li>
<li id="PropPeersLink">
<a><img alt="QBT_TR(Peers)QBT_TR[CONTEXT=PropTabBar]" src="images/peers.svg" width="16" height="16">QBT_TR(Peers)QBT_TR[CONTEXT=PropTabBar]</a>
</li>
<li id="PropWebSeedsLink">
<a><img alt="QBT_TR(HTTP Sources)QBT_TR[CONTEXT=PropTabBar]" src="images/network-server.svg" width="16" height="16">QBT_TR(HTTP Sources)QBT_TR[CONTEXT=PropTabBar]</a>
</li>
<li id="PropFilesLink">
<a><img alt="QBT_TR(Content)QBT_TR[CONTEXT=PropTabBar]" src="images/directory.svg" width="16" height="16">QBT_TR(Content)QBT_TR[CONTEXT=PropTabBar]</a>
</li>
</menu>
<div class="clear"></div>
</div>

View file

@ -72,6 +72,14 @@
height: 30px;
}
#rssButtonBar button {
padding: 4px 6px;
}
#rssButtonBar button img {
margin: 0 5px -3px 0;
}
#rssContentView table {
width: 100%;
}
@ -89,11 +97,18 @@
QBT_TR(Fetching of RSS feeds is disabled now! You can enable it in application settings.)QBT_TR[CONTEXT=RSSWidget]
</div>
<div id="rssButtonBar">
<button type="button" id="newSubscriptionButton" onclick="qBittorrent.Rss.addRSSFeed()">QBT_TR(New subscription)QBT_TR[CONTEXT=RSSWidget]</button>
<button type="button" id="markReadButton" onclick="qBittorrent.Rss.markSelectedAsRead()">QBT_TR(Mark items read)QBT_TR[CONTEXT=RSSWidget]</button>
<button type="button" id="updateAllButton" onclick="qBittorrent.Rss.refreshAllFeeds()">QBT_TR(Update all)QBT_TR[CONTEXT=RSSWidget]</button>
<button type="button" id="rssDownloaderButton" class="alignRight" onclick="qBittorrent.Rss.openRssDownloader()">QBT_TR(RSS Downloader...)QBT_TR[CONTEXT=RSSWidget]</button>
<button type="button" id="newSubscriptionButton" onclick="qBittorrent.Rss.addRSSFeed()">
<img alt="QBT_TR(New subscription)QBT_TR[CONTEXT=RSSWidget]" src="images/list-add.svg" width="16" height="16">QBT_TR(New subscription)QBT_TR[CONTEXT=RSSWidget]
</button>
<button type="button" id="markReadButton" onclick="qBittorrent.Rss.markSelectedAsRead()">
<img alt="QBT_TR(Mark items read)QBT_TR[CONTEXT=RSSWidget]" src="images/task-complete.svg" width="16" height="16">QBT_TR(Mark items read)QBT_TR[CONTEXT=RSSWidget]
</button>
<button type="button" id="updateAllButton" onclick="qBittorrent.Rss.refreshAllFeeds()">
<img alt="QBT_TR(Update all)QBT_TR[CONTEXT=RSSWidget]" src="images/view-refresh.svg" width="16" height="16">QBT_TR(Update all)QBT_TR[CONTEXT=RSSWidget]
</button>
<button type="button" id="rssDownloaderButton" class="alignRight" onclick="qBittorrent.Rss.openRssDownloader()">
<img alt="QBT_TR(RSS Downloader...)QBT_TR[CONTEXT=RSSWidget]" src="images/downloading.svg" width="16" height="16">QBT_TR(RSS Downloader...)QBT_TR[CONTEXT=RSSWidget]
</button>
</div>
</div>
<div id="rssContentView">
@ -320,6 +335,7 @@
new MochaUI.Window({
id: "newFeed",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Please type a RSS feed URL)QBT_TR[CONTEXT=RSSWidget]",
loadMethod: "iframe",
contentURL: "newfeed.html?path=" + encodeURIComponent(path),
@ -347,6 +363,7 @@
new MochaUI.Window({
id: "newFolder",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Please choose a folder name)QBT_TR[CONTEXT=RSSWidget]",
loadMethod: "iframe",
contentURL: "newfolder.html?path=" + encodeURIComponent(path),
@ -685,6 +702,7 @@
const moveItem = (oldPath) => {
new MochaUI.Window({
id: "renamePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Please choose a new name for this RSS feed)QBT_TR[CONTEXT=RSSWidget]",
loadMethod: "iframe",
contentURL: "rename_feed.html?oldPath=" + encodeURIComponent(oldPath),
@ -700,6 +718,7 @@
const encodedPaths = paths.map((path) => encodeURIComponent(path));
new MochaUI.Window({
id: "confirmFeedDeletionPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Deletion confirmation)QBT_TR[CONTEXT=RSSWidget]",
loadMethod: "iframe",
contentURL: "confirmfeeddeletion.html?paths=" + encodeURIComponent(encodedPaths.join("|")),
@ -811,6 +830,7 @@
const id = "rssdownloaderpage";
new MochaUI.Window({
id: id,
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Rss Downloader)QBT_TR[CONTEXT=AutomatedRssDownloader]",
loadMethod: "xhr",
contentURL: "views/rssDownloader.html",

View file

@ -521,6 +521,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
const addRule = () => {
new MochaUI.Window({
id: "newRulePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New rule name)QBT_TR[CONTEXT=AutomatedRssDownloader]",
loadMethod: "iframe",
contentURL: "newrule.html",
@ -535,6 +536,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
const renameRule = (rule) => {
new MochaUI.Window({
id: "renameRulePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Rule renaming)QBT_TR[CONTEXT=AutomatedRssDownloader]",
loadMethod: "iframe",
contentURL: "rename_rule.html?rule=" + encodeURIComponent(rule),
@ -557,6 +559,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
const encodedRules = rules.map((rule) => encodeURIComponent(rule));
new MochaUI.Window({
id: "removeRulePage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Rule deletion confirmation)QBT_TR[CONTEXT=AutomatedRssDownloader]",
loadMethod: "iframe",
contentURL: "confirmruledeletion.html?rules=" + encodeURIComponent(encodedRules.join("|")),
@ -572,6 +575,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
const encodedRules = rules.map((rule) => encodeURIComponent(rule));
new MochaUI.Window({
id: "clearRulesPage",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(New rule name)QBT_TR[CONTEXT=AutomatedRssDownloader]",
loadMethod: "iframe",
contentURL: "confirmruleclear.html?rules=" + encodeURIComponent(encodedRules.join("|")),

View file

@ -59,6 +59,16 @@
margin-left: 10px;
}
#manageSearchPlugins,
#startSearchButton {
padding: 4px 6px;
}
#startSearchButton img,
#manageSearchPlugins img {
margin: 0 5px -3px 0;
}
@media (min-width: 1060px) {
#searchResultsGranularFilters {
display: inline-block;
@ -81,7 +91,9 @@
<input type="text" id="searchPattern" class="searchInputField" placeholder="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" aria-label="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" autocorrect="off" autocomplete="off" autocapitalize="none" oninput="qBittorrent.Search.onSearchPatternChanged()">
<select id="categorySelect" class="searchInputField" aria-label="QBT_TR(Select category)QBT_TR[CONTEXT=SearchEngineWidget]" onchange="qBittorrent.Search.categorySelected()"></select>
<select id="pluginsSelect" class="searchInputField" aria-label="QBT_TR(Select plugins)QBT_TR[CONTEXT=SearchEngineWidget]" onchange="qBittorrent.Search.pluginSelected()"></select>
<button type="button" id="startSearchButton" class="searchInputField" onclick="qBittorrent.Search.startStopSearch()">QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]</button>
<button type="button" id="startSearchButton" class="searchInputField" onclick="qBittorrent.Search.startStopSearch()">
<img src="images/edit-find.svg" alt="QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]" width="16" height="16">QBT_TR(Search)QBT_TR[CONTEXT=SearchEngineWidget]
</button>
</div>
</div>
@ -183,7 +195,9 @@
</div>
<div style="height: 30px; padding-top: 10px;">
<button type="button" id="manageSearchPlugins" onclick="qBittorrent.Search.manageSearchPlugins()">QBT_TR(Search plugins...)QBT_TR[CONTEXT=SearchEngineWidget]</button>
<button type="button" id="manageSearchPlugins" onclick="qBittorrent.Search.manageSearchPlugins()">
<img alt="QBT_TR(Search plugins...)QBT_TR[CONTEXT=SearchEngineWidget]" src="images/plugins.svg" width="16" height="16">QBT_TR(Search plugins...)QBT_TR[CONTEXT=SearchEngineWidget]
</button>
</div>
</div>

View file

@ -114,6 +114,7 @@
const installPlugin = function(path) {
new MochaUI.Window({
id: "installSearchPlugin",
icon: "images/qbittorrent-tray.svg",
title: "QBT_TR(Install plugin)QBT_TR[CONTEXT=PluginSourceDlg]",
loadMethod: "xhr",
contentURL: "views/installsearchplugin.html",

View file

@ -323,6 +323,7 @@
<file>private/images/help-about.svg</file>
<file>private/images/help-contents.svg</file>
<file>private/images/insert-link.svg</file>
<file>private/images/ip-blocked.svg</file>
<file>private/images/knob.gif</file>
<file>private/images/L.gif</file>
<file>private/images/list-add.svg</file>
@ -332,11 +333,19 @@
<file>private/images/mail-inbox.svg</file>
<file>private/images/mascot.png</file>
<file>private/images/name.svg</file>
<file>private/images/network-connect.svg</file>
<file>private/images/network-server.svg</file>
<file>private/images/object-locked.svg</file>
<file>private/images/pause-session.svg</file>
<file>private/images/paused.svg</file>
<file>private/images/peers-add.svg</file>
<file>private/images/peers-remove.svg</file>
<file>private/images/peers.svg</file>
<file>private/images/plugins.svg</file>
<file>private/images/preferences-advanced.svg</file>
<file>private/images/preferences-bittorrent.svg</file>
<file>private/images/preferences-desktop.svg</file>
<file>private/images/preferences-webui.svg</file>
<file>private/images/queued.svg</file>
<file>private/images/ratio.svg</file>
<file>private/images/reannounce.svg</file>