Vladimir Golovnev
93470f2080
Use subcategories unconditionally
...
PR #23585 .
2025-12-16 21:56:15 +03:00
Vladimir Golovnev
c45dfb6662
Implement separate (advanced) "Tracker status" filter
...
PR #23452 .
2025-12-03 10:09:35 +03:00
Chocobo1
9ce5463d9d
Avoid container detachments
...
PR #23393 .
2025-10-20 17:20:42 +08:00
anikey
5e11f4dc5e
WebAPI: Add I2P peers to peer list
...
Fixes the second part of #19794 .
PR #23061 .
2025-08-29 20:51:31 +08:00
Mark Yu
8f709b5fbc
WebUI: Implement Share limit action
...
PR #22989 .
Closes #22984 .
2025-07-20 16:39:31 +08:00
ivan
44bb1ac7eb
WebUI: Add support for tracker status filter
2025-05-27 17:12:43 +03:00
Vladimir Golovnev (Glassez)
e309b17732
WebAPI: Provide announce stats within "sync" data
2025-05-27 11:28:13 +03:00
Vladimir Golovnev
732b2bcbdb
Provide asynchronous results via QFuture
...
Makes asynchronous logic to look more straightforward.
Allows caller to choose blocking or non-blocking way of obtaining asynchronous results via the same interface.
PR #22598 .
2025-04-27 16:24:07 +03: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
Thomas Piccirello
f89c4c32ed
Display External IP Address in status bar
...
This change displays the last detected IPv4 and/or IPv6 address(es) in the GUI and WebUI's status bar. This does not yet handle systems with multiple addresses of the same type (e.g. multiple IPv6 addresses).
PR #21383 .
---------
Co-authored-by: Odin Vex <44311901+OdinVex@users.noreply.github.com >
2024-11-09 15:58:13 +08:00
Chocobo1
051d7137ea
Use proper macro for unreachable switch cases
...
Those are the `default` cases which are not expected to hit (nor reachable) normally.
When the code is compiled with release mode and it reaches `Q_UNREACHABLE()`, it becomes
undefined behavior. So it rely on the developers to catch the errors in debug mode.
The upside of this is that the `switch` statement will be more optimized than not using it.
This also means the statements after `Q_UNREACHABLE()` isn't important. It allow anything to
preserve the intention of the code.
This macro is preferred over C++23 `std::unreachable` because it will automatically insert a
`Q_ASSERT(false)` with it.
PR #21752 .
2024-11-05 11:55:55 +08:00
Vladimir Golovnev
91b2687032
WebAPI: Prevent producing empty sync data
...
PR #21688 .
2024-10-28 09:40:13 +03:00
Vladimir Golovnev
7f4cb43a33
Fix incorrect sorting by "private" column
...
PR #21041 .
2024-07-15 08:42:02 +03:00
Vladimir Golovnev
5ef2a1df07
Use QList explicitly
...
PR #21016 .
2024-07-04 08:30:39 +03:00
Chocobo1
90383567b2
Revise Tracker related classes
...
And also rename them.
PR #20489 .
2024-04-01 19:17:35 +08:00
thalieht
5d1c249606
Use Start/Stop instead of Resume/Pause
...
PR #20532 .
---------
Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru >
2024-03-25 19:11:04 +03:00
Vladimir Golovnev
7a41192597
Add a class to represent a tag
...
PR #20028 .
Closes #19744 .
2023-12-05 17:01:09 +03:00
Vladimir Golovnev
c88bd7cb3f
Improve free disk space checking for WebAPI
...
Use single free disk space checker instance for all the web sessions.
PR #19855 .
Closes #19732 .
2023-11-07 12:44:27 +03:00
Vladimir Golovnev
c051ee9409
Revamp tracker list widget
...
Internally redesign tracker list widget using Qt Model/View architecture.
Make tracker list sortable by any column.
PR #19633 .
Closes #261 .
2023-10-03 08:42:05 +03:00
Chocobo1
e31c3376bd
Use library provided erase_if()
...
`Algorithm::removeIf()` is still valuable as `QHash::removeIf()` predicate require an
iterator or a `std::pair`, which both require more code to unpack the variable and therefore
cumbersome to use.
PR #19353 .
2023-07-24 20:29:02 +08:00
Vladimir Golovnev
10ee1ab7a2
Switch to C++20
...
PR #19336 .
2023-07-21 15:38:49 +03:00
Vladimir Golovnev
dbe79484d2
Drop support of Qt 5
...
Also remove usage of some deprecated stuff.
PR #19338 .
2023-07-20 11:17:27 +03:00
Chocobo1
e6d85a468b
Rename literal operator
...
Qt 6.4 introduced `QString operator""_s()` and the previous `""_qs` is
deprecated since Qt 6.8.
2023-06-18 03:32:44 +08:00
Chocobo1
179a61d75e
Add curly braces
2023-05-07 19:41:55 +08:00
Bartu Özen
b55d4b1733
WebUI: Implement subcategories
...
PR #18740 .
2023-04-02 11:02:22 +03:00
Vladimir Golovnev
d06f78dbbd
Improve sync API performance
...
PR #18394 .
2023-02-10 17:16:46 +03:00
Vladimir Golovnev
9cdf660ddb
Use QThreadPool to invoke free disk space checking jobs
...
Prevent the creation of an excessive number of threads.
PR #18347 .
Closes #18202 .
2023-01-16 14:31:49 +03:00
Vladimir Golovnev
ac3ad17a9e
Ensure thread is stopped before deleting QThread
...
PR #18037 .
2022-12-08 08:37:14 +03:00
Hanabishi
6a560016dd
Implement Peer ID Client column for Peers tab
...
PR #17940 .
2022-11-06 12:21:31 +08:00
Vladimir Golovnev
616057a433
Improve session statistics handling
...
PR #17779 .
2022-09-29 06:49:34 +03:00
Chocobo1
f6e2715f4a
Apply forward declaration
...
Follow up 525692759d .
PR #17621 .
2022-08-28 13:25:38 +08:00
Vladimir Golovnev
7527343629
Handle some torrent conflicts
...
PR #17576 .
2022-08-23 07:47:20 +03:00
luzpaz
8736c9ec4c
Fix various typos
...
Found via `codespell -q 3 -S *.ts,*.desktop,./src/base/3rdparty,./dist/windows/installer-translations -L ba,doas,ist,ro,ths`
PR #17317 .
2022-07-06 13:11:11 +08:00
Vladimir Golovnev
f8a304abdc
Implement base classes for application components
...
PR #17219 .
2022-06-25 15:46:55 +03:00
Vladimir Golovnev
4471a6377e
Have separate API controller instances per session
...
PR #16848 .
2022-04-12 13:39:35 +03:00
Chocobo1
2854630b1c
Use signed integer type for counters
2022-04-03 13:33:55 +08:00
Chocobo1
4ca6de2b54
Revise string literal usage
...
PR #16703 .
2022-03-26 11:53:50 +08:00
Vladimir Golovnev (Glassez)
a4b606c6e9
Fix compilation issues due to inappropriate QString usage
2022-03-21 11:50:32 +03:00
Chocobo1
efc04645b7
Use QString literals
...
It covers src/webui and enables `QT_NO_CAST_FROM_ASCII`.
2022-03-20 13:33:40 +08:00
Vladimir Golovnev
dd1bd8ad10
Implement class for handling filesystem paths
...
PR #15915 .
2022-02-08 06:03:48 +03:00
Chocobo1
d6e0164766
WebAPI: fix wrong key used for categories
...
Regression from 1c0f8b4289 .
Closes #15969 .
PR #15988 .
2022-01-10 13:31:15 +08:00
Vladimir Golovnev (Glassez)
1c0f8b4289
Redesign "Incomplete folder" feature
...
Change "Incomplete/temp folder" term with "download folder".
Allow to set "download folder" per torrent (in manual mode) and per category (in automatic mode).
2022-01-01 20:58:49 +03:00
Vladimir Golovnev (Glassez)
62b50d1475
Make TorrentInfo immutable
2021-12-19 16:16:16 +03:00
Chocobo1
e3fe66d3ec
Store enum type in settings directly
...
Affected settings will be migrated to new keys so nothing should break.
PR #15800 .
2021-12-06 13:53:52 +08:00
Vladimir Golovnev (Glassez)
f022458383
Raise minimum supported Qt version to 5.12
2021-03-13 15:33:58 +03:00
Vladimir Golovnev (Glassez)
561b597031
Improve "info hash" handling
...
Define "torrent ID" concept, which is either a SHA1 hash for torrents of version 1,
or a SHA256 hash (truncated to SHA1 hash length) for torrents of version 2.
Add support for native libtorrent2 info hashes.
2021-03-12 12:43:14 +03:00
Vladimir Golovnev (Glassez)
7a8c05dc7c
Improve tracker entries handling
2021-03-10 19:54:34 +03:00
Vladimir Golovnev (Glassez)
8cfd803222
Drop implicit conversions between InfoHash and QString
2021-03-06 12:35:42 +03:00
Vladimir Golovnev (Glassez)
0b4fef19f6
Remove redundant suffix from TorrentHandle class
...
Originally, it was just a wrapper for libtorrent::torrent_handle class, so it mimicked its name.
It was then transformed into a more complex aggregate, but the name was retained (just by inertia).
Unlike libtorrent::torrent_handle class in whose name "handle" means the pattern used,
it does not matter for qBittorrent classes and just eats up space in the source code.
2021-01-06 16:28:17 +03:00
Chocobo1
90a1ea4281
Don't use removed stat metric in libtorrent 2.0
...
For now, the metric is not entirely removed due to WebAPI still needs to
access it.
2020-12-24 12:04:14 +08:00