Commit graph

810 commits

Author SHA1 Message Date
sledgehammer999
366239ca7b
Merge pull request #9244 from Couchy/inhibit_sleep_options
Inhibit sleep for running downloads or uploads regardless of network activity
2018-08-12 16:31:01 +03:00
sledgehammer999
a3172590d0
Merge pull request #9255 from thalieht/filterRegex
Add option to use regexps in the transfer list's search filter's context menu
2018-08-12 16:22:00 +03:00
Mike Tzou
f44ff63361
Merge pull request #9278 from Couchy/torrent_file_error_handling
Improve error handling when loading torrent files
2018-08-12 00:21:56 +08:00
sledgehammer999
9dd1049f24
Merge pull request #9274 from sledgehammer999/tray_close_notification
Notify users on 1st time close/minimize to tray
2018-08-11 00:13:41 +03:00
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
Mike Tzou
5f61ffa184
Merge pull request #9303 from Chocobo1/fix
Fix I/O error after fetching magnet metadata
2018-08-11 00:14:06 +08:00
thalieht
2485525896 Add option for regexps in the transferlist search filter's context menu 2018-08-10 12:44:10 +03:00
Chocobo1
63991cb58e
Fix I/O error after fetching magnet metadata
It is caused by an extra path seperator, so removing it fixes it.
Fixup 9612a75faa.
2018-08-10 12:48:04 +08:00
sledgehammer999
fd30bf7423
Notify users on 1st time close/minimize to tray 2018-08-09 16:48:34 +03:00
sledgehammer999
2befd2927a
Revert "Set "close to tray" to false as default"
This reverts commit dc9ec0e408.
2018-08-09 16:37:23 +03:00
Vladimir Golovnev
260b03de92
Merge pull request #9265 from glassez/dont-save-paused
Never save resume data for already paused torrents
2018-08-08 08:45:15 +03:00
Mike Tzou
89081d5365
Merge pull request #9268 from Chocobo1/clean
Put temporary files in qbt own temp folder and cleanups
2018-08-04 01:18:56 +08:00
Lukas Greib
48cd993c92 Inhibit sleep regardless of activity
"Active torrents" is a somewhat unintuitive concept as a basis for
preventing sleep, as torrents can become active or inactive on the
network at any time. This brings some predictability to the inhibit
sleep option, and will inhibit sleep as long as there are unpaused
downloads or uploads, regardless of network activity.

Closes #1696, #4592, #4655, #7019, #7159, #7452
2018-08-03 09:58:15 -04:00
Vladimir Golovnev
d106d908ef
Merge pull request #9273 from thalieht/closetotray
Set "close to tray" to false as default
2018-08-03 11:16:50 +03:00
thalieht
dc9ec0e408 Set "close to tray" to false as default 2018-08-02 17:11:41 +03:00
Chocobo1
9612a75faa
Put temporary files in qbt own temp folder 2018-08-02 17:44:06 +08:00
Vladimir Golovnev (Glassez)
2a6e38aa28
Never save resume data for already paused torrents 2018-08-01 21:29:32 +03:00
Vladimir Golovnev (Glassez)
7716a27d0d
Reorder resume data saving conditionals
Having conditionals which can break saving of torrent resume data
in order from more likely to less likely is more effective.
2018-08-01 21:29:01 +03:00
Chocobo1
9df67b52b8
Add const to function signature 2018-08-01 01:40:50 +08:00
Chocobo1
73b5efbb23
Avoid potentially setting the wrong piece priorities
Updating file priorities is an async operation in libtorrent, when we
just updated it and immediately query it, we might get the
old/wrong values, so we rely on `updatedFilePrio` in this case.
2018-07-30 13:22:05 +08:00
Chocobo1
a68cdc5225
Refactor code
Make the code slightly easier to read.
2018-07-30 02:43:23 +08:00
Chocobo1
9bd8587c68
Add const to function parameters 2018-07-30 02:23:51 +08:00
Chocobo1
650f585bf3
Remove static keyword overuse 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
Mike Tzou
aed971883d
Merge pull request #9192 from Chocobo1/msg
Revise dialog messages
2018-07-18 00:08:00 +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
11cd828e8a
Merge pull request #9186 from glassez/fix-dm
Apply proxy settings on DownloadManager creation
2018-07-14 12:01:28 +03:00
Vladimir Golovnev (Glassez)
f7c252886f
Apply proxy settings on DownloadManager creation 2018-07-13 13:18:57 +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
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
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
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
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
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
thalieht
d34ddb2e3c Change file names and classes names to match them 2018-06-15 20:12:59 +03:00
hannsen
a162550d7f
Properly normalize version string before parsing it
This allows python scripts to be formatted in PEP 8 style.
2018-06-14 13:00:31 +08:00
thalieht
4022799881 Fix coding style 2018-06-12 07:17:05 +03:00
Mike Tzou
da87c2d9ae
Merge pull request #9060 from Chocobo1/preinc
Replace post-increment with pre-increment
2018-06-09 12:40:30 +08:00
Chocobo1
5ddbf9bba9
Replace post-increment with pre-increment
And post-decrement with pre-decrement.
2018-06-08 08:44:06 +08:00
Eugene Shalygin
04aea413ba
Merge pull request #9055 from zeule/cmake
Update CMake build scripts
2018-06-07 21:31:09 +02:00
Eugene Shalygin
fa770871e9 Refactor CMake build scripts
1. Use FeatureSummary module to show configuration results.

