Vladimir Golovnev
73028f9930
Double check whether database needs to be updated
...
Prevents qBittorrent from being failed to start after torrents database metadata is corrupted by one of the first releases of v4.5.x series.
PR #19668 .
Closes #19622 .
2023-10-01 20:59:27 +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
Vladimir Golovnev
43e9403a4c
Filter out duplicate trackers when replacing
...
PR #19656 .
2023-09-29 07:33:19 +03:00
Vladimir Golovnev
7ab90cfc40
Don't forget to delete worker thread object
...
PR #19655 .
2023-09-29 07:32:09 +03:00
Vladimir Golovnev
5e5c6aa7d8
Don't show outdated tracker message
...
PR #19616 .
Closes #19612 .
2023-09-20 13:12:54 +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
Chocobo1
d8a03cd8d8
Use atomic primitives from standard library
...
QAtomicInteger underlying is using std::atomic structures, so
using std::atomic directly should not be a problem for us.
PR #19507 .
2023-08-28 02:08:40 +08:00
rcarpa
bbac94cc95
Use QThreadPool for torrent creation
...
The change is in preparation for adding the possibility to create
torrent files via the API.
Rework TorrentCreatorThread to be a more lightweight QRunnable class.
The parameters are now defined on construction time and are fixed
throughout the lifecycle of the TorrentCreator. The lifecycle of the
object is not bound to the one of QDialog anymore; it is now handled
by the QThreadPool. This will enable easier queueing of multiple torrent
creation jobs without risk of spawning many threads.
PR #19500 .
2023-08-27 00:27:11 +08: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
Victor Chernyakin
e4313d6651
Use using declarations instead of typedef
...
PR #19458 .
2023-08-14 18:14:36 +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
Chocobo1
502b3d3228
Merge pull request #19427 from Chocobo1/cleanup
...
Remove unused include
2023-08-11 13:49:35 +08:00
Chocobo1
31fe327763
Move to separate headers
...
Hopefully this can speed up compilation times.
https://doc.qt.io/qt-6/qtglobal.html#details
PR #19430 .
2023-08-11 13:47:55 +08:00
Chocobo1
870bcc7a19
Switch to QHash
2023-08-09 20:36:41 +08: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
Vladimir Golovnev
fccdeb4e78
Don't use variable after it is moved
...
PR #19397 .
2023-08-02 15:04:15 +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
d6adebe4c0
Switch to efficient algorithm
2023-07-22 04:11:39 +08:00
Chocobo1
c58aa58cba
Use C++20 designated initializers
2023-07-22 02:25:44 +08:00
Chocobo1
7612d5d0ef
Use default operators generated/synthesized by compiler
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
Vladimir Golovnev
6a3a5fac83
Correctly add new column to existing database
...
PR #19321 .
2023-07-15 20:49:51 +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
Vladimir Golovnev
80c637bf99
Always use the same limits when parse bencoded data
...
PR #19263 .
2023-07-02 11:37:37 +03:00
Chocobo1
715a4f3eb6
Use move construct for large data
2023-07-01 16:28:15 +08: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
Chocobo1
6680fdda18
Fix typos
2023-06-26 16:45:44 +08:00
Vladimir Golovnev
1c654d8f47
Immediately update torrent status on moving files
...
PR #19220 .
2023-06-25 12:45:58 +03:00
luzpaz
deec2ae1b1
Fix various typos
...
PR #19213 .
2023-06-24 16:04:04 +03:00
Vladimir Golovnev
3b948b0130
Drop I2P support with libtorrent 1.2
...
PR #19207 .
Closes #19152 .
2023-06-23 16:24:34 +03:00