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
bda18ad29b
Add logging for some alerts
...
Specifically these alerts:
* i2p_alert
* session_error_alert
PR #19662 .
2023-09-30 11:43:44 +08:00
Vladimir Golovnev
16111496ca
Improve handling the case when torrent enters/leaves trackerless state
...
PR #19658 .
2023-09-29 07:34:21 +03:00
Chocobo1
dcba9eda00
Expose 'DHT bootstrap nodes' setting
...
This allows user to select DHT bootstrap nodes. Or even use their own bootstrap nodes.
PR #19594 .
2023-09-14 13:57:34 +08:00
Vladimir Golovnev
7cd2445a49
Improve tracker entries handling
...
PR #19496 .
* Add torrent entry status to represent tracker error
* Add torrent entry status to represent unreachable endpoint
* Display tracker entry next/min announce time
* Reset tracker entries when torrent is stopped
2023-09-07 08:58:13 +03:00
Victor Chernyakin
e045b4678d
Use std::clamp()
instead of various custom implementations
...
PR #19501 .
2023-08-27 21:55:08 +03:00
Vladimir Golovnev
9ab8203c8a
Don't overwrite tracker entry of unrelated protocol
...
PR #19493 .
2023-08-23 12:38:18 +03:00
Vladimir Golovnev
c805606524
Improve tracker entries handling
...
PR #19468 .
* Use QHash to map tracker endpoints
* Don't clear numPeers unexpectedly
* Remove outdated tracker entry endpoints
* Move presentation logic from Core to GUI code
* Show all endpoints per tracker in tree structure
---------
Co-authored-by: Kacper Michajłow <kasper93@gmail.com>
2023-08-21 10:27:19 +03:00
Victor Chernyakin
34d30ed031
Replace Q_UNUSED
with [[maybe_unused]]
attribute
...
PR #19471 .
2023-08-18 07:09:40 +03:00
Victor Chernyakin
f3f4610ba4
Convert Windows header names to lowercase
...
PR #19465 .
2023-08-16 10:29:13 +03:00
Vladimir Golovnev
dcf3e97291
Implement gateway for adding new torrents
...
PR #19355 .
2023-08-14 18:17:56 +03:00
Vladimir Golovnev
a0e41a11de
Display error message when unrecoverable error occurred
...
PR #19462 .
2023-08-14 16:03:57 +03:00
Vladimir Golovnev
cab5edb721
Add more precondition checks when handle async operation result
...
PR #19460 .
2023-08-14 16:02:50 +03:00
Victor Chernyakin
850da9dd83
Replace Q_UNLIKELY with [[unlikely]] attribute
...
PR #19445 .
2023-08-11 08:54:26 +03:00
Vladimir Golovnev
33d767b765
Disable using Qt functions deprecated up to Qt 6.5
...
* Disable using Qt functions deprecated up to Qt 6.5
* Utilize QSet::removeIf()
PR #19419 .
2023-08-08 08:52:13 +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
Chocobo1
c58aa58cba
Use C++20 designated initializers
2023-07-22 02:25:44 +08:00
Vladimir Golovnev
10ee1ab7a2
Switch to C++20
...
PR #19336 .
2023-07-21 15:38:49 +03:00
Vladimir Golovnev
f27f2c20e0
Add unified class to represent parsed torrent metadata
...
* Add unified class to represent parsed torrent metadata
* Unify startup logic of "Add new torrent dialog"
PR #19301 .
2023-07-21 08:40:16 +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
Vladimir Golovnev
7b4b7c2b81
Always honor the configured behavior for merging trackers
...
PR #19305 .
* Always honor the configured behavior for merging trackers
* Clarify merging trackers related options
2023-07-16 20:59:18 +03:00
Christopher
35e18498d9
Add option to stop seeding when torrent has been inactive
...
PR #19294 .
Closes #533 .
Closes #8073 .
Closes #15939 .
2023-07-15 13:14:42 +03:00
Vladimir Golovnev
f99a98306d
Log when duplicate torrents are being added
...
PR #19306 .
Closes #18458 .
2023-07-14 15:33:06 +03:00
Chocobo1
4f6038c350
Merge pull request #19291 from Chocobo1/limits
...
Expose 'bdecode limits' settings
2023-07-11 11:24:09 +08:00
Chocobo1
5a660fc8a9
Expose 'bdecode limits' settings
...
This includes:
* Bdecode depth limit
* Bdecode token limit
2023-07-09 15:36:13 +08:00
stalkerok
488464731d
Change some default settings
...
* Reduce default file pool size to 100
* Reduce default stop tracker timeout to 2 seconds
PR #19171 .
2023-07-06 14:25:53 +03:00
Vladimir Golovnev
4ef9a6444a
Add options to adjust behavior of merging trackers to existing torrent
...
PR #19278 .
Closes #19251 .
2023-07-06 07:55:59 +03:00
Chocobo1
66dfe8545d
Expose 'max torrent file size' setting
2023-07-06 12:45:09 +08:00
Vladimir Golovnev
7ec80263e1
Allow to globally disable the use of proxy
...
PR #19273 .
Closes #19141 .
2023-07-04 09:27:46 +03:00
Chocobo1
8655e48336
Use move construct for shared pointers
2023-07-01 16:28:13 +08:00
Chocobo1
3c139ca333
Fix potential use-after-move
...
The evaluation order for function parameters is unspecified in C++.
https://stackoverflow.com/questions/2934904/order-of-evaluation-in-c-function-parameters
Fix up 1b2ff0f6f8
.
2023-07-01 14:38:50 +08:00
Vladimir Golovnev
1c654d8f47
Immediately update torrent status on moving files
...
PR #19220 .
2023-06-25 12:45:58 +03:00
Vladimir Golovnev
3b948b0130
Drop I2P support with libtorrent 1.2
...
PR #19207 .
Closes #19152 .
2023-06-23 16:24:34 +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
79ca2e145f
Don't read unlimited data from files
...
It now guards against reading infinite files such as `/dev/zero`.
And most readings are bound with a (lax) limit.
As a side effect, more checking are done when reading a file and
overall the reading procedure is more robust.
PR #19095 .
2023-06-14 13:38:19 +08:00
Vort
ff5d02bcf2
Make I2P session options configurable
...
PR #19079 .
Closes #18980 .
2023-06-06 08:35:40 +03:00
Vladimir Golovnev
c10f1f0ad2
Consider explicitly specified parameters when resolving optional ones
...
PR #18955 .
Closes #18951 .
2023-05-11 09:09:57 +03:00
Vladimir Golovnev
58ae98026b
Try to detect system wake-up event
...
PR #18934 .
Closes #17898 .
2023-05-10 15:02:15 +03:00
Vladimir Golovnev (Glassez)
bb959bda8c
Add helpers for suggesting torrent paths
2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
6fa53b5ed8
Override add torrent params in a more comprehensible way
2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
c777ed3299
Correctly use fallback value for "Add to top of queue" option
2023-05-07 16:34:56 +03:00
Chocobo1
e7e5c38384
Remove superfluous header include
2023-05-06 16:48:49 +08:00
Chocobo1
e408973ee6
Add pointer qualifications to auto
-typed variables
2023-05-06 16:35:13 +08:00
Chocobo1
8c9b6e2f2d
Use reference whenever possible
2023-05-06 16:35:13 +08:00
Vladimir Golovnev
d83b2a6131
Make sure ResumeSessionContext is destroyed before start processing
...
PR #18912 .
2023-05-02 09:48:49 +03:00
Vladimir Golovnev
51132c817b
Improve move storage handling
...
PR #18857 .
Closes #18795 .
2023-04-18 08:06:18 +03:00
Chocobo1
77411760a0
Expose 'socket send/receive buffer size' options
...
Closes #18794 .
2023-04-05 18:11:13 +08:00
Vladimir Golovnev
8bcac1bed2
Reduce default file pool size
...
PR #18734 .
2023-03-21 08:39:06 +03:00
Vladimir Golovnev
cdded6cef7
Add (experimental) I2P support
...
PR #18717 .
Closes #16257 .
2023-03-21 08:33:46 +03:00
Chocobo1
a450a7c6e1
Delegate string hashing to standard library
...
Since standard library could have platform dependent specialized hashing functions.
Also the main idea is to let `qHash` handle whatever integer type `std::hash` returns and mix it with `seed` accordingly.
PR #18715 .
2023-03-18 14:09:35 +08:00