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.
4 years ago
Vladimir Golovnev (Glassez)
b2199202ab
Reload "missing files" torrent instead of re-checking
4 years ago
Vladimir Golovnev (Glassez)
06105072f9
Extract torrent reloading logic into separate method
4 years ago
Chocobo1
d70b893852
Bump project requirement to C++17
4 years ago
Vladimir Golovnev (Glassez)
4453e7fcdd
Improve content file/folder names handling
...
Move files/folders renaming functions to core classes.
Query file/folder for renaming by its current path.
Add ability to rename content folders from WebAPI/WebUI.
4 years ago
thalieht
8db4bde15d
Group several torrent options into one dialog
...
Speed limits, share limits and the new options to disable DHT, PeX, LSD per torrent
4 years ago
thalieht
fbb8f0cbf5
Save fastresume when setting torrent speed limits
4 years ago
Vladimir Golovnev (Glassez)
1d5dc283fe
Allow to add root folder to torrent content
4 years ago
Vladimir Golovnev (Glassez)
77555cd5c2
Improve torrent name handling
4 years ago
Vladimir Golovnev (Glassez)
5f94238d23
Fix bug of torrents don't save "stopped" state
4 years ago
Vladimir Golovnev (Glassez)
4e04cd27c9
Fix received metadata handling
4 years ago
Vladimir Golovnev
2f6ed86c78
Drop support for building with libtorrent < 1.2.11
...
Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
4 years ago
Vladimir Golovnev (Glassez)
9497300a4a
Don't rewrite TorrentInfo instance if it's valid
4 years ago
sledgehammer999
be5cb1683b
Fix status of torrents without metadata
4 years ago
Vladimir Golovnev (Glassez)
c41df9ffbd
Improve coding style
4 years ago
Chocobo1
0be2567d97
Don't use deprecated torrent state "allocating"
...
Closes #13737 .
4 years ago
Vladimir Golovnev (Glassez)
85bd0feee0
Handle torrent "paused" state at application level
4 years ago
Vladimir Golovnev (Glassez)
80ca7796ca
Fix torrent state calculation
4 years ago
Vladimir Golovnev (Glassez)
9f0edde12b
Don't resume "paused" torrents when checking by libtorrent
4 years ago
Chocobo1
71827fe4e6
Move qHash helper for libtorrent types to its own file
4 years ago
Chocobo1
ac3ab2432a
Remove redundant namespace prefix
4 years ago
Chocobo1
f487d32594
Fix initialization order
4 years ago
Vladimir Golovnev (Glassez)
ff36356be0
Improve sequentialDownload/firstLastPiecePriority handling
...
Always store firstLastPiecePriority in resume data.
Don't recalculate firstLastPiecePriority value each time it is accessed.
Always store sequentialDownload in resume data as native libtorrent field.
4 years ago
Vladimir Golovnev (Glassez)
b77568839d
Remove legacy/unused torrent property
4 years ago
Vladimir Golovnev (Glassez)
dc3d23c045
Improve torrent loading code
4 years ago
Vladimir Golovnev (Glassez)
c3104e0210
Update torrent status on move enqueued
5 years ago
Vladimir Golovnev (Glassez)
cdc2b8d79b
Improve "move torrent storage" handling
5 years ago
Chocobo1
40e432b127
Bump requirement to libtorrent 1.2
...
Closes #12258 .
5 years ago
Vladimir Golovnev (Glassez)
6a0a78f3f7
Drop ".unwanted folder" feature
5 years ago
an0n666
6d85ae8f62
Address some issues regarding private torrents
5 years ago
Vladimir Golovnev (Glassez)
f4efa530dc
Create header for common BitTorrent declarations
5 years ago
Vladimir Golovnev (Glassez)
378a863611
Remove unwanted files after torrent removed
5 years ago
Vladimir Golovnev (Glassez)
b6bf09fc0f
Fix calculation of torrent current state
...
Some actions can be performed despite of other states
(e.g. "Errored" torrent can check its files currently)
so the states that relate to such actions should override
other (so-called "static") states.
5 years ago
Vladimir Golovnev (Glassez)
a8c333ff25
Drop "private" subfolders
...
"private" subfolders violate the structure of the project,
since the existence of all other subfolders is based on a
different principle.
In addition, there is no clear line between "private" and
"non private".
5 years ago
Chocobo1
5ca26516eb
Handle empty piece range properly
...
Related: #12677 .
5 years ago
Chocobo1
f6eb341b32
Clean up code
5 years ago
Chocobo1
21581141f6
Support range-based iteration in IndexRange class
5 years ago
thalieht
1bdffe1729
Rename "Create subfolder" to "Keep top-level folder"
...
Closes #12673
5 years ago
Chocobo1
1b80890696
Reduce padding in class
...
TorrentHandleImpl size is reduced from 768 bytes to 736 bytes.
CreateTorrentParams size didn't change.
Size numbers are from x64.
5 years ago
Chocobo1
ac2d063add
Move initialization default values to header
5 years ago
sledgehammer999
a17b1f2b78
Use static_cast for explicit type conversions
5 years ago
Vladimir Golovnev (Glassez)
1132b84548
Split TorrentHandle interface and implementation
5 years ago
Chocobo1
d8401c76f5
Avoid holding encoded resume data in memory
...
Now it the encoded resume data will be streamed to file instead of a
temporary buffer holding the whole of it.
5 years ago
Vladimir Golovnev (Glassez)
0a8c2f75af
Save "resume data" when torrent storage is moved
5 years ago
Chocobo1
24cd7c3611
Avoid unnecessary memory writes
...
Before this change, qbt spent ~1% in these two functions, now it
only spends about ~0.5% in my naive testing.
5 years ago
Vladimir Golovnev (Glassez)
74884d57ec
Let libtorrent decide whether to resume a torrent
5 years ago
Vladimir Golovnev (Glassez)
e4ff206e3c
Move torrent storages one by one
5 years ago
Vladimir Golovnev (Glassez)
dd0cee44c1
Allow to save downloaded metadata as torrent file
5 years ago
an0n666
8423f43209
Do not list not contacted trackers as error
5 years ago
Chocobo1
5de75eff05
Unify singleton pattern in Profile class
...
1. Use unified function names `initInstance()` and `freeInstance()` and
make them public.
2. Add `freeInstance()` to avoid noise from memory leak detectors.
3. Let `instance()`return a pointer directly to avoid unnecessary
indirections when invoking functions.
5 years ago