Vladimir Golovnev
bab9c15913
Revamp handling of getting resume data from libtorrent
...
PR #20310 .
2024-01-24 15:40:08 +03:00
Vladimir Golovnev
8ec3db1807
Change "metadata received" stop condition behavior
...
PR #20283 .
Closes #20122 .
2024-01-19 20:34:40 +03:00
Vladimir Golovnev
14513d051d
Don't stuck loading on mismatching info-hashes in resume data
...
PR #20262 .
Closes #20251 .
2024-01-13 18:08:16 +03:00
Vladimir Golovnev
f3d45327e1
Apply inactive seeding time limit set on new torrents
...
PR #20231 .
Closes #20224 .
2024-01-05 18:25:29 +03:00
Vladimir Golovnev
9bf7f3b181
Show correctly decoded filename in log
...
PR #20214 .
Closes #20186 .
2024-01-02 16:03:12 +03:00
Chocobo1
073ca4267c
Introduce helper function to join values as string
...
PR #20130 .
2023-12-19 00:08:37 +08:00
Chocobo1
cc563d9f78
Fix incorrect usage of translation functions
...
PR #20107 .
2023-12-10 23:07:29 +08: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
4ba8eaf4b4
Don't forget to store Stop condition
...
PR #20045 .
Closes #20043 .
2023-11-30 08:58:41 +03:00
Vladimir Golovnev
60eaff9fcb
Simplify share ratio limits processing code
...
PR #19971 .
2023-11-21 22:14:27 +03:00
Vladimir Golovnev
ef06be63bf
Remove incorrect assertions
...
PR #19964 .
2023-11-20 20:37:55 +03:00
Vladimir Golovnev
a1c78a0455
Follow the parent category options
...
PR #19957 .
Closes #19941 .
2023-11-20 20:37:17 +03:00
Vladimir Golovnev
2a20764d39
Add option to enable ".unwanted" folder
...
PR #19926 .
2023-11-13 14:25:27 +03:00
Chocobo1
6cfbc02d8f
Expose Mark-of-the-Web setting in Options
2023-11-06 14:09:34 +08:00
Chocobo1
794cce38f3
Move some functions into Utils::OS namespace
...
Also remove `Utils::Misc::getUserIDString()` since there are no use of
it.
2023-11-06 14:09:34 +08:00
Vladimir Golovnev
e216a9cf53
Keep unwanted files in separate folder
...
PR #19842 .
Closes #13531 .
2023-11-05 11:00:06 +03:00
Vladimir Golovnev
4a20a1660e
Correctly handle changing save path of torrent w/o metadata
...
PR #19829 .
Closes #19824 .
2023-11-01 09:22:32 +03:00
Chocobo1
98576dacae
Add support for quarantine on macOS
2023-10-29 17:41:08 +08:00
Vladimir Golovnev
12674d2990
Prevent crash due to race condition when adding magnet link
...
PR #19792 .
2023-10-28 10:41:53 +03:00
Chocobo1
34f7b75f12
Add support for Mark-of-the-Web
...
https://redcanary.com/threat-detection-report/techniques/mark-of-the-web-bypass/
https://mikehadlow.blogspot.com/2011/07/detecting-and-changing-files-internet.html
https://textslashplain.com/2016/04/04/downloads-and-the-mark-of-the-web/
Closes #19648 .
PR #19675 .
2023-10-07 12:28:07 +08: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
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