2. Invert option()/find_package() relationship: instead of
calling find_package(... REQUIRED) when option is set, rely on optional
find package call and PackageName_FOUND variable.

3. Refactor handling options that result in simple preprocessor defines
(actually copy the snippet from libtorrent) so that everything is done
in a single function call.

4. Populate target properties in order to get rid of
include_directories() calls.
2018-06-05 11:39:11 +02:00
Chocobo1
050b78f378
Send Cache-Control header in WebUI responses
Tune the caching time to be shorter, in case there is a program
update.
Change the cacheability to private, as WebUI resources are not intended
to be cached at proxy.
For uncacheable responses, send out "no-store" explicitly to halt
browser caching.
2018-06-04 20:50:08 +08:00
Chocobo1
09f759355f
Replace QRegExp with QRegularExpression
Revise `static` keyword usage, static is added to frequently used
instances.
2018-05-31 22:56:49 +08:00
Chocobo1
c22e6b4502
Cleanup header include order
Add missing header.
Cleanup license.
2018-05-31 22:56:25 +08:00
Vladimir Golovnev
15153a4446
Merge pull request #8976 from glassez/feed-uid
Don't use RSS feed URLs as base for file names. Closes #8399
2018-05-29 14:30:23 +03:00
Mike Tzou
1d25d95740
Merge pull request #8953 from Chocobo1/constexpr
Add constexpr to various classes
2018-05-29 00:21:52 +08:00
Mike Tzou
4a51f14328
Merge pull request #8967 from Chocobo1/protect
Add options to control WebUI security measures
2018-05-28 14:21:53 +08:00
Vladimir Golovnev (Glassez)
200f4d0f07
Don't use RSS feed URLs as base for file names
RSS feed URLs can be too long and exceed max path limit.
Add RSS feed UIDs and use UIDs as base for file names instead of URLs.
Closes #8399.
2018-05-26 10:37:32 +03:00
sledgehammer999
80e93e23f9
Fix compilation without D-Bus support
Closes #8977
2018-05-24 17:40:23 +03:00
sledgehammer999
7c6a5afbff
Merge pull request #8962 from sledgehammer999/suppress_errors
Suppress multiple I/O errors for the same torrent
2018-05-24 16:35:03 +03:00
Vladimir Golovnev
935bb5bd1c
Merge pull request #8966 from glassez/rss-date
Use RSS feed update time as a fallback. Closes #8959
2018-05-23 17:20:46 +03:00
Chocobo1
e099f6ad33
Add constexpr to IndexInterval class
Add const to IndexRange private members.
Remove redundant inline specifier.
Add missing parentheses.
2018-05-23 14:30:56 +08:00
Chocobo1
9631a9c2ad
Add constexpr to TriStateBool class 2018-05-23 14:30:56 +08:00
Chocobo1
b38925413d
Improve Utils::Version class
Add operator>=() and operator<=().
More methods are suitable to be constexpr.
Remove redundant boundary checking.
2018-05-23 13:47:41 +08:00
Mike Tzou
cd21071c69
Merge pull request #8954 from Chocobo1/firstlast
Relax behavior of "Download first and last piece first"
2018-05-23 13:26:02 +08:00
Mike Tzou
84df2794dc
Merge pull request #8944 from Chocobo1/literal
Make use of QStringLiteral
2018-05-23 13:23:41 +08:00
sledgehammer999
b9546ccd4c
Suppress multiple I/O errors for the same torrent
When a file error happens libtorrent spews a ton of `file_error_alert`
which result in log floods and notification balloon floods. The later
might render the program inaccessible because the constant
notifications prevent the user from interacting with the tray icon.

