WebUI: Apply box-sizing reset

Box-sizing: border-box is now applied globally. A lot of tiny changes were made but they were necessary to correct resulting inconsistencies. Everything should be pretty much as it was with just some minor exceptions.

Looks like this PR also indirectly fixed #21414.

PR #21464.
This commit is contained in:
skomerko 2024-10-12 08:22:07 +02:00 committed by GitHub
parent 81509dfb65
commit 0704049026
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 195 additions and 188 deletions

View file

@ -48,11 +48,9 @@
</head> </head>
<body> <body>
<div style="text-align: center;"> <div style="text-align: center; margin-top: 10px;">
<br>
<label for="trackersUrls">QBT_TR(List of trackers to add (one per line):)QBT_TR[CONTEXT=TrackersAdditionDialog]</label> <label for="trackersUrls">QBT_TR(List of trackers to add (one per line):)QBT_TR[CONTEXT=TrackersAdditionDialog]</label>
<textarea name="list" id="trackersUrls" rows="10" cols="1"></textarea> <textarea name="list" id="trackersUrls" rows="10" cols="1"></textarea>
<br>
<input type="button" value="QBT_TR(Add)QBT_TR[CONTEXT=HttpServer]" id="addTrackersButton"> <input type="button" value="QBT_TR(Add)QBT_TR[CONTEXT=HttpServer]" id="addTrackersButton">
</div> </div>
</body> </body>

View file

@ -18,10 +18,6 @@ Required by:
/* Layout /* Layout
---------------------------------------------------------------- */ ---------------------------------------------------------------- */
body {
margin: 0; /* Required */
}
#desktop { #desktop {
cursor: default; /* Fix for issue in IE7. IE7 wants to use the I-bar text cursor */ cursor: default; /* Fix for issue in IE7. IE7 wants to use the I-bar text cursor */
height: 100%; height: 100%;
@ -88,13 +84,11 @@ body {
#desktopNavbar { #desktopNavbar {
background-color: var(--color-background-default); background-color: var(--color-background-default);
margin: 0 0px;
overflow: hidden; /* Remove this line if you want the menu to be backward compatible with Firefox 2 */ overflow: hidden; /* Remove this line if you want the menu to be backward compatible with Firefox 2 */
} }
#desktopNavbar ul { #desktopNavbar ul {
font-size: 12px; font-size: 12px;
list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
user-select: none; user-select: none;
@ -164,8 +158,8 @@ body {
#desktopNavbar li ul li a { #desktopNavbar li ul li a {
color: var(--color-text-default); color: var(--color-text-default);
font-weight: normal; font-weight: normal;
min-width: 120px; min-width: 155px;
padding: 4px 10px 4px 25px; padding: 4px 10px 4px 23px;
position: relative; position: relative;
} }
@ -200,14 +194,17 @@ li.divider {
border-top: 1px solid var(--color-border-default); border-top: 1px solid var(--color-border-default);
overflow: hidden; /* This can be set to hidden or auto */ overflow: hidden; /* This can be set to hidden or auto */
position: relative; position: relative;
/*height: 100%;*/ }
#propertiesPanel_header {
height: 28px;
} }
/* Footer */ /* Footer */
#desktopFooterWrapper { #desktopFooterWrapper {
bottom: 0; bottom: 0;
height: 30px; height: 28px;
left: 0; left: 0;
overflow: hidden; overflow: hidden;
position: absolute; position: absolute;
@ -217,8 +214,8 @@ li.divider {
#desktopFooter { #desktopFooter {
font-family: Verdana, Arial, Helvetica, sans-serif; font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px; font-size: 11px;
height: 24px; height: 28px;
padding: 6px 8px 0; padding: 2px;
} }
/* Panel Layout /* Panel Layout
@ -266,7 +263,6 @@ li.divider {
display: inline-block; display: inline-block;
font-size: 12px; font-size: 12px;
height: 22px; height: 22px;
margin: 0;
overflow: hidden; overflow: hidden;
padding: 3px 8px 0; padding: 3px 8px 0;
} }
@ -302,7 +298,7 @@ li.divider {
background: url("../images/handle-icon-horizontal.gif") center center background: url("../images/handle-icon-horizontal.gif") center center
no-repeat; no-repeat;
font-size: 1px; font-size: 1px;
height: 4px; height: 6px;
line-height: 1px; line-height: 1px;
margin: 0 auto; margin: 0 auto;
overflow: hidden; overflow: hidden;
@ -316,7 +312,7 @@ li.divider {
float: left; float: left;
min-height: 10px; min-height: 10px;
overflow: hidden; overflow: hidden;
width: 4px; width: 8px;
} }
/* Toolboxes */ /* Toolboxes */
@ -324,7 +320,7 @@ li.divider {
.toolbox { .toolbox {
float: right; float: right;
height: 24px; height: 24px;
margin-top: 3px; margin-top: 1px;
overflow: hidden; overflow: hidden;
padding: 0 5px; padding: 0 5px;
text-align: right; text-align: right;

View file

@ -24,9 +24,7 @@ Required by:
.tab-menu { .tab-menu {
font-size: 11px; font-size: 11px;
line-height: 16px; list-style-type: none;
list-style: none;
margin: 0;
padding: 0; padding: 0;
} }
@ -43,16 +41,19 @@ Required by:
.tab-menu li a { .tab-menu li a {
align-items: center; align-items: center;
background-color: var(--color-background-default); background-color: var(--color-background-default);
border-radius: 5px 5px 0 0; border-radius: 3px 3px 0 0;
color: var(--color-text-default); color: var(--color-text-default);
display: flex; display: flex;
font-weight: normal;
gap: 5px; gap: 5px;
margin-left: 6px; margin-left: 6px;
padding: 5px 8px; padding: 5px 7px 3px;
text-align: center; text-align: center;
} }
.tab-menu li:first-child a {
margin-left: 4px;
}
.tab-menu li:hover a { .tab-menu li:hover a {
background-color: var(--color-background-hover); background-color: var(--color-background-hover);
color: var(--color-text-white); color: var(--color-text-white);

View file

@ -56,7 +56,6 @@ Required by:
font-size: 12px; font-size: 12px;
font-weight: bold; font-weight: bold;
line-height: 15px; line-height: 15px;
margin: 0;
overflow: hidden; overflow: hidden;
padding: 5px 10px 4px 12px; padding: 5px 10px 4px 12px;
text-overflow: ellipsis; text-overflow: ellipsis;

View file

@ -45,7 +45,6 @@ tr.dynamicTableHeader {
.dynamicTable th { .dynamicTable th {
border-right: 1px solid var(--color-border-default); border-right: 1px solid var(--color-border-default);
box-sizing: border-box;
padding: 4px 2px; padding: 4px 2px;
white-space: nowrap; white-space: nowrap;
} }
@ -68,9 +67,9 @@ tr.dynamicTableHeader {
.dynamicTable th.sorted { .dynamicTable th.sorted {
background-image: url("../images/go-up.svg"); background-image: url("../images/go-up.svg");
background-position: right; background-position: right 3px center;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 15px; background-size: 12px;
} }
.dynamicTable th.sorted.reverse { .dynamicTable th.sorted.reverse {
@ -87,6 +86,11 @@ tr.dynamicTableHeader {
overflow: hidden; overflow: hidden;
} }
#propertiesPanel .dynamicTableFixedHeaderDiv,
#torrentsTableFixedHeaderDiv {
border-bottom: 1px solid var(--color-border-default);
}
.dynamicTableDiv { .dynamicTableDiv {
overflow: auto; overflow: auto;
} }

View file

@ -55,12 +55,34 @@
/* Reset */ /* Reset */
*,
*::before,
*::after {
box-sizing: border-box;
}
* {
margin: 0;
}
input,
button,
textarea,
select {
font: inherit;
}
a img, a img,
:link img, :link img,
:visited img { :visited img {
border: none; border: none;
} }
ul,
ol {
list-style: none;
}
/* Forms */ /* Forms */
input[type="text"], input[type="text"],
@ -72,27 +94,31 @@ select {
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 3px; border-radius: 3px;
color: var(--color-text-default); color: var(--color-text-default);
padding: 3px;
}
select {
padding: 4px; padding: 4px;
} }
input[type="checkbox"], input[type="checkbox"],
input[type="radio"] { input[type="radio"] {
accent-color: var(--color-accent-blue); accent-color: var(--color-accent-blue);
margin: 3px 3px 3px 4px;
} }
input[type="button"], input[type="button"],
input[type="submit"], input[type="submit"],
button { button {
cursor: pointer; cursor: pointer;
padding: 4px 16px; padding-left: 10px;
padding-right: 10px;
} }
button:disabled { button:disabled {
cursor: initial; cursor: initial;
} }
/*table { border-collapse: collapse; border-spacing: 0; }*/
:focus { :focus {
outline: none; outline: none;
} }
@ -103,8 +129,7 @@ body {
color: var(--color-text-default); color: var(--color-text-default);
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
font-size: 12px; font-size: 12px;
line-height: 18px; line-height: 1.5;
margin: 0;
text-align: left; text-align: left;
} }
@ -123,7 +148,6 @@ h3,
h4 { h4 {
font-size: 12px; font-size: 12px;
font-weight: bold; font-weight: bold;
margin: 0;
padding: 0 0 5px; padding: 0 0 5px;
} }
@ -164,17 +188,11 @@ a:hover {
} }
p { p {
margin: 0;
padding: 0 0 9px; padding: 0 0 9px;
} }
/* List Elements */ /* List Elements */
ul {
list-style: outside;
margin: 0 0 9px 16px;
}
dt { dt {
font-weight: bold; font-weight: bold;
} }
@ -187,7 +205,8 @@ dd {
fieldset { fieldset {
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 5px; border-radius: 1px;
margin: 0 2px;
} }
/* Code */ /* Code */
@ -212,6 +231,7 @@ hr {
border: 0px; border: 0px;
color: var(--color-text-default); color: var(--color-text-default);
height: 1px; height: 1px;
margin-bottom: 6px;
} }
.vcenter { .vcenter {
@ -224,7 +244,9 @@ hr {
} }
#trackersUrls { #trackersUrls {
display: block;
height: 100%; height: 100%;
margin: 0 auto 10px;
width: 90%; width: 90%;
} }
@ -232,10 +254,6 @@ hr {
overflow-x: hidden !important; /* override for default mocha inline style */ overflow-x: hidden !important; /* override for default mocha inline style */
} }
#Filters ul {
list-style-type: none;
}
#Filters ul img { #Filters ul img {
height: 16px; height: 16px;
width: 16px; width: 16px;
@ -249,7 +267,6 @@ a.propButton {
border: 1px solid rgb(85 81 91); border: 1px solid rgb(85 81 91);
margin-left: 3px; margin-left: 3px;
margin-right: 3px; margin-right: 3px;
/*border-radius: 3px;*/
padding: 2px; padding: 2px;
} }
@ -267,7 +284,6 @@ a.propButton img {
background-color: var(--color-background-default); background-color: var(--color-background-default);
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
display: none; display: none;
list-style-type: none;
padding: 0; padding: 0;
} }
@ -280,7 +296,6 @@ a.propButton img {
} }
.contextMenu li { .contextMenu li {
margin: 0;
padding: 0; padding: 0;
user-select: none; user-select: none;
} }
@ -299,9 +314,7 @@ a.propButton img {
align-items: center; align-items: center;
color: var(--color-text-default); color: var(--color-text-default);
display: flex; display: flex;
font-family: Tahoma, Arial, sans-serif; gap: 2px;
font-size: 12px;
gap: 7px;
padding: 5px 20px 5px 5px; padding: 5px 20px 5px 5px;
text-decoration: none; text-decoration: none;
white-space: nowrap; white-space: nowrap;
@ -320,11 +333,10 @@ a.propButton img {
background: var(--color-background-default); background: var(--color-background-default);
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
left: -999em; left: -999em;
list-style-type: none;
margin: -29px 0 0 100%; margin: -29px 0 0 100%;
padding: 0; padding: 0;
position: absolute; position: absolute;
width: 164px; width: max-content;
z-index: 8000; z-index: 8000;
} }
@ -345,16 +357,18 @@ a.propButton img {
.contextMenu li img { .contextMenu li img {
height: 16px; height: 16px;
margin-right: 0.5em;
width: 16px; width: 16px;
} }
.contextMenu li input[type="checkbox"] { .contextMenu li input[type="checkbox"] {
position: relative; margin: 0 0.5em 0 0;
top: 3px; width: 16px;
} }
#contextCategoryList img { #contextCategoryList img {
border: 1px solid transparent; border: 1px solid transparent;
box-sizing: content-box;
padding: 1px; padding: 1px;
} }
@ -390,7 +404,6 @@ a.propButton img {
height: 7px; height: 7px;
left: 0; left: 0;
line-height: 1px; line-height: 1px;
margin: 0;
overflow: hidden; overflow: hidden;
padding: 0; padding: 0;
position: absolute; position: absolute;
@ -438,9 +451,7 @@ a.propButton img {
} }
.MyMenuIcon { .MyMenuIcon {
margin-bottom: -3px; margin: 0 6px -3px -18px;
margin-left: -18px;
padding-right: 5px;
} }
#mainWindowTabs { #mainWindowTabs {
@ -462,7 +473,7 @@ a.propButton img {
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 3px; border-radius: 3px;
min-width: 160px; min-width: 160px;
padding: 4px 4px 4px 25px; padding: 2px 12px 2px 25px;
} }
#torrentsFilterRegexBox { #torrentsFilterRegexBox {
@ -510,8 +521,11 @@ a.propButton img {
background-position: left; background-position: left;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 1.5em; background-size: 1.5em;
margin-top: -1px;
padding-bottom: 1px;
padding-left: 2em; padding-left: 2em;
width: 250px; padding-top: 1px;
width: 190px;
} }
/* Tri-state checkbox */ /* Tri-state checkbox */
@ -537,8 +551,7 @@ label.partial {
fieldset.settings { fieldset.settings {
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 8px; padding: 4px 4px 6px 6px;
padding: 4px 4px 4px 10px;
} }
fieldset.settings legend { fieldset.settings legend {
@ -561,7 +574,6 @@ div.formRow {
} }
.filterTitle { .filterTitle {
box-sizing: border-box;
cursor: pointer; cursor: pointer;
display: flex; display: flex;
font-weight: bold; font-weight: bold;
@ -575,7 +587,6 @@ div.formRow {
} }
.filterTitle img { .filterTitle img {
box-sizing: border-box;
height: 16px; height: 16px;
padding: 2px; padding: 2px;
width: 16px; width: 16px;
@ -590,10 +601,6 @@ div.formRow {
transform: rotate(-90deg); transform: rotate(-90deg);
} }
ul.filterList * {
box-sizing: border-box;
}
ul.filterList { ul.filterList {
margin: 0; margin: 0;
padding-left: 0; padding-left: 0;
@ -605,6 +612,7 @@ ul.filterList .selectedFilter > .link :is(img, button) {
} }
ul.filterList span.link { ul.filterList span.link {
align-items: center;
cursor: pointer; cursor: pointer;
display: flex; display: flex;
gap: 5px; gap: 5px;
@ -664,6 +672,11 @@ td.generalLabel {
width: 1px; width: 1px;
} }
#tristate_cb {
margin-bottom: 0;
margin-top: 0;
}
.filesTableCollapseIcon { .filesTableCollapseIcon {
cursor: pointer; cursor: pointer;
height: 15px; height: 15px;
@ -710,8 +723,8 @@ td.generalLabel {
} }
.select-watched-folder-editable { .select-watched-folder-editable {
border: solid grey 1px; border: 1px solid var(--color-border-default);
height: 20px; height: 22px;
position: relative; position: relative;
width: 160px; width: 160px;
} }
@ -720,16 +733,16 @@ td.generalLabel {
border: none; border: none;
bottom: 0px; bottom: 0px;
left: 0px; left: 0px;
margin: 0; padding: 0;
position: absolute; position: absolute;
top: 0px; top: 0px;
width: 160px; width: 158px;
} }
.select-watched-folder-editable input { .select-watched-folder-editable input {
border: none; border: none;
left: 0px; left: 0px;
padding: 1px; padding: 0;
position: absolute; position: absolute;
top: 0px; top: 0px;
width: 140px; width: 140px;
@ -750,6 +763,7 @@ td.generalLabel {
.combo_priority { .combo_priority {
font-size: 1em; font-size: 1em;
padding: 2px 6px;
} }
td.statusBarSeparator { td.statusBarSeparator {
@ -757,14 +771,10 @@ td.statusBarSeparator {
background-position: center 1px; background-position: center 1px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 2px 18px; background-size: 2px 18px;
width: 22px; width: 24px;
} }
/* Statistics window */ /* Statistics window */
#statisticspage * {
box-sizing: border-box;
}
#statisticsContent { #statisticsContent {
& table { & table {
background-color: var(--color-background-default); background-color: var(--color-background-default);
@ -832,11 +842,6 @@ td.statusBarSeparator {
} }
/* Modals */ /* Modals */
.modalDialog * {
box-sizing: border-box;
}
.modalDialog .mochaContent.pad { .modalDialog .mochaContent.pad {
display: flex !important; /* override for default mocha inline style */ display: flex !important; /* override for default mocha inline style */
flex-direction: column; flex-direction: column;

View file

@ -12,7 +12,7 @@
</head> </head>
<body> <body>
<div style="width: 100%; text-align: center; margin: 0 auto; overflow: hidden"> <div style="padding-top: 10px; width: 100%; text-align: center; margin: 0 auto; overflow: hidden">
<div id="dllimitSlider" class="slider"> <div id="dllimitSlider" class="slider">
<div id="dllimitUpdate" class="update"> <div id="dllimitUpdate" class="update">
<label for="dllimitUpdatevalue">QBT_TR(Download limit:)QBT_TR[CONTEXT=PropertiesWidget]</label> <label for="dllimitUpdatevalue">QBT_TR(Download limit:)QBT_TR[CONTEXT=PropertiesWidget]</label>

View file

@ -110,7 +110,7 @@
&nbsp;&nbsp; &nbsp;&nbsp;
<a id="downloadButton"><img class="mochaToolButton" title="QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow]" src="images/insert-link.svg" alt="QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow]" width="24" height="24"></a> <a id="downloadButton"><img class="mochaToolButton" title="QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow]" src="images/insert-link.svg" alt="QBT_TR(Add Torrent Link...)QBT_TR[CONTEXT=MainWindow]" width="24" height="24"></a>
<a id="uploadButton"><img class="mochaToolButton" title="QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow]" src="images/list-add.svg" alt="QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow]" width="24" height="24"></a> <a id="uploadButton"><img class="mochaToolButton" title="QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow]" src="images/list-add.svg" alt="QBT_TR(Add Torrent File...)QBT_TR[CONTEXT=MainWindow]" width="24" height="24"></a>
<a id="deleteButton" class="divider"><img class="mochaToolButton" title="QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget]" src="images/list-remove.svg" alt="QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a> <a id="deleteButton"><img class="mochaToolButton" title="QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget]" src="images/list-remove.svg" alt="QBT_TR(Remove)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a>
<a id="startButton" class="divider"><img class="mochaToolButton" title="QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget]" src="images/torrent-start.svg" alt="QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a> <a id="startButton" class="divider"><img class="mochaToolButton" title="QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget]" src="images/torrent-start.svg" alt="QBT_TR(Start)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a>
<a id="stopButton"><img class="mochaToolButton" title="QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget]" src="images/torrent-stop.svg" alt="QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a> <a id="stopButton"><img class="mochaToolButton" title="QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget]" src="images/torrent-stop.svg" alt="QBT_TR(Stop)QBT_TR[CONTEXT=TransferListWidget]" width="24" height="24"></a>
<span id="queueingButtons"> <span id="queueingButtons">
@ -284,9 +284,9 @@
<td class="statusBarSeparator"></td> <td class="statusBarSeparator"></td>
<td style="cursor:pointer;"><img id="alternativeSpeedLimits" alt="QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]" title="QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]" src="images/slow_off.svg" style="height: 1.5em;"></td> <td style="cursor:pointer;"><img id="alternativeSpeedLimits" alt="QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]" title="QBT_TR(Alternative speed limits: Off)QBT_TR[CONTEXT=MainWindow]" src="images/slow_off.svg" style="height: 1.5em;"></td>
<td class="statusBarSeparator"></td> <td class="statusBarSeparator"></td>
<td class="speedLabel"><img src="images/downloading.svg" alt="QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]" style="height: 1.5em; padding-right: 5px; margin-bottom: -4px;"><span id="DlInfos"></span></td> <td class="speedLabel"><img src="images/downloading.svg" alt="QBT_TR(Download speed icon)QBT_TR[CONTEXT=MainWindow]" style="height: 1.5em; margin: 0 5px -4px 0;"><span id="DlInfos"></span></td>
<td class="statusBarSeparator"></td> <td class="statusBarSeparator"></td>
<td class="speedLabel"><img src="images/upload.svg" alt="QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]" style="height: 1.5em; padding-right: 5px; margin-bottom: -4px;"><span id="UpInfos"></span></td> <td class="speedLabel"><img src="images/upload.svg" alt="QBT_TR(Upload speed icon)QBT_TR[CONTEXT=MainWindow]" style="height: 1.5em; margin: 0 5px -4px 0;"><span id="UpInfos"></span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -36,7 +36,7 @@
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
} }
}); });
@ -442,11 +442,11 @@
<label for="include_folders">QBT_TR(Include folders)QBT_TR[CONTEXT=PropertiesWidget]</label> <label for="include_folders">QBT_TR(Include folders)QBT_TR[CONTEXT=PropertiesWidget]</label>
</div> </div>
<div class="formRow"> <div class="formRow">
<input type="number" min="0" max="99999999" value="0" id="file_counter" style="width: 80px;"> <input type="number" min="0" max="99999999" value="0" id="file_counter" style="width: 88px;">
<label for="file_counter">QBT_TR(Enumerate Files)QBT_TR[CONTEXT=PropertiesWidget]</label> <label for="file_counter">QBT_TR(Enumerate Files)QBT_TR[CONTEXT=PropertiesWidget]</label>
</div> </div>
</div> </div>
<div id="operation_btns" style="position: absolute; left: 0; bottom: 0; margin: 0px 12px 36px 12px; width: 228px;background: #ffffff;padding: 0px 5px 10px 0px;"> <div id="operation_btns" style="position: absolute; left: 0; bottom: 0; margin: 0 12px 50px 12px; width: 228px;">
<div style="overflow: auto;"> <div style="overflow: auto;">
<span id="rename_error" style="float: unset; font-size: unset;"></span> <span id="rename_error" style="float: unset; font-size: unset;"></span>
</div> </div>

View file

@ -367,7 +367,7 @@ window.qBittorrent.DynamicTable ??= (() => {
actions: actions, actions: actions,
menu: menuId, menu: menuId,
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
} }
}); });
@ -2109,7 +2109,7 @@ window.qBittorrent.DynamicTable ??= (() => {
const dirImg = new Element("img", { const dirImg = new Element("img", {
src: "images/directory.svg", src: "images/directory.svg",
styles: { styles: {
"width": 15, "width": 20,
"padding-right": 5, "padding-right": 5,
"margin-bottom": -3, "margin-bottom": -3,
"margin-left": (node.depth * 20) "margin-left": (node.depth * 20)
@ -2442,7 +2442,7 @@ window.qBittorrent.DynamicTable ??= (() => {
const dirImg = new Element("img", { const dirImg = new Element("img", {
src: "images/directory.svg", src: "images/directory.svg",
styles: { styles: {
"width": 15, "width": 20,
"padding-right": 5, "padding-right": 5,
"margin-bottom": -3 "margin-bottom": -3
}, },

View file

@ -225,7 +225,7 @@ const initializeWindows = function() {
closable: true, closable: true,
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: loadWindowWidth(id, 700), width: loadWindowWidth(id, 730),
height: loadWindowHeight(id, 600), height: loadWindowHeight(id, 600),
onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => {
saveWindowSize(id); saveWindowSize(id);
@ -292,7 +292,7 @@ const initializeWindows = function() {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 424, width: 424,
height: 80 height: 100
}); });
}; };
@ -311,7 +311,7 @@ const initializeWindows = function() {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 424, width: 424,
height: 80 height: 100
}); });
} }
}; };
@ -352,7 +352,7 @@ const initializeWindows = function() {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 424, width: 424,
height: 200 height: 220
}); });
} }
}; };
@ -428,7 +428,7 @@ const initializeWindows = function() {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 424, width: 424,
height: 80 height: 100
}); });
}; };
@ -465,7 +465,7 @@ const initializeWindows = function() {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 424, width: 424,
height: 80 height: 100
}); });
} }
}; };
@ -1223,7 +1223,7 @@ const initializeWindows = function() {
toolbar: true, toolbar: true,
toolbarURL: "views/aboutToolbar.html", toolbarURL: "views/aboutToolbar.html",
padding: 10, padding: 10,
width: loadWindowWidth(id, 550), width: loadWindowWidth(id, 570),
height: loadWindowHeight(id, 360), height: loadWindowHeight(id, 360),
onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => { onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => {
saveWindowSize(id); saveWindowSize(id);

View file

@ -58,6 +58,7 @@ window.qBittorrent.ProgressBar ??= (() => {
"class": "progressbar_wrapper", "class": "progressbar_wrapper",
"styles": { "styles": {
"border": "1px solid var(--color-border-default)", "border": "1px solid var(--color-border-default)",
"box-sizing": "content-box",
"width": vals.width, "width": vals.width,
"height": vals.height, "height": vals.height,
"position": "relative", "position": "relative",
@ -73,6 +74,7 @@ window.qBittorrent.ProgressBar ??= (() => {
"width": vals.width, "width": vals.width,
"height": vals.height, "height": vals.height,
"background": vals.darkbg, "background": vals.darkbg,
"box-sizing": "content-box",
"color": vals.darkfg, "color": vals.darkfg,
"position": "absolute", "position": "absolute",
"text-align": "center", "text-align": "center",
@ -88,6 +90,7 @@ window.qBittorrent.ProgressBar ??= (() => {
"width": vals.width, "width": vals.width,
"height": vals.height, "height": vals.height,
"background": vals.lightbg, "background": vals.lightbg,
"box-sizing": "content-box",
"color": vals.lightfg, "color": vals.lightfg,
"position": "absolute", "position": "absolute",
"text-align": "center", "text-align": "center",

View file

@ -608,7 +608,7 @@ window.qBittorrent.PropFiles ??= (() => {
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {

View file

@ -37,7 +37,7 @@ window.qBittorrent.PropGeneral ??= (() => {
}; };
const piecesBar = new window.qBittorrent.PiecesBar.PiecesBar([], { const piecesBar = new window.qBittorrent.PiecesBar.PiecesBar([], {
height: 16 height: 18
}); });
$("progress").appendChild(piecesBar); $("progress").appendChild(piecesBar);

View file

@ -133,7 +133,7 @@ window.qBittorrent.PropPeers ??= (() => {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 350, width: 350,
height: 240 height: 260
}); });
}, },
banPeer: function(element, ref) { banPeer: function(element, ref) {
@ -154,7 +154,7 @@ window.qBittorrent.PropPeers ??= (() => {
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {

View file

@ -139,7 +139,7 @@ window.qBittorrent.PropTrackers ??= (() => {
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {
@ -177,7 +177,7 @@ window.qBittorrent.PropTrackers ??= (() => {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 500, width: 500,
height: 250, height: 260,
onCloseComplete: function() { onCloseComplete: function() {
updateData(); updateData();
} }

View file

@ -111,7 +111,7 @@ window.qBittorrent.PropWebseeds ??= (() => {
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {
@ -150,7 +150,7 @@ window.qBittorrent.PropWebseeds ??= (() => {
paddingVertical: 0, paddingVertical: 0,
paddingHorizontal: 0, paddingHorizontal: 0,
width: 500, width: 500,
height: 250, height: 260,
onCloseComplete: function() { onCloseComplete: function() {
updateData(); updateData();
} }

View file

@ -116,8 +116,8 @@ window.qBittorrent.Search ??= (() => {
OpenDescriptionUrl: openSearchTorrentDescriptionUrl OpenDescriptionUrl: openSearchTorrentDescriptionUrl
}, },
offsets: { offsets: {
x: -15, x: 0,
y: -53 y: -60
} }
}); });
searchResultsTable = new window.qBittorrent.DynamicTable.SearchResultsTable(); searchResultsTable = new window.qBittorrent.DynamicTable.SearchResultsTable();
@ -184,9 +184,8 @@ window.qBittorrent.Search ??= (() => {
alt: "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]", alt: "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]",
title: "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]", title: "QBT_TR(Close tab)QBT_TR[CONTEXT=SearchWidget]",
src: "images/application-exit.svg", src: "images/application-exit.svg",
width: "8", width: "10",
height: "8", height: "10",
style: "padding-right: 7px; margin-bottom: -1px; margin-left: -5px",
onclick: "qBittorrent.Search.closeSearchTab(this);", onclick: "qBittorrent.Search.closeSearchTab(this);",
}); });
closeTabElem.inject(tabElem, "top"); closeTabElem.inject(tabElem, "top");
@ -384,9 +383,8 @@ window.qBittorrent.Search ??= (() => {
title: text, title: text,
src: image, src: image,
class: "statusIcon", class: "statusIcon",
width: "10", width: "12",
height: "10", height: "12",
style: "margin-bottom: -2px; margin-left: 7px",
}); });
}; };

View file

@ -12,7 +12,7 @@
</head> </head>
<body> <body>
<div style="width: 100%; text-align: center; margin: 0 auto; overflow: hidden"> <div style="padding-top: 10px; width: 100%; text-align: center; margin: 0 auto; overflow: hidden">
<div id="uplimitSlider" class="slider"> <div id="uplimitSlider" class="slider">
<div id="uplimitUpdate" class="update"> <div id="uplimitUpdate" class="update">
<label for="uplimitUpdatevalue">QBT_TR(Upload limit:)QBT_TR[CONTEXT=PropertiesWidget]</label> <label for="uplimitUpdatevalue">QBT_TR(Upload limit:)QBT_TR[CONTEXT=PropertiesWidget]</label>

View file

@ -35,7 +35,7 @@
.addCookie { .addCookie {
height: 16px; height: 16px;
width: 16px; width: 16px;
padding-left: 10px; margin-left: 5px;
vertical-align: middle; vertical-align: middle;
cursor: pointer; cursor: pointer;
} }

View file

@ -140,7 +140,7 @@
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {
@ -176,7 +176,7 @@
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {
@ -206,7 +206,7 @@
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
onShow: function() { onShow: function() {

View file

@ -4,7 +4,11 @@
} }
#logFilterBar { #logFilterBar {
margin: .5em 0; align-items: center;
display: flex;
flex-wrap: wrap;
gap: 2px;
height: 24px;
} }
#logFilterBar>label { #logFilterBar>label {
@ -14,8 +18,7 @@
#logFilterBar>button { #logFilterBar>button {
display: inline-block; display: inline-block;
padding: 4px 15px; padding: 2px 12px;
margin-left: .3em;
} }
#logView { #logView {
@ -38,9 +41,9 @@
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: left; background-position: left;
background-size: 1.5em; background-size: 1.5em;
padding: 4px 5px 4px 2em; padding: 2px 12px 2px 2em;
margin-left: .3em; margin-left: .3em;
width: 200px; width: 237px;
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 3px; border-radius: 3px;
} }
@ -73,7 +76,7 @@
} }
.vsb-main>button { .vsb-main>button {
padding: 4px 12px !important; padding: 2px 12px !important;
} }
</style> </style>
@ -215,8 +218,8 @@
} }
}, },
offsets: { offsets: {
x: -16, x: 3,
y: -57 y: -90
} }
}); });

View file

@ -345,12 +345,12 @@
<div class="formRow"> <div class="formRow">
<input type="checkbox" id="autorunOnTorrentAddedCheckbox" onclick="qBittorrent.Preferences.updateAutoRunOnTorrentAdded();"> <input type="checkbox" id="autorunOnTorrentAddedCheckbox" onclick="qBittorrent.Preferences.updateAutoRunOnTorrentAdded();">
<label id="autorunOnTorrentAddedLabel" for="autorunOnTorrentAddedCheckbox">QBT_TR(Run on torrent added:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="autorunOnTorrentAddedLabel" for="autorunOnTorrentAddedCheckbox">QBT_TR(Run on torrent added:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="autorunOnTorrentAddedProgram" aria-labelledby="autorunOnTorrentAddedLabel" style="width: 400px;"> <input type="text" id="autorunOnTorrentAddedProgram" aria-labelledby="autorunOnTorrentAddedLabel" style="width: 100%;">
</div> </div>
<div class="formRow"> <div class="formRow">
<input type="checkbox" id="autorun_checkbox" onclick="qBittorrent.Preferences.updateAutoRun();"> <input type="checkbox" id="autorun_checkbox" onclick="qBittorrent.Preferences.updateAutoRun();">
<label id="autorunLabel" for="autorun_checkbox">QBT_TR(Run on torrent finished:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="autorunLabel" for="autorun_checkbox">QBT_TR(Run on torrent finished:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="autorunProg_txt" aria-labelledby="autorunLabel" style="width: 400px;"> <input type="text" id="autorunProg_txt" aria-labelledby="autorunLabel" style="width: 100%;">
</div> </div>
<div style="font-style: italic;">QBT_TR(Supported parameters (case sensitive):)QBT_TR[CONTEXT=OptionsDialog] <div style="font-style: italic;">QBT_TR(Supported parameters (case sensitive):)QBT_TR[CONTEXT=OptionsDialog]
<ul> <ul>
@ -385,8 +385,8 @@
<legend>QBT_TR(Listening Port)QBT_TR[CONTEXT=OptionsDialog]</legend> <legend>QBT_TR(Listening Port)QBT_TR[CONTEXT=OptionsDialog]</legend>
<div class="formRow"> <div class="formRow">
<label for="port_value">QBT_TR(Port used for incoming connections:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="port_value">QBT_TR(Port used for incoming connections:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="port_value" style="width: 4em;" title="QBT_TR(Set to 0 to let your system pick an unused port)QBT_TR[CONTEXT=OptionsDialog]"> <input type="text" id="port_value" style="width: 6em;" title="QBT_TR(Set to 0 to let your system pick an unused port)QBT_TR[CONTEXT=OptionsDialog]">
<button type="button" style="margin-left: 1em;" onclick="qBittorrent.Preferences.generateRandomPort();">QBT_TR(Random)QBT_TR[CONTEXT=OptionsDialog]</button> <button type="button" onclick="qBittorrent.Preferences.generateRandomPort();">QBT_TR(Random)QBT_TR[CONTEXT=OptionsDialog]</button>
</div> </div>
<div class="formRow"> <div class="formRow">
<input type="checkbox" id="upnp_checkbox"> <input type="checkbox" id="upnp_checkbox">
@ -403,28 +403,28 @@
<input type="checkbox" id="max_connec_checkbox" onclick="qBittorrent.Preferences.updateMaxConnecEnabled();"> <input type="checkbox" id="max_connec_checkbox" onclick="qBittorrent.Preferences.updateMaxConnecEnabled();">
<label id="maxConnectionsLabel" for="max_connec_checkbox">QBT_TR(Global maximum number of connections:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxConnectionsLabel" for="max_connec_checkbox">QBT_TR(Global maximum number of connections:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td><input type="text" id="max_connec_value" aria-labelledby="maxConnectionsLabel" style="width: 4em;"></td> <td><input type="text" id="max_connec_value" aria-labelledby="maxConnectionsLabel" style="width: 6em;"></td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" id="max_connec_per_torrent_checkbox" onclick="qBittorrent.Preferences.updateMaxConnecPerTorrentEnabled();"> <input type="checkbox" id="max_connec_per_torrent_checkbox" onclick="qBittorrent.Preferences.updateMaxConnecPerTorrentEnabled();">
<label id="maxConnectionsPerTorrentLabel" for="max_connec_per_torrent_checkbox">QBT_TR(Maximum number of connections per torrent:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxConnectionsPerTorrentLabel" for="max_connec_per_torrent_checkbox">QBT_TR(Maximum number of connections per torrent:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td><input type="text" id="max_connec_per_torrent_value" aria-labelledby="maxConnectionsPerTorrentLabel" style="width: 4em;"></td> <td><input type="text" id="max_connec_per_torrent_value" aria-labelledby="maxConnectionsPerTorrentLabel" style="width: 6em;"></td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" id="max_uploads_checkbox" onclick="qBittorrent.Preferences.updateMaxUploadsEnabled();"> <input type="checkbox" id="max_uploads_checkbox" onclick="qBittorrent.Preferences.updateMaxUploadsEnabled();">
<label id="maxUploadsLabel" for="max_uploads_checkbox">QBT_TR(Global maximum number of upload slots:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxUploadsLabel" for="max_uploads_checkbox">QBT_TR(Global maximum number of upload slots:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td><input type="text" id="max_uploads_value" aria-labelledby="maxUploadsLabel" style="width: 4em;"></td> <td><input type="text" id="max_uploads_value" aria-labelledby="maxUploadsLabel" style="width: 6em;"></td>
</tr> </tr>
<tr> <tr>
<td> <td>
<input type="checkbox" id="max_uploads_per_torrent_checkbox" onclick="qBittorrent.Preferences.updateMaxUploadsPerTorrentEnabled();"> <input type="checkbox" id="max_uploads_per_torrent_checkbox" onclick="qBittorrent.Preferences.updateMaxUploadsPerTorrentEnabled();">
<label id="maxUploadsPerTorrentLabel" for="max_uploads_per_torrent_checkbox">QBT_TR(Maximum number of upload slots per torrent:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxUploadsPerTorrentLabel" for="max_uploads_per_torrent_checkbox">QBT_TR(Maximum number of upload slots per torrent:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td><input type="text" id="max_uploads_per_torrent_value" aria-labelledby="maxUploadsPerTorrentLabel" style="width: 4em;"></td> <td><input type="text" id="max_uploads_per_torrent_value" aria-labelledby="maxUploadsPerTorrentLabel" style="width: 6em;"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -448,7 +448,7 @@
<label for="i2pPort">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="i2pPort">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="number" id="i2pPort" min="0" max="65535" onchange="qBittorrent.Preferences.numberInputLimiter(this);" style="width: 5em;"> <input type="number" id="i2pPort" min="0" max="65535" onchange="qBittorrent.Preferences.numberInputLimiter(this);" style="width: 6em;">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -485,7 +485,7 @@
<label for="peer_proxy_port_value">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="peer_proxy_port_value">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="peer_proxy_port_value" style="width: 4em;"> <input type="text" id="peer_proxy_port_value" style="width: 6em;">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -575,14 +575,14 @@
<tbody> <tbody>
<tr> <tr>
<td rowspan="2"> <td rowspan="2">
<img src="images/slow_off.svg" style="height: 1.5em;" alt="QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow]"> <img src="images/slow_off.svg" style="height: 2.5em;" alt="QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow]">
</td> </td>
<td><label for="up_limit_value">QBT_TR(Upload:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="up_limit_value">QBT_TR(Upload:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="up_limit_value" style="width: 4em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="up_limit_value" style="width: 6em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
<tr> <tr>
<td><label for="dl_limit_value">QBT_TR(Download:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="dl_limit_value">QBT_TR(Download:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="dl_limit_value" style="width: 4em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="dl_limit_value" style="width: 6em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -595,14 +595,14 @@
<tbody> <tbody>
<tr> <tr>
<td rowspan="2"> <td rowspan="2">
<img src="images/slow.svg" style="height: 1.5em;" alt="QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow]"> <img src="images/slow.svg" style="height: 2.5em;" alt="QBT_TR(Alternative speed limits)QBT_TR[CONTEXT=MainWindow]">
</td> </td>
<td><label for="alt_up_limit_value">QBT_TR(Upload:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="alt_up_limit_value">QBT_TR(Upload:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="alt_up_limit_value" style="width: 4em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="alt_up_limit_value" style="width: 6em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
<tr> <tr>
<td><label for="alt_dl_limit_value">QBT_TR(Download:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="alt_dl_limit_value">QBT_TR(Download:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="alt_dl_limit_value" style="width: 4em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="alt_dl_limit_value" style="width: 6em;" min="0">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -615,9 +615,9 @@
</legend> </legend>
<div class="formRow"> <div class="formRow">
<label id="scheduleFromHourLabel">QBT_TR(From:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="scheduleFromHourLabel">QBT_TR(From:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="schedule_from_hour" aria-labelledby="scheduleFromHourLabel" style="width: 1.5em;">:<input type="text" id="schedule_from_min" aria-labelledby="scheduleFromHourLabel" style="width: 1.5em;"> <input type="text" id="schedule_from_hour" aria-labelledby="scheduleFromHourLabel" style="width: 3.6em;">:<input type="text" id="schedule_from_min" aria-labelledby="scheduleFromHourLabel" style="width: 3.6em;">
<label id="scheduleToHourLabel">QBT_TR(To:)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="scheduleToHourLabel">QBT_TR(To:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="schedule_to_hour" aria-labelledby="scheduleToHourLabel" style="width: 1.5em;">:<input type="text" id="schedule_to_min" aria-labelledby="scheduleToHourLabel" style="width: 1.5em;"> <input type="text" id="schedule_to_hour" aria-labelledby="scheduleToHourLabel" style="width: 3.6em;">:<input type="text" id="schedule_to_min" aria-labelledby="scheduleToHourLabel" style="width: 3.6em;">
</div> </div>
<div class="formRow"> <div class="formRow">
<label for="schedule_freq_select">QBT_TR(When:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="schedule_freq_select">QBT_TR(When:)QBT_TR[CONTEXT=OptionsDialog]</label>
@ -685,7 +685,7 @@
<div class="formRow"> <div class="formRow">
<label for="maxActiveCheckingTorrents">QBT_TR(Max active checking torrents:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="maxActiveCheckingTorrents">QBT_TR(Max active checking torrents:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="number" id="maxActiveCheckingTorrents" style="width: 4em;" min="-1"> <input type="number" id="maxActiveCheckingTorrents" style="width: 6em;" min="-1">
</div> </div>
<fieldset class="settings"> <fieldset class="settings">
@ -700,7 +700,7 @@
<label for="max_active_dl_value">QBT_TR(Maximum active downloads:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="max_active_dl_value">QBT_TR(Maximum active downloads:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_active_dl_value" style="width: 4em;"> <input type="text" id="max_active_dl_value" style="width: 6em;">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -708,7 +708,7 @@
<label for="max_active_up_value">QBT_TR(Maximum active uploads:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="max_active_up_value">QBT_TR(Maximum active uploads:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_active_up_value" style="width: 4em;"> <input type="text" id="max_active_up_value" style="width: 6em;">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -716,7 +716,7 @@
<label for="max_active_to_value">QBT_TR(Maximum active torrents:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="max_active_to_value">QBT_TR(Maximum active torrents:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_active_to_value" style="width: 4em;"> <input type="text" id="max_active_to_value" style="width: 6em;">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -733,7 +733,7 @@
<label for="dl_rate_threshold">QBT_TR(Download rate threshold:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="dl_rate_threshold">QBT_TR(Download rate threshold:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="dl_rate_threshold" style="width: 4em;">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="dl_rate_threshold" style="width: 6em;">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -741,7 +741,7 @@
<label for="ul_rate_threshold">QBT_TR(Upload rate threshold:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="ul_rate_threshold">QBT_TR(Upload rate threshold:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="ul_rate_threshold" style="width: 4em;">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="ul_rate_threshold" style="width: 6em;">&nbsp;&nbsp;QBT_TR(KiB/s)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -749,7 +749,7 @@
<label for="torrent_inactive_timer">QBT_TR(Torrent inactivity timer:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="torrent_inactive_timer">QBT_TR(Torrent inactivity timer:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="torrent_inactive_timer" style="width: 4em;">&nbsp;&nbsp;QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="torrent_inactive_timer" style="width: 6em;">&nbsp;&nbsp;QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -767,7 +767,7 @@
<label id="maxRatioLabel" for="max_ratio_checkbox">QBT_TR(When ratio reaches)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxRatioLabel" for="max_ratio_checkbox">QBT_TR(When ratio reaches)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_ratio_value" style="width: 4em;" aria-labelledby="maxRatioLabel"> <input type="text" id="max_ratio_value" style="width: 6em;" aria-labelledby="maxRatioLabel">
</td> </td>
</tr> </tr>
<tr> <tr>
@ -776,7 +776,7 @@
<label id="maxSeedingTimeLabel" for="max_seeding_time_checkbox">QBT_TR(When total seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxSeedingTimeLabel" for="max_seeding_time_checkbox">QBT_TR(When total seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_seeding_time_value" style="width: 4em;" aria-labelledby="maxSeedingTimeLabel">QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="max_seeding_time_value" style="width: 6em;" aria-labelledby="maxSeedingTimeLabel">QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -785,7 +785,7 @@
<label id="maxInactiveSeedingTimeLabel" for="max_inactive_seeding_time_checkbox">QBT_TR(When inactive seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]</label> <label id="maxInactiveSeedingTimeLabel" for="max_inactive_seeding_time_checkbox">QBT_TR(When inactive seeding time reaches)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="max_inactive_seeding_time_value" style="width: 4em;" aria-labelledby="maxInactiveSeedingTimeLabel">QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="max_inactive_seeding_time_value" style="width: 6em;" aria-labelledby="maxInactiveSeedingTimeLabel">QBT_TR(minutes)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -826,7 +826,7 @@
<label for="feed_refresh_interval">QBT_TR(Feeds refresh interval:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="feed_refresh_interval">QBT_TR(Feeds refresh interval:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="feed_refresh_interval" style="width: 4em;">&nbsp;&nbsp;QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="feed_refresh_interval" style="width: 6em;">&nbsp;&nbsp;QBT_TR( min)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -834,7 +834,7 @@
<label for="feedFetchDelay">QBT_TR(Same host request delay:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="feedFetchDelay">QBT_TR(Same host request delay:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="feedFetchDelay" style="width: 4em;">&nbsp;&nbsp;QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog] <input type="text" id="feedFetchDelay" style="width: 6em;">&nbsp;&nbsp;QBT_TR( sec)QBT_TR[CONTEXT=OptionsDialog]
</td> </td>
</tr> </tr>
<tr> <tr>
@ -842,7 +842,7 @@
<label for="maximum_article_number">QBT_TR(Maximum number of articles per feed:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="maximum_article_number">QBT_TR(Maximum number of articles per feed:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td> </td>
<td> <td>
<input type="text" id="maximum_article_number" style="width: 4em;"> <input type="text" id="maximum_article_number" style="width: 6em;">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -882,7 +882,7 @@
<td> <td>
<input type="text" id="webui_address_value"> <input type="text" id="webui_address_value">
<label for="webui_port_value" style="margin-left: 10px;">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label> <label for="webui_port_value" style="margin-left: 10px;">QBT_TR(Port:)QBT_TR[CONTEXT=OptionsDialog]</label>
<input type="text" id="webui_port_value" style="width: 4em;"> <input type="text" id="webui_port_value" style="width: 6em;">
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -956,11 +956,11 @@
<tbody> <tbody>
<tr> <tr>
<td><label for="webUIMaxAuthFailCountInput">QBT_TR(Ban client after consecutive failures:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="webUIMaxAuthFailCountInput">QBT_TR(Ban client after consecutive failures:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="webUIMaxAuthFailCountInput" style="width: 4em;" min="0"></td> <td><input type="number" id="webUIMaxAuthFailCountInput" style="width: 6em;" min="0"></td>
</tr> </tr>
<tr> <tr>
<td style="text-align: right;"><label for="webUIBanDurationInput">QBT_TR(ban for:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td style="text-align: right;"><label for="webUIBanDurationInput">QBT_TR(ban for:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="webUIBanDurationInput" style="width: 4em;" min="1">QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="webUIBanDurationInput" style="width: 6em;" min="1">QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -968,7 +968,7 @@
<tbody> <tbody>
<tr> <tr>
<td><label for="webUISessionTimeoutInput">QBT_TR(Session timeout:)QBT_TR[CONTEXT=OptionsDialog]</label></td> <td><label for="webUISessionTimeoutInput">QBT_TR(Session timeout:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
<td><input type="number" id="webUISessionTimeoutInput" style="width: 4em;" min="0">&nbsp;&nbsp;QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]</td> <td><input type="number" id="webUISessionTimeoutInput" style="width: 6em;" min="0">&nbsp;&nbsp;QBT_TR(seconds)QBT_TR[CONTEXT=OptionsDialog]</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View file

@ -1,5 +1,5 @@
<div id="propGeneral" class="propertiesTabContent invisible unselectable"> <div id="propGeneral" class="propertiesTabContent invisible unselectable">
<table style="width: 100%; padding: 0 3px"> <table style="width: 100%; padding: 3px 0 3px 2px;">
<tbody> <tbody>
<tr> <tr>
<td style="text-align: right; white-space: nowrap">QBT_TR(Progress:)QBT_TR[CONTEXT=PropertiesWidget]</td> <td style="text-align: right; white-space: nowrap">QBT_TR(Progress:)QBT_TR[CONTEXT=PropertiesWidget]</td>

View file

@ -73,7 +73,7 @@
} }
#rssButtonBar button { #rssButtonBar button {
padding: 4px 6px; padding: 3px 6px;
} }
#rssButtonBar button img { #rssButtonBar button img {
@ -256,8 +256,8 @@
updateAll: refreshAllFeeds updateAll: refreshAllFeeds
}, },
offsets: { offsets: {
x: -16, x: 0,
y: -57 y: -60
} }
}); });
@ -304,8 +304,8 @@
} }
}, },
offsets: { offsets: {
x: -16, x: 0,
y: -57 y: -60
} }
}); });
rssArticleTable.setup("rssArticleTableDiv", "rssArticleFixedHeaderDiv", rssArticleContextMenu); rssArticleTable.setup("rssArticleTableDiv", "rssArticleFixedHeaderDiv", rssArticleContextMenu);

View file

@ -32,7 +32,6 @@
.fullWidth { .fullWidth {
width: 100%; width: 100%;
max-width: none; max-width: none;
box-sizing: border-box;
} }
.noWrap { .noWrap {
@ -76,7 +75,7 @@
} }
#ignoreDaysValue { #ignoreDaysValue {
width: 4em; width: 5em;
} }
#lastMatchDiv { #lastMatchDiv {
@ -412,8 +411,8 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
} }
}, },
offsets: { offsets: {
x: -22, x: 0,
y: -4 y: -3
} }
}); });
rssDownloaderRulesTable.setup("rssDownloaderRuleTableDiv", "rssDownloaderRuleFixedHeaderDiv", rssDownloaderRuleContextMenu); rssDownloaderRulesTable.setup("rssDownloaderRuleTableDiv", "rssDownloaderRuleFixedHeaderDiv", rssDownloaderRuleContextMenu);
@ -567,7 +566,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
resizable: false, resizable: false,
maximizable: false, maximizable: false,
width: 360, width: 360,
height: 80 height: 90
}); });
}; };

View file

@ -7,7 +7,7 @@
background-position: left; background-position: left;
border: 1px solid var(--color-border-default); border: 1px solid var(--color-border-default);
border-radius: 3px; border-radius: 3px;
padding: 4px 2px 4px 25px; padding: 0 0 0 25px;
} }
#categorySelect { #categorySelect {
@ -30,7 +30,8 @@
} }
#searchResultsFilters { #searchResultsFilters {
height: 30px; height: 40px;
padding-top: 10px;
overflow: auto; overflow: auto;
} }
@ -43,7 +44,7 @@
#searchMaxSeedsFilter, #searchMaxSeedsFilter,
#searchMinSizeFilter, #searchMinSizeFilter,
#searchMaxSizeFilter { #searchMaxSizeFilter {
width: 4em; width: 5em;
} }
#manageSearchPlugins { #manageSearchPlugins {
@ -61,7 +62,7 @@
#manageSearchPlugins, #manageSearchPlugins,
#startSearchButton { #startSearchButton {
padding: 4px 6px; padding: 3px 6px;
} }
#startSearchButton img, #startSearchButton img,
@ -87,7 +88,7 @@
<div id="searchResults"> <div id="searchResults">
<div style="overflow: hidden; height: 60px;"> <div style="overflow: hidden; height: 60px;">
<div style="margin: 20px 0 10px 0; height: 30px;"> <div style="display: flex; flex-wrap: wrap; gap: 5px; margin: 20px 0 10px 0; height: 24px;">
<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()"> <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="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> <select id="pluginsSelect" class="searchInputField" aria-label="QBT_TR(Select plugins)QBT_TR[CONTEXT=SearchEngineWidget]" onchange="qBittorrent.Search.pluginSelected()"></select>
@ -130,7 +131,7 @@
<div class="clear"></div> <div class="clear"></div>
</div> </div>
<div id="searchResultsFilters" style="padding-top: 10px; display: none"> <div id="searchResultsFilters" style="display: none;">
<input type="text" id="searchInNameFilter" placeholder="QBT_TR(Filter)QBT_TR[CONTEXT=SearchEngineWidget]" autocorrect="off" autocapitalize="none"> <input type="text" id="searchInNameFilter" placeholder="QBT_TR(Filter)QBT_TR[CONTEXT=SearchEngineWidget]" autocorrect="off" autocapitalize="none">
<span>QBT_TR(Results)QBT_TR[CONTEXT=SearchEngineWidget] (QBT_TR(showing)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsVisible" class="numSearchResults">0</span> QBT_TR(out of)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsTotal" class="numSearchResults">0</span>):</span> <span>QBT_TR(Results)QBT_TR[CONTEXT=SearchEngineWidget] (QBT_TR(showing)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsVisible" class="numSearchResults">0</span> QBT_TR(out of)QBT_TR[CONTEXT=SearchEngineWidget] <span id="numSearchResultsTotal" class="numSearchResults">0</span>):</span>

View file

@ -6,7 +6,7 @@
} }
#searchPluginsContainer button { #searchPluginsContainer button {
padding: 2px; padding: 3px;
} }
#searchPluginsContainer span { #searchPluginsContainer span {
@ -16,7 +16,7 @@
#searchPluginsTable { #searchPluginsTable {
width: 100%; width: 100%;
height: calc(100% - 150px); height: calc(100% - 135px);
} }
#searchPluginsTable .dynamicTable { #searchPluginsTable .dynamicTable {
@ -170,8 +170,8 @@
prevOffsetTop = document.getElementById("searchPlugins").getBoundingClientRect().top; prevOffsetTop = document.getElementById("searchPlugins").getBoundingClientRect().top;
return { return {
x: -(prevOffsetLeft + 20), x: -prevOffsetLeft,
y: -(prevOffsetTop + 2) y: -prevOffsetTop
}; };
}; };

View file

@ -105,7 +105,7 @@
} }
}, },
offsets: { offsets: {
x: -15, x: 0,
y: 2 y: 2
}, },
}); });