Chocobo1
926d51839f
Update function signature for Qt6 qHash()
...
Since the `qhash()` signature has changed in Qt6.
2022-03-13 16:05:11 +08:00
Chocobo1
8de966ea88
Merge pull request #16585 from Chocobo1/qstring
...
Use QString literals
2022-03-12 12:49:08 +08:00
Chocobo1
85b0a40a0e
Merge pull request #16587 from jagannatharjun/tracker-filter
...
Optimize torrent filters in GUI
2022-03-12 12:48:49 +08:00
Aleksandr Cupacenko
1b53c590f2
Allow blank lines in multipart form-data input
...
Fixes #11298 .
PR #16579 .
2022-03-11 13:40:22 +08:00
Chocobo1
f0dd7b7dae
Use QString literals
...
This patch covers src/app and src/base folders.
Follow up of ab64ee872b
.
2022-03-11 00:11:30 +08:00
Chocobo1
9f32e6e50d
Fix wrong parentheses
...
Fix up 294ea17222
.
2022-03-08 13:58:02 +08:00
An0n
801cfdbc24
Allow setting the number of maximum active checking torrents
...
This is to allow re-checking of multiple torrents simultaneously. This will benefit users who
have multiple disks or SSD.
Closes #15296 .
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2022-03-08 13:24:12 +08:00
Prince Gupta
ad6e2b4b94
Create hash string of Digest on demand
...
most of the time hash string is not needed and InfoHash is often used as
temporaries for torrent searching in handling of torrent alerts. This
improves the creation time of Infohash
2022-03-08 01:14:36 +05:30
Prince Gupta
30319e51e5
Improve Status Filter
...
replaces quadratic update operation with linear
2022-03-08 01:12:06 +05:30
Chocobo1
294ea17222
Provide upstream documentation link for performance warning
2022-03-07 13:26:37 +08:00
Chocobo1
fad954df18
Add option for enable/disable performance warnings from libtorrent
2022-03-06 21:05:17 +08:00
Prince Gupta
cd9ed1706d
Improve torrent event handling in TrackerFiltersList
2022-03-06 12:04:01 +05:30
Vladimir Golovnev (Glassez)
cbc0ef860b
Prevent loading resume data with inconsistent ID
2022-03-04 09:22:56 +03:00
Chocobo1
ab64ee872b
Use QString literals
...
The plan is to define `QT_NO_CAST_FROM_ASCII` eventually.
PR #16561 .
2022-03-04 13:25:22 +08:00
Vladimir Golovnev
213b18e33b
Merge pull request #16531 from glassez/save-path
...
Correctly handle changing of global save path
2022-03-01 19:59:35 +03:00
Chocobo1
ac97ed685f
Add tuning options related to performance warnings
...
Related: #16462 .
PR #16538 .
2022-03-01 12:44:48 +08:00
Vladimir Golovnev (Glassez)
c5ff9b353c
Allow to disable Automatic mode when "temp" path changed
2022-02-28 09:41:44 +03:00
Vladimir Golovnev (Glassez)
04c1988665
Correctly handle changing of global save path
2022-02-28 09:04:37 +03:00
Chocobo1
a21bff1dbd
Merge pull request #16483 from Chocobo1/preference1
...
Convert to QString literals
2022-02-22 14:15:49 +08:00
Chocobo1
14fc3dc9b3
Suppress conversion warning
2022-02-21 13:58:51 +08:00
Chocobo1
5cb295341c
Convert to QString literals
2022-02-21 13:58:51 +08:00
Chocobo1
b854c3b00e
Unify log messages format
...
This improves readability and may allow users to match log message with
better accuracy.
Now log message is consisted of 2 parts:
The first part is a short sentence describing the event. It should avoid
writing out the specifics of the event as it will be described in the
next part of the message. The sentence should use correct tense of the
event.
The second part consist of `Name: Value` pairs which will provide
sufficient info for the event.
Note that none of the message parts is mandatory, one of them can be
omitted when the resulting log message is clear enough.
PR #16437 .
2022-02-21 13:07:04 +08:00
Vladimir Golovnev
2d3ff6a97c
Use std::optional to represent "any value" filters
...
PR #16460 .
2022-02-20 13:17:34 +03:00
Vladimir Golovnev
70ec183fca
Merge pull request #16444 from glassez/path-has-ext
...
Improve performance of checking path extension
2022-02-19 07:08:54 +03:00
Vladimir Golovnev (Glassez)
1e45b7f50b
Add fast way of removing suggested extension
2022-02-18 11:37:51 +03:00
Vladimir Golovnev (Glassez)
293479a1f2
Improve performance of checking path extension
2022-02-18 11:37:51 +03:00
Chocobo1
852a14992c
Add literal operator to efficiently construct QString
in Qt5
...
PR #16448 .
2022-02-18 11:28:04 +08:00
Vladimir Golovnev
b3f5bf1583
Try to recover missing categories
...
PR #16430 .
2022-02-16 10:27:36 +03:00
Chocobo1
bc94de5626
Merge pull request #16428 from Chocobo1/path
...
Improve Path constructor
2022-02-14 14:02:50 +08:00
Vladimir Golovnev
c3a64b3d6c
Cache file priorities
...
Speedup access to file priorities by avoiding extra blocking call to libtorrent thread.
Improve the Torrent interface by hiding the asynchrony of file priority changes behind the scenes.
PR #16425 .
2022-02-13 08:07:30 +03:00
Chocobo1
70eed10a34
Fix wrong size
...
Fix up cf96e6c642
.
2022-02-12 16:54:38 +08:00
Chocobo1
56c3983885
Improve Path
constructor performance
2022-02-12 16:54:38 +08:00
Vladimir Golovnev
78eaa49cd6
Correctly register PathList alias
...
PR #16411 .
2022-02-10 08:12:33 +03:00
Chocobo1
2668a42f0c
Merge pull request #16408 from Chocobo1/vararray
...
Use QVarLengthArray whenever applicable
2022-02-10 12:44:41 +08:00
Vladimir Golovnev
4a7f1116ac
Improve tracker status handling
...
PR #16383 .
2022-02-09 18:23:41 +03:00
Chocobo1
610009fb7f
Make Path::operator== a free function
2022-02-09 19:00:27 +08:00
Chocobo1
4cb075b168
Use "table look-up" method for reversing byte
...
This method takes constant time and is less prone to (CPU) pipeline stalling due to less
computation. Also it is slightly faster than the previous method.
2022-02-09 19:00:27 +08:00
Chocobo1
cf96e6c642
Use QVarLengthArray whenever applicable
2022-02-09 19:00:24 +08:00
Vladimir Golovnev
dd1bd8ad10
Implement class for handling filesystem paths
...
PR #15915 .
2022-02-08 06:03:48 +03:00
Vladimir Golovnev
facfa26eed
Allow to use Category paths in "Manual" mode
...
If the option is enabled any relative save path will be resolved against an appropriate Category path instead of Global default one.
PR #16330 .
2022-02-02 09:24:09 +03:00
Prince Gupta
0012a3ede7
Optimize completed files handling
...
PR #16329 .
Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru>
2022-02-01 08:29:54 +03:00
Prince Gupta
414361a3db
Improve tracker error handling
...
* Improve tracker error handling
* Fix typo in function name
PR #16298 .
2022-01-30 08:56:31 +03:00
Prince Gupta
1d4071d6d8
Don't rename file because of difference in path separator
...
PR #16317 .
2022-01-30 08:54:37 +03:00
Chocobo1
7a910a8cc1
Merge pull request #16256 from Chocobo1/bitarray
...
Speed up bitfields conversion
2022-01-28 11:59:57 +08:00
Vladimir Golovnev
ca9e5e8531
Change torrent moving state when it is cancelled
...
PR #16267 .
2022-01-27 07:40:17 +03:00
Chocobo1
aafee60033
Allocate memory on stack whenever feasible
...
The fast path gives another 20% speed up than the slower path.
2022-01-27 03:36:06 +08:00
Vladimir Golovnev (Glassez)
7a539d9890
Store hybrid torrents using "torrent ID" as basename
2022-01-25 11:39:32 +03:00
Vladimir Golovnev (Glassez)
c40408b337
Make Digest32 implicitly shared class
2022-01-25 10:18:23 +03:00
Chocobo1
4e2daf117b
Speed up bitfields conversion
...
The old code took 3~5 times longer than the newer version.
2022-01-25 12:19:50 +08:00
Chocobo1
9553afc3c2
Merge pull request #16247 from Chocobo1/count_bits
...
Speed up piece relevance calculation
2022-01-25 12:11:36 +08:00
Vladimir Golovnev
26352c9eb4
Cache pieces info
...
PR #16238 .
2022-01-25 06:05:16 +03:00
Chocobo1
53992bf0d5
Initialize class variable in initializer list
2022-01-24 13:47:34 +08:00
Chocobo1
ff99e5ac9a
Speed up piece relevance calculation
...
For ~800 pieces, this roughly cuts the run time (of this function) in
half.
2022-01-24 12:04:26 +08:00
Vladimir Golovnev
4d54fb675f
Correctly handle received metadata
...
It did not work correctly, since it assumed that 'lt::torrent_plugin' is created at an earlier stage and is able to track all changes in the torrent state, but in reality it turned out that it was created after the torrent moved to the `downloading_metadata` state, so we had to additionally handle it in the constructor.
PR #16121 .
2022-01-16 16:06:15 +03:00
Chocobo1
e93de54eb5
Merge pull request #16099 from Chocobo1/errormsg
...
Revise error message
2022-01-15 12:01:55 +08:00
Vladimir Golovnev
43441d8291
Handle missing torrent alerts
...
PR #16085 .
2022-01-14 15:18:18 +03:00
Chocobo1
5ebbed8160
Revise error message
...
Remove the period mark at the end of error message since
`errc.message()` already contains one.
2022-01-14 14:48:41 +08:00
Vladimir Golovnev
5f623e32c4
Correctly handle XML parsing errors
...
PR #16071 .
2022-01-13 09:36:08 +03:00
Chocobo1
e4a67183bd
Update default value of "Type of service for peers"
...
Upstream change:
3d701c7380
PR #16036 .
2022-01-12 11:53:07 +08:00
Vladimir Golovnev
a3be239a60
Keep "torrent info" alive while generating .torrent file
...
PR #16018 .
2022-01-11 07:29:42 +03:00
Vladimir Golovnev
709a053c7c
Merge pull request #16009 from glassez/dont-move-into-itself
...
Don't try to move storage into its current location
2022-01-11 07:26:22 +03:00
Vladimir Golovnev
d39c6bef4b
Correctly handle Auto TMM in Torrent Files Watcher
...
PR #13690 .
2022-01-11 07:25:30 +03:00
Vladimir Golovnev
84a8158aa2
Correctly track the root folder name change
...
PR #16004 .
2022-01-11 07:24:24 +03:00
Vladimir Golovnev (Glassez)
fbc85bed64
Move torrent immediately when "save path" is changed
2022-01-10 08:18:34 +03:00
Vladimir Golovnev (Glassez)
52b54fe154
Don't try to move storage into its current location
2022-01-09 21:14:49 +03:00
Vladimir Golovnev
f44341a8e2
Handle .!qB extension behind the scenes
...
PR #15920 .
2022-01-08 08:45:50 +03:00
thalieht
d3bdeaab3f
Replace "seeding_duration" with "finished_duration" everywhere
...
Closes #10223 .
PR #13601 .
2022-01-07 15:22:51 +08:00
sledgehammer999
d6fc020ba7
Bump to 4.5.0alpha1
2022-01-06 20:47:06 +02:00
sledgehammer999
ac5a485651
Disambiguate the data type
2022-01-04 01:39:01 +02:00
sledgehammer999
0a1c61d9d3
Merge pull request #15922 from glassez/fix-paths
...
Correctly concatenate path components
2022-01-04 00:17:54 +02:00
Chocobo1
01a0fff4c2
Add missing field initial value
...
Suppresses the following warning:
qBittorrent/src/base/bittorrent/categoryoptions.cpp: In static member function ‘static BitTorrent::CategoryOptions BitTorrent::CategoryOptions::fromJSON(const QJsonObject&)’:
qBittorrent/src/base/bittorrent/categoryoptions.cpp:44:59: warning: missing initializer for member ‘BitTorrent::CategoryOptions::DownloadPathOption::path’ [-Wmissing-field-initializers]
44 | options.downloadPath = {downloadPathValue.toBool()};
2022-01-03 23:42:48 +02:00
Vladimir Golovnev (Glassez)
fdbf8cb0ee
Correctly concatenate path components
2022-01-03 19:44:47 +03:00
Vladimir Golovnev
61504ae3b1
Merge pull request #15793 from glassez/save-path
...
Redesign "Incomplete folder" feature
2022-01-02 22:25:00 +03:00
Vladimir Golovnev (Glassez)
1c0f8b4289
Redesign "Incomplete folder" feature
...
Change "Incomplete/temp folder" term with "download folder".
Allow to set "download folder" per torrent (in manual mode) and per category (in automatic mode).
2022-01-01 20:58:49 +03:00
Chocobo1
63043b4927
Replace min, max, clamp functions with std counterparts
2022-01-01 15:22:07 +08:00
Chocobo1
3ea4c66d41
Replace QPair with std::pair
2022-01-01 15:22:07 +08:00
Chocobo1
781d7fbf1a
Merge pull request #15884 from Chocobo1/migrate
...
Migrate "setting key mappings" to upgrade code
2021-12-25 14:05:52 +08:00
Chocobo1
39f054eef6
Migrate "setting key mappings" to upgrade code
2021-12-24 14:50:06 +08:00
Chocobo1
7a620c794d
Fix garbage message when reporting error
...
PR #15883 .
2021-12-24 12:28:22 +08:00
Vladimir Golovnev
5347897b7d
Merge pull request #15852 from glassez/torrent-info
...
Improve torrent content handling
2021-12-20 08:54:46 +03:00
Vladimir Golovnev (Glassez)
62b50d1475
Make TorrentInfo immutable
2021-12-19 16:16:16 +03:00
Chocobo1
aedd997604
Don't expire connection when there are data in buffer
...
For writing, this ensures expire handler won't be executed in a small
time window, that is after `m_socket->write()` and before
`QIODevice::bytesWritten()` signal.
For reading, this let the socket to have the chance to process the
received data instead of dropping it.
PR #15849 .
2021-12-18 12:28:30 +08:00
Chocobo1
87e1a14a4b
Merge pull request #15831 from Chocobo1/server
...
Improvements for WebAPI server
2021-12-16 13:38:05 +08:00
Chocobo1
ad9d0608d4
Avoid needless string-bytes conversion
...
This saves a few microseconds.
2021-12-14 13:52:34 +08:00
Chocobo1
3c5688c6f6
Reserve enough buffer space according to response content size
2021-12-14 13:52:34 +08:00
Chocobo1
ece92a886a
Restart idle timer on sending network response
2021-12-14 13:52:33 +08:00
Chocobo1
85777ea491
Simplify tray icon related code
2021-12-13 15:56:20 +08:00
Chocobo1
1c52fff1cc
Unify value loading paths
...
The idea is to try load every intermediate value from the base case and
then convert them to their respective type.
2021-12-11 01:45:49 +08:00
Chocobo1
2d48581570
Move main window setting to its own section
2021-12-11 01:45:49 +08:00
Chocobo1
b8a7ecfe69
Introduce versioning on main configuration file
2021-12-11 01:45:49 +08:00
Vladimir Golovnev
3d7ff9765a
Make meaning of "torrent root path" consistent
...
PR #15816 .
2021-12-09 06:12:47 +03:00
Chocobo1
28f2def21f
Remove redundant layer of QVariant
in Preferences
class
...
PR #15812 .
2021-12-07 12:17:37 +08:00
Chocobo1
e3fe66d3ec
Store enum type in settings directly
...
Affected settings will be migrated to new keys so nothing should break.
PR #15800 .
2021-12-06 13:53:52 +08:00
OctopusET
ab5605d54b
Use proper string for Korean language
...
PR #15799 .
2021-12-01 12:06:05 +08:00
Chocobo1
19d95ebd10
Add comment for qHash implementation requirements
...
As clazy report false-positive on this.
2021-11-29 01:28:49 +08:00
Chocobo1
c8b66b25e8
Avoid potential container detachment
...
Suppress clazy warning:
warning: Don't call QList::operator[]() on temporary [-Wclazy-detaching-temporary]
2021-11-29 00:31:03 +08:00
Chocobo1
e6f07a6fe4
Use implicit copy-constructor generated by compiler
...
This also suppresses the following clang warning:
warning: definition of implicit copy assignment operator for 'Version<unsigned short, 2>' is deprecated because it has a user-declared copy constructor [-Wdeprecated-copy]
2021-11-29 00:30:17 +08:00
Chocobo1
d78b2a569f
Fix handling when Content-Length field is absent
...
Closes #15754 .
PR #15757 .
2021-11-21 11:48:49 +08:00
Chocobo1
71270260bf
Reformat code
2021-11-08 13:34:21 +08:00
Chocobo1
22abbc1d41
Store Qt6 table header states under a different key
2021-11-08 13:34:21 +08:00