Closes #8934
2018-05-22 21:29:50 +03:00
Chocobo1
9eeef0be97
Add option to control CSRF protection
Some users are using WebUI with simple port-forwarding from their router,
providing an option to control the protection will save them from setting up an
non-trival web proxy.
Closes #7274.
2018-05-22 12:57:03 +08:00
Vladimir Golovnev (Glassez)
4f8ed09183
Add missing 'return' statement 2018-05-21 21:24:02 +03:00
Chocobo1
bad4d94f77
Add option to control WebUI clickjacking protection
Some users actually want embedding WebUI into their custom build iframe.
Closes #7370.
2018-05-22 01:07:25 +08:00
Vladimir Golovnev (Glassez)
9b80c4f7eb
Use RSS feed update time as a fallback
Some sites omit publication date in its RSS feed articles
that prevents "Ignore Subsequent Matches" to work properly.
Closes #8959.
2018-05-21 15:47:14 +03:00
Vladimir Golovnev
1b14706b08
Merge pull request #8955 from glassez/initial-rename
Rename torrent if content was initially renamed. Closes #8910
2018-05-21 08:04:43 +03:00
Vladimir Golovnev
0aee1cf7d0
Merge pull request #8945 from glassez/rss-rule
Improve code of  RSS auto-downloading rule. Closes #8933
2018-05-21 08:04:12 +03:00
Vladimir Golovnev (Glassez)
a54f57611c
Rename torrent if content was initially renamed
Closes #8910.
2018-05-19 20:21:21 +03:00
Chocobo1
95b19ec303
Relax behavior of "Download first and last piece first"
Now it applies the setting to all files in torrent, no matter whether
the file is previewable or not.

Torrent client shouldn't be smart by deciding which file this
option will be applied to, i.e. it should just follow the user's decision.
2018-05-19 21:48:13 +08:00
Chocobo1
da75a010c7
Refactor code
Add const to variables.
Add Logger message.
Simplify code logic.
2018-05-19 21:48:13 +08:00
Vladimir Golovnev
c29e5c76dc
Merge pull request #8936 from surfernsk/master
Fix open destination folder with Nautilus > 3.28. Closes #8923
2018-05-19 15:06:03 +03:00
Vladimir Golovnev (Glassez)
844f76c2ca
Make "Ignoring days" to behave like other filters
This prevents confusing in GUI when it shows matched RSS
articles which be really ignored by the rule.
2018-05-19 14:52:24 +03:00
Evgeny Lensky
c7601d7a43 Fix open destination folder with Nautilus > 3.28
Closes #8923.
2018-05-19 18:45:26 +07:00
Vladimir Golovnev (Glassez)
256f6954c5
Improve code of RSS auto-downloading rule
Closes #8933.
2018-05-18 13:26:04 +03:00
Chocobo1
ceaf755ac6
Make use of QStringLiteral
Only changed instances that are initialized at program start.
2018-05-18 02:14:49 +08:00
Chocobo1
fcbcf4039b
Use smaller type 2018-05-17 10:57:12 +08:00
Vladimir Golovnev (Glassez)
90f09e7570
Properly fill UploadedFile::filename field
Closes #8928.
2018-05-16 20:13:55 +03:00
Chocobo1
0a49f76c0a
Detect endianness at compile time 2018-05-15 21:02:00 +08:00
sledgehammer999
8a99e29122
Merge pull request #8716 from sledgehammer999/move_progress
Move and recheck progress
2018-05-13 13:02:03 +03:00
sledgehammer999
375b15727d
Show rechecking progress
When having big torrents, the rechecking might take a while to
complete. Users need some sort of feedback that progress is being made.
Also, I changed the float to qreal since that's the return type.
2018-05-13 12:32:17 +03:00
Mike Tzou
2230d96705
Merge pull request #8808 from Chocobo1/save
Improve SettingsStorage behavior
2018-05-13 14:24:14 +08:00
sledgehammer999
e5c73cee4a
Log successful torrent move 2018-05-12 20:49:33 +03:00
sledgehammer999
565ffa7d1e
Add 'Moving' state for torrents being relocated/moved
This is another indication to the user that something is happening
behind the scenes.
Uses the same icon/color as "Checking" status.
Torrents in the `Moving` state are considered as "Active". This should
prevent accidental program exit from the user and inhibit system sleep.
2018-05-12 20:49:33 +03:00