Commit Graph

11284 Commits

Author SHA1 Message Date
Chocobo1
943e403241 Refine environment variable scope
Previously the proxy environment variable will affect the qbt process globally. Now it is
limited to where it required.
2025-03-28 18:15:53 +08:00
Chocobo1
8c8a0ac54c WebAPI: improve setting preferences behavior
Now the behavior is more intuitive for a few options when the client send in partial settings.
This change is backward compatible.

For example, now it is possible to have only one of `max_ratio_enabled` or `max_ratio` instead
of requiring both.

PR #22460.
2025-03-24 21:04:35 +08:00
Chocobo1
7b4a3fccc6 WebUI: replace deprecated data type
`Hash` is deprecated by mootools.
Also simplify related code.

PR #22458.
2025-03-23 15:01:39 +08:00
Chocobo1
d21653e8cf Don't leak parent file descriptors to child processes
It is unexpected for the child process to inherit parent file descriptors.
Requires Qt >= 6.6 and only affects Linux.

Closes #10312.
PR #22457.
2025-03-23 14:48:21 +08:00
Vladimir Golovnev
627d89813c RSS: Allow to set refresh interval per feed
PR #22448.
2025-03-22 08:43:04 +03:00
Chocobo1
b28c229f85 Add control for 'hostname resolver cache expiry interval'
Also add a few missing units in WebUI.

Closes #22267.
PR #22439.
2025-03-17 19:40:06 +08:00
Chocobo1
8d0870c953 Switch to string view where applicable
PR #22438.
2025-03-17 19:28:38 +08:00
Chocobo1
5a4b3b25d3 Use slice method where applicable
These code segments already have its boundary checked and can thus be faster.

PR #22411.
2025-03-15 14:58:59 +08:00
Vladimir Golovnev
d174bc75e4 Show free disk space in status bar
PR #22407.
Closes #19607.
2025-03-13 14:47:10 +03:00
Vladimir Golovnev
53f919aea8 Add missing includes
PR #22362.
2025-03-05 09:03:00 +03:00
Chocobo1
62a7fd86d6 Improve "split to byte array views" function
1. Utilize string matcher
2. Remove split behavior parameter
   Previously `KeepEmptyParts` behavior doesn't match Qt's
   implementation and since our codebase doesn't really make use of it,
   we can just remove the parameter.
3. Add tests.

PR #22352.
2025-03-03 21:42:03 +08:00
skomerko
8f53fb8178 WebUI: Maintain row highlight after rearranging table columns
This PR fixes a bug where row highlight effect would be lost after reordering columns.

PR #22339.
2025-03-02 17:15:21 +08:00
skomerko
37eb80919c WebUI: Fix bug where the 'Tracker editing' dialog displays incorrect data
In Trackers table, moving the 'URL' column from its default (2) position caused the 'Tracker editing' dialog to display incorrect data.
Steps to reproduce:
1. Move 'URL' column in Trackers table to any position from default
2. Choose tracker URL and click 'Edit tracker URL'

PR #22338.
2025-03-02 17:08:04 +08:00
Vladimir Golovnev
6e1b5ec18b Don't miss to declare some of the color IDs
PR #22330.
Closes #22326.
2025-02-25 18:56:15 +03:00
Vladimir Golovnev
249c80aaaf Improve command line parameters serialization
PR #22319.
Closes #22306.
2025-02-25 09:11:03 +03:00
skomerko
f432c1e615 WebUI: Show 'Edit tracker URL...' only when one tracker is selected
We can only edit one URL through the dialog, so there's no point in showing this context option when more than one tracker is selected in trackers table.

PR #22311.
2025-02-25 13:55:04 +08:00
Chocobo1
41d9ee91a1 WebUI: tell web crawlers do not index the WebUI
PR #22309.
2025-02-23 15:20:22 +08:00
skomerko
ba3d89b674 WebUI: Update sort icon after changing column order
This PR fixes a bug where the sort icon did not update correctly after reordering columns.

Steps to reproduce:
1. Sort a column
2. Move it to a different position
3. The sort icon remains in its original location

PR #22299.
2025-02-23 15:13:17 +08:00
skomerko
1ca33d45ba WebUI: Access element attribute/property natively in log tables
#21007 changed pretty much everything already but I spotted some leftovers and replaced them too.

PR #22294.
2025-02-21 20:54:26 +08:00
Chocobo1
a9b54d94a0 Merge pull request #22282 from skomerko/webui-v51-fixes
WebUI v5.1 fixes
2025-02-21 20:44:42 +08:00
Luke Memet
693390ff27 Fix shift-click selection on macOS
PR #22284.
Closes #16818.
2025-02-19 13:52:51 +03:00
Bark
ad9100ac07 WebAPI: Do not wrap result if offset is invalid
Closes #22158.
PR #22174.
2025-02-18 13:53:30 +08:00
Chocobo1
1043bea896 Refactor power management classes
Mainly it is about moving each platform code to its own file.

PR #22279.
2025-02-18 11:58:43 +08:00
Chocobo1
955688c125 WebUI: replace rounding function from MooTools
The `round()` returning floating point number is not a good idea. This is due to floating point
representation is imprecise and sometimes it cannot faithfully represent a number, for example
`0.09 + 0.01 !== 0.1 `. Therefore, it should be avoided and/or utilize other function
to achieve the goal.

Also, improve `window.qBittorrent.Misc.toFixedPointString()` and add test cases.

PR #22281.
2025-02-17 15:11:55 +08:00
Chocobo1
8da43a4054 Use const accessor
This avoids an unnecessary check to the container internal atomic variable and prevents
potential detachment.

PR #22280.
2025-02-16 15:51:40 +08:00
skomerko
8c02bbb4bc WebUI: Select next available search tab after closing last active tab with X button 2025-02-15 10:59:56 +01:00
skomerko
7e95375cec WebUI: Fix unknown country flag path 2025-02-15 10:59:56 +01:00
skomerko
29201fa016 WebUI: Apply scrollbar style to context menu elements 2025-02-15 10:59:56 +01:00
skomerko
1a3d0f6fab WebUI: Adjust context menu offsets in Search tab & Status filter list 2025-02-15 10:59:56 +01:00
skomerko
f58d6ae984 WebUI: Make context menu target selectors more precise 2025-02-15 10:59:56 +01:00
skomerko
7f0134108a WebUI: Use classlist property to set cell class in trackers table 2025-02-15 10:59:53 +01:00
Chocobo1
d79dc86d00 WebUI: require Subresource Integrity on external links
Also migrate to .mjs format.

PR #22263.
2025-02-12 15:19:07 +08:00
Chocobo1
38070c6eee WebUI: use recommended function for checking NaN values
Also fix a few variable names along the way.

PR #22264.
2025-02-12 15:11:54 +08:00
Vladimir Golovnev
c9eb1fbac8 WebAPI: Don't trim string parameters
PR #22266.
Closes #19485.
Closes #22254.
2025-02-12 09:33:41 +03:00
sledgehammer999
7238bad5a6 Bump to v5.2.0alpha1 2025-02-11 02:04:46 +02:00
sledgehammer999
bd564a99a3 Sync translations from Transifex and run lupdate 2025-02-11 01:56:49 +02:00
Chocobo1
b052ad0923 WebUI: inline redundant function
This also fix share ratio dialog which had been broken in recent cleanup.

PR #22252.
2025-02-09 16:03:01 +08:00
Chocobo1
c65a68251e WebUI: use native function when converting to numbers
PR #22246.
2025-02-08 17:58:48 +08:00
skomerko
93925042dd WebUI: Fix memory leak in context menus
This PR fixes a memory leak in context menus. Previously, for some reason, each menu retained references to its target elements without utilizing them further. Since the targets property was accessible/reachable from the root (window object), these references persisted even after the elements were removed from the DOM, preventing them from being garbage collected.
It's easily reproducible - just add a decent amount of torrents, switch between categories multiple times, then capture heap/detached elements snapshot in the Memory tab (Chrome dev tools). The number of detached elements will continue to increase after each category switch and they won't be cleaned up.
[More context](https://github.com/qbittorrent/qBittorrent/pull/22220/files#r1941137796)

PR #22234.
2025-02-08 17:51:21 +08:00
Chocobo1
e55b59d9ca Use switch statement
PR #22247.
2025-02-08 17:39:10 +08:00
Maxime Thiebaut
4406a3f173 Add announce_port support
The `announce_port` setting permits to overwrite the port passed along to trackers as the `&port=` parameter. If left as the default, the listening port is used. This setting is only meant for very special cases where a seed's listening port differs from the effectively exposed port (e.g., through external NAT-PMP). See https://github.com/arvidn/libtorrent/pull/7771 for an example use-case.

This PR adds the relevant setting alongside the existing `announce_ip` setting.

PR #21692.
2025-02-08 16:12:50 +08:00
skomerko
9c2e698514 WebUI: Replace getElements & getChildren
This PR further reduces Mootools usage.
PR #22220.
2025-02-04 17:08:18 +08:00
Vladimir Golovnev
86387fbe49 Return first tracker as fallback for "current tracker"
PR #22224.
Closes #20415.
2025-02-01 14:58:12 +03:00
Vladimir Golovnev
a018cfa56c Remove stopped torrent from "error" tracker filter
PR #22219.
2025-01-31 06:23:04 +03:00
Vladimir Golovnev
b76054beba Store search history
PR #22208.
2025-01-30 08:59:10 +03:00
Chocobo1
f8536162f2 Use compact format for JSON files
It saves a bit of space on disk and deters novice users from tampering them.

PR #22211.
2025-01-29 15:31:06 +08:00
skomerko
af65ddd012 WebUI: Allow to move state icon to name column in torrents table
PR #22118.
2025-01-28 14:46:09 +08:00
Chocobo1
fe9dc131bc WebUI: don't wrap regex literal in regex constructor
PR #22206.
2025-01-28 00:33:04 +08:00
thalieht
bb4a668ddd Hide zero and infinity values in peer list only when that setting is set to Always
PR #22205.
Closes #21998.
2025-01-27 09:40:44 +03:00
Vladimir Golovnev
3978137534 Store opened search tabs
PR #22163.
Closes #167.
2025-01-26 17:12:50 +03:00