Commit Graph

1945 Commits

Author SHA1 Message Date
Vladimir Golovnev
c3abe4c2a6 Fix startup performance on Qt5
Use more appropriate container (QList) for resume data queue buffer.
QVector in Qt5 has poor performance of the first element taking operation,
which is used to process the resume data queue. In Qt6, QVector is just an
alias for QList, so there was no problem there.

PR #18387.
Fixes #18341.
2023-01-16 14:48:05 +03:00
Vladimir Golovnev
7144454a1f Remove confusing helpers from Session interface
Such helpers do not make practical sense, since they can be trivially implemented on top of the base interface, but at the same time they can lead to undesirable consequences when some calling code requires slightly different behavior than another.

PR #18367.
Fixes #18338.
2023-01-16 14:47:51 +03:00
brvphoenix
c78ac614f5 Unify the way to generate the language list in WebUI and GUI
PR #17994.
Closes #18090.
2022-12-26 10:02:30 +03:00
Vladimir Golovnev
de15907ea7 Re-allow to use icons from system theme
PR #18195.
2022-12-25 16:28:25 +03:00
Vladimir Golovnev
c57896df8f Use "additional trackers" when metadata retrieving
This can help when the DHT nodes are few.

PR #18251.
Closes #18244.
2022-12-22 08:35:54 +03:00
Vladimir Golovnev
0da132b69e Correctly detect drive letter in path
PR #18258.
Closes #18224.
2022-12-22 08:22:06 +03:00
Vladimir Golovnev
691cb4fe2b Don't drop !qB extension when rename incomplete file
PR #18186.
Closes #18181.
2022-12-22 07:15:39 +03:00
Vladimir Golovnev
97a053916b Ensure thread is stopped before deleting QThread
PR #18178.
Backports #18037.
2022-12-10 10:14:45 +03:00
Vladimir Golovnev
24bf8eef6d Use identical conversions of tracker names
PR #18146.
Closes #18070.

The problem is that conversions between std::string and QString is not mutually equivalent (i.e. QString::fromStdString(stdStr).toStdString() == stdStr isn't always true).
2022-12-08 17:02:47 +03:00
sledgehammer999
480e3f02ca Bump to 4.5.0 2022-11-26 23:16:23 +02:00
sledgehammer999
7601163d32 Revert "Destroy object within appropriate thread"
Temporary solution for #18059

This reverts commit 4f2ac34440.
2022-11-26 21:31:13 +02:00
Vladimir Golovnev (Glassez)
f4051034d7 Prevent object from being used after destruction 2022-11-20 15:06:03 +03:00
Vladimir Golovnev
de4c1c9265 Don't miss to store metadata of new torrent
PR #18032.
2022-11-19 07:06:52 +03:00
Vladimir Golovnev
076b3628b1 Save correct resume data when added new torrent
PR #18003.
2022-11-13 21:30:39 +02:00
Vladimir Golovnev
507ced2fa2 Avoid blocking call when changing libtorrent session settings
We don't really need to get currently used settings pack in order to apply changes to session settings. It is enough to apply settings pack that contains only updated settings.

PR #17989.
2022-11-13 21:30:37 +02:00
Chocobo1
e62f9ef56a Move increment out of loop 2022-11-13 21:28:28 +02:00
Chocobo1
3970d91d19 Fix typos 2022-11-13 21:28:27 +02:00
Chocobo1
d884ec1731 Add port forwarding option for embedded tracker
Closes #17781.
PR #17981.
2022-11-13 21:28:26 +02:00
Vladimir Golovnev
62b2959cb4 Don't use extra variable to distinguish restored torrents
PR #17984.
2022-11-13 21:28:26 +02:00
Hanabishi
2bdc91c53f Implement Peer ID Client column for Peers tab
PR #17940.
2022-11-13 21:28:25 +02:00
Chocobo1
d829df99aa Revise interface of port forwarder
This eases the usage of port forwarder as the caller code doesn't need
to store previous used port and now can rely on port forwarder doing
all the hard work.

PR #17967.
2022-11-13 21:28:19 +02:00
Vladimir Golovnev
4f2ac34440 Destroy object within appropriate thread
PR #18012.
2022-11-13 08:30:42 +03:00
Vladimir Golovnev
94e9e9fdb2 Delete database file only after it is released
PR #18011.
2022-11-13 08:29:50 +03:00
Chocobo1
3a2e73cc94 Avoid out-of-bounds access
This happens when the `index` is a negative number.
Added `Q_ASSERT()` to catch coding errors at debug run time.

PR #17953.
2022-10-31 12:34:20 +08:00
xavier2k6
3ee0457cfa Raise minimum libtorrent versions to 1.2.18/2.0.8
PR #17954.
2022-10-30 08:30:31 +03:00
Vladimir Golovnev
e19173c1f3 Prevent new torrent from saving resume data twice
PR #17951.
2022-10-30 08:28:51 +03:00
Vladimir Golovnev
4a5d2e2558 Correctly initialize torrent stop condition
PR #17950.
2022-10-30 08:28:13 +03:00
Vladimir Golovnev
c29a6079bf Don't forget to create stop_condition column
PR #17935.
2022-10-26 18:25:52 +03:00
Vladimir Golovnev
bb2caabd61 Correctly destroy startup resume data storage
PR #17930.
2022-10-25 11:37:51 +03:00
Chocobo1
dfdaa706bd Move code around 2022-10-24 00:34:25 +08:00
Chocobo1
1a782a9362 Avoid redundant lookups in port forwarder 2022-10-24 00:34:25 +08:00
Nathan Lewis
f2dd1e6456 Add a "Use proxy for hostname lookup" option
Add a UI option for "Use proxy for hostname lookup" option and plumb
it into libtorrent's settings_pack.proxy_hostnames option.  This is
available for SOCKS5 and HTTP proxies, and defaults to true, which
is the previous functionality.  Hostname lookups can be forced to be
local by unchecking this option, which can aid compatibility with
certain non-compliant proxy servers.

Closes #17902.
PR #17904.

Co-authored-by: Nathan Lewis <saturn@saturn49.dyndns.org>
2022-10-23 15:31:02 +08:00
Vladimir Golovnev
05b7194bf7 Correctly set "stop condition" on force recheck invoked
PR #17915.
Closes #17913.
2022-10-22 17:43:17 +03:00
Maksim Derbasov
597444c527 Make GeoIPDatabase interface safer
PR #17899.
2022-10-21 13:31:37 +08:00
Chocobo1
a325ab8d6e Delay saving session statistics
Pausing the libtorrent session should be scheduled before this.
2022-10-17 13:53:55 +08:00
Chocobo1
c94152c47c Reuse alert dispatcher
Instead of using a specific alert handler in `SessionImpl::saveResumeData()`, reuse the generic
one.
2022-10-17 13:53:54 +08:00
Chocobo1
a44bca3f07 Revise "save resume data" handling on shutdown
When shutting down, instead of waiting for all types of alert from
libtorrent, now it only waits for specific alert types. This potentially
help shorten the shutdown waiting time.
2022-10-17 13:53:27 +08:00
tristanleboss
e028d8085b Add a "Moving" status filter
Because sometime (when your save and download path are on different drives, when your disk drive is super busy, ...) move operations can stack up, I add this "Moving" status filter so you can see in a blink of the eye which torrents are in a move state.

PR #17810.
2022-10-14 13:12:51 +08:00
Vladimir Golovnev
4f0990dc29 Use 'fail if exist' strategy on automatic move
Prevent existing files overwriting when torrent is moved automatically (e.g. when moved from incomplete to final save path).

PR #17855.
2022-10-11 10:05:21 +03:00
Vladimir Golovnev
67357e9964 Allow to set torrent stop condition
PR #17814.

Closes #17792.
Closes #929.

(Actually it should close all issues about lack of ability to stop torrent after metadata downloaded or after files are initially checked.)

Also makes explicit the temporary start of the torrent in the case when recheck of the stopped torrent is performed.
2022-10-09 16:07:16 +03:00
Chocobo1
1f799689ed Support 'file exists' situation
The lt::status_t::file_exist is returned when lt::move_flags_t::fail_if_exist is used, which means the whole move operation failed. So hanlde this condition correctly (even if the fail_if_exist isn't used in the code base currently).

PR #17853.
2022-10-09 13:47:52 +08:00
tristanleboss
a71d7e6557 Add infohash and download path columns
PR #17799.
2022-10-08 11:43:52 +08:00
vlakoff
ad59eb4dfc Revert "Consider brackets within wildcard as regular characters"
The implementation appeared to be broken.

This reverts #16965.
PR #17820.
2022-10-05 12:43:43 +08:00
Vladimir Golovnev
e7370d1a0f Don't pollute move queue by torrents w/o metadata
There's really nothing to move if the torrent still doesn't have metadata.
Additionally, such torrents in the queue can lead to unexpected behavior
when reloading the torrent after metadata is received.

PR #17823.
2022-10-04 19:41:36 +03:00
Vladimir Golovnev
616057a433 Improve session statistics handling
PR #17779.
2022-09-29 06:49:34 +03:00
Vladimir Golovnev
0a4ee60ea0 Avoid blocking call when save resume data
PR #17755.
2022-09-25 16:40:16 +03:00
sledgehammer999
5e4a94e6b6 Bump to 4.5.0beta1 2022-09-18 20:13:29 +03:00
Chocobo1
b28704a6ec Merge pull request #17725 from Chocobo1/downloadsDone
Clean up 'recursive download' related code
2022-09-16 12:07:36 +08:00
Chocobo1
f8a2fbc4c5 Clean up 'recursive download' related code
Don't load .torrent files too early, otherwise qbt might emit a dubious error log message if the
.torrent file is invalid.
2022-09-15 00:15:53 +08:00
Chocobo1
80759f9e69 Reorder operations in 'torrent finished' handler
Avoid redundant data fetch.
Remove debug messages.
2022-09-15 00:12:11 +08:00