Commit Graph

7705 Commits

Author SHA1 Message Date
Couchy
3808b5df16 Avoid allocating large memory when loading a .torrent file
`QIODevice::read(qint64 maxSize)` will allocate full `maxSize` of memory no matter
what the real file size was, this caused users to experience out-of-memory
exception on 32-bit qbt.
Also handle the OOM execption if it still fails.

Closes #9064, #9075, #9130, #9239, #9246, #9279.
2018-08-11 00:48:35 +08:00
Chocobo1
650f585bf3 Remove static keyword overuse 2018-07-23 13:40:25 +08:00
Chocobo1
a70219eea0 Move member variable initialization
Move the initialization from constructor body to member initializer
list.
Remove superfluous initializer.
2018-07-23 13:40:25 +08:00
Chocobo1
517fc39950 Remove unnecessary dynamic allocation
Also remove unneeded `if ()` conditional.
2018-07-23 13:40:25 +08:00
Chocobo1
56766dc08b Avoid binding constant reference to returned object
In such cases, it makes no sense doing so.
2018-07-23 13:40:25 +08:00
Chocobo1
0217d5b4c0 Replace single-character string with character literal
Also remove unnecessary dynamic allocation.
2018-07-21 23:26:15 +08:00
Chocobo1
cb687ba3bd Add options in AddNewTorrentDialog
The new checkboxes are: "Download in sequential order", "Download first
and last pieces first".
2018-07-21 00:36:08 +08:00
Mike Tzou
aed971883d Merge pull request #9192 from Chocobo1/msg
Revise dialog messages
2018-07-18 00:08:00 +08:00
Chocobo1
1b406c97da Revise dialog messages
Using critical dialog is a bit too strong as qbt didn't actually run
into something that fails, so downgrade to warning dialog.
2018-07-17 00:06:16 +08:00
Mike Tzou
59d70c8a96 Merge pull request #9193 from Chocobo1/fix
Simplify code
2018-07-17 00:01:31 +08:00
Mike Tzou
837308deb6 Merge pull request #9185 from Chocobo1/cache
Cache more preference values in WebApplication
2018-07-16 23:53:58 +08:00
Chocobo1
42eac2ee3c Simplify code
This avoids "deferencing null pointer" warning from static analyzers.
2018-07-15 13:30:11 +08:00
Chocobo1
ec7dfee887 Fix typo 2018-07-15 10:19:24 +08:00
Vladimir Golovnev
c7f1f1494e Merge pull request #9187 from glassez/tracker-favicon
Download favicon using appropriate protocol
2018-07-14 12:01:58 +03:00
Vladimir Golovnev
11cd828e8a Merge pull request #9186 from glassez/fix-dm
Apply proxy settings on DownloadManager creation
2018-07-14 12:01:28 +03:00
Chocobo1
e04aae686f Cache more preference values
These values from Preference class are frequently used.
Also group related variables together.
2018-07-14 15:48:18 +08:00
Vladimir Golovnev (Glassez)
f7c252886f Apply proxy settings on DownloadManager creation 2018-07-13 13:18:57 +03:00
Vladimir Golovnev (Glassez)
088273a767 Download favicon using appropriate protocol
Some trackers use UDP protocol but we can't download its favicon
using UDP. Just try to download it using HTTP.
2018-07-13 13:13:53 +03:00
Vladimir Golovnev (Glassez)
cd44ab2fc6 Improve torrent initialization
Don't post "torrent resumed" event when torrent starts in "resumed"
state.
Fix confusing names. Now "resumed torrent" means "unpaused torrent"
only. When we load previously added torrent it is called "restored
torrent".
2018-07-12 21:03:36 +03:00
Vladimir Golovnev (Glassez)
7ebd63a60f Save resume data on torrent change events
Closes #9174.
2018-07-10 17:45:09 +03:00
sledgehammer999
de8050701d Revert email address changes in copyright notices 2018-07-10 00:37:44 +03:00
tjjh89017
670a8e27af Add async io threads option to AdvancedSettings 2018-07-08 22:58:35 +08:00
Chocobo1
d61435e4bf Allow save resume interval to be disabled
Also raise the allowable upper limit
2018-07-05 13:22:20 +08:00
Chocobo1
6a16fc1ca2 Prolong resume data save interval 2018-07-05 13:22:13 +08:00
Chocobo1
a0348c46fc Remove unnecessary resources inclusion 2018-07-05 02:34:04 +08:00
thalieht
456270bbb1 Delete several unused #include 2018-07-03 08:38:32 +03:00
thalieht
eb508d67ef Fix coding style 2018-07-03 08:38:32 +03:00
thalieht
6d4434ad66 Convert the names used in ui and c++ files from snake_case to camelCase 2018-07-03 08:38:32 +03:00
Mike Tzou
ca68b86550 Merge pull request #9141 from Chocobo1/delay
Omit removing python cache artifacts on qbt start
2018-07-03 13:07:31 +08:00
Mike Tzou
97b3761dbf Merge pull request #9094 from Chocobo1/recursive
Fix crash in Recursive Download dialog
2018-07-02 21:25:47 +08:00
Vladimir Golovnev
b0afa33e22 Merge pull request #9125 from glassez/downloader
Implement "Sequential downloading" feature. Closes #6835
2018-07-02 15:24:58 +03:00
Chocobo1
2528c6e39a Fix python version detection
Closes #9146.
2018-07-02 00:57:08 +08:00
Chocobo1
8c32302377 Clear python cache conditionally
Clear the cache artifacts on plugin install and plugin uninstall events.
2018-07-01 20:57:39 +08:00
Vladimir Golovnev (Glassez)
d78414307e Make TorrentInfo loading behavior uniform 2018-06-29 15:48:36 +03:00
Vladimir Golovnev (Glassez)
112a9bcfa2 Use new DownloadManager interface 2018-06-29 15:48:17 +03:00
Vladimir Golovnev (Glassez)
8d438e159c Implement "Sequential downloading" feature
Closes #6835.
2018-06-29 15:48:02 +03:00
Vladimir Golovnev (Glassez)
a9a6b74416 Implement DownloadRequest helper 2018-06-29 12:18:56 +03:00
Chocobo1
77b71e392e Refactor function
In SearchPluginManager::updateNova(), omit removing __pycache__ folder and pyc
files, those files will be recreated anyway.
Add const to variables
2018-06-28 17:21:13 +08:00
Chocobo1
f951bf678d Rename function 2018-06-28 16:13:52 +08:00
Chocobo1
5c50c5b24d Cache SearchPluginManager::engineLocation() result
Also the folder is only created on first usage.
2018-06-28 16:06:16 +08:00
Chocobo1
361afb401b Replace less-efficient QProcess::setEnvironment
Also small refactor
2018-06-28 15:56:39 +08:00
Chocobo1
ad5c88be3d Simplify function 2018-06-28 15:50:50 +08:00
Chocobo1
6bf3f1d0b8 Add checkbox for recursive download dialog
Also group similar options together.
2018-06-26 23:26:45 +08:00
Chocobo1
78d7cc0570 Work around crash when procesing recursive download
The messagebox is modal and exec() it makes it generates a new local
event loop, however the new local event loop will continue to process
libtorrent events (in Session::readAlerts()), at the time exec()
returns, the original libt::alert pointers are lost and resume
processing alerts will cause the crash.
One solution is to make the messagebox use show() and avoid exec().

Closes #9086.
2018-06-26 23:26:23 +08:00
Chocobo1
3e6c8a05dd Reduce queries to python version
Instead of doing at least 2 queries for python infos, now requires only
1 query (in ideal condition), and the result is cached.
2018-06-24 19:41:44 +08:00
Chocobo1
51e82762c5 Move related functions to Utils::Python 2018-06-24 06:21:15 +08:00
Goshik
1daadfc4ec Create non-existing path in setLocationAction()
When using qbittorrent-nox it is not always possible to manually create
the target path for torrent moving. This commit allows automatic path
creation. It also allows to display error messages in the
'Set location' window.
2018-06-19 14:10:11 +03:00
Mike Tzou
8f6e066332 Merge pull request #9092 from hannsen/patch-1
PEP 8 compliant version comments in search plugins
2018-06-18 00:56:28 +08:00
Mike Tzou
40f4223d02 Merge pull request #9083 from Chocobo1/qrc
Move files to where it belongs
2018-06-18 00:51:19 +08:00
Vladimir Golovnev
7d9cc04c88 Merge pull request #9090 from thalieht/renamefiles
Rename files and classes to match them
2018-06-16 13:08:38 +03:00