Commit graph

9059 commits

Author SHA1 Message Date
Sepro
2c8230f1ae Fix unable to add multiple peers in WebUI
Wrong delimiter was used.
2020-04-08 18:55:02 +02:00
Chocobo1
e7890fb727
Preallocate output buffer 2020-04-08 13:06:39 +08:00
Chocobo1
d476ae4f14
Fix header inclusion order 2020-04-08 11:58:12 +08:00
Vladimir Golovnev
eb0295197c
Merge pull request #12301 from jozsefsallai/master
Better Python path detection on Windows
2020-04-07 22:29:26 +03:00
Chocobo1
f76d56e224
Suppress unused variable warning on macOS 2020-04-07 16:02:10 +08:00
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.
2020-04-07 16:02:09 +08:00
Vladimir Golovnev
fe81633403
Merge pull request #12436 from glassez/fix-savepath
Save "resume data" when torrent storage is moved
2020-04-07 09:54:51 +03:00
an0n666
026aad2c04 Remove deprecated strict super seeding mode from advanced settings 2020-04-07 09:54:32 +06:00
Mike Tzou
f58f425175
Merge pull request #12430 from rwasef1830/add-outgoing-interfaces
Fix outgoing interfaces not getting assigned in case addr is not null.
2020-04-07 10:10:32 +08:00
Mike Tzou
342eec7f83
Merge pull request #12382 from adem4ik/master
Remove white outline around mascot.png
2020-04-07 09:39:13 +08:00
Raif Atef
bf1c9e34d7 Fix outgoing interface is not getting assigned
Assignment was missing in main branch of condition statement.
Closes https://github.com/qbittorrent/qBittorrent/issues/12421
2020-04-06 14:45:44 +02:00
Vladimir Golovnev (Glassez)
0a8c2f75af
Save "resume data" when torrent storage is moved 2020-04-06 12:16:27 +03:00
Mike Tzou
26941a5b02
Merge pull request #12427 from Chocobo1/io
Avoid inefficient behavior
2020-04-06 12:13:30 +08:00
Mike Tzou
3021b99a50
Merge pull request #12420 from Chocobo1/locale
Sort locale language list
2020-04-06 12:12:50 +08:00
Mike Tzou
cc090c8e37
Merge pull request #12416 from NotTsunami/master
Set disk cache size for older libtorrent versions
2020-04-06 12:12:12 +08:00
Chocobo1
2fa6a7f6f5
Avoid inefficient behavior
Since the class needs to be copy-constructible, there may be many
copies of an instance. So instead of writing to the device on every
destructor call, only flush buffer on the last destructor call.
2020-04-06 01:04:12 +08:00
Chocobo1
5eaedb13e5
Sort locale language list 2020-04-05 19:21:37 +08:00
NotTsunami
e48612a703 Set disk cache size for older libtorrent versions
Libtorrent versions older than 1.2.6 have a bug when setting disk
cache size to auto.

See 6c880159c9.
2020-04-04 21:36:01 -04:00
Chocobo1
09545d4036
Fix wrong logic that disables "prevent sleeping" timer
Also update power management state early so we don't need to wait for
the timer timeout to have the effect.
2020-04-04 12:15:56 +08:00
Chocobo1
3752453522
Clean up coding style 2020-04-04 12:15:54 +08:00
Mike Tzou
a10cee0f2b
Merge pull request #12364 from Chocobo1/fileOutIter
Avoid holding entire file in memory
2020-04-04 11:07:59 +08:00
adem
eddc82d8a5 Remove white outline around mascot.png 2020-04-03 23:26:45 +04:00
Vladimir Golovnev (Glassez)
b759a71c5d
Fix sub-sorting of Transfer list
Closes #12330.
2020-04-03 19:09:41 +03:00
Chocobo1
9f281c2d25
Avoid holding entire file in memory
Previously we need a file buffer that is as large as the file size and
this could be a problem when user has less free memory available or
having very large data. Now with the help of `FileOutputIterator`,
we can have a much smaller, fixed size immediate file buffer and also
the code looks nice with `lt::bencode()`.
2020-04-03 18:27:13 +08:00
Mike Tzou
4b409700b0
Merge pull request #12372 from Chocobo1/webui
Fix mismatch ID
2020-04-03 13:02:15 +08:00
Chocobo1
42d5d63867
Remove redundant type attribute
It already defaults to `text/css` if value is absent (in HTML5).
2020-04-03 00:15:04 +08:00
Chocobo1
e0c841d1e6
Fix mismatch ID 2020-04-03 00:00:32 +08:00
Chocobo1
17f608685d
Improve logging for errors
This commit also allows the strings to be translated.
2020-04-02 11:20:09 +08:00
József Sallai
f9564564f8 Detect python3 executable on Windows 2020-04-02 00:31:41 +03:00
Vladimir Golovnev
96c5af7ae9
Merge pull request #12363 from glassez/fix-unexpected-resume
Fix unexpected torrent resume after app restart
2020-04-01 20:20:44 +03:00
Vladimir Golovnev (Glassez)
8bd9a97f6f
Fix unexpected torrent resume after app restart
Closes #12322.
2020-04-01 18:01:18 +03:00
sledgehammer999
0dfa3a9c6f
Sync translations from Transifex and run lupdate 2020-04-01 17:41:24 +03:00
Vladimir Golovnev
bc159121dc
Merge pull request #12348 from glassez/fix-multi-inst
Prevent multiple instances for the same app config
2020-03-31 18:49:00 +03:00
sledgehammer999
bbe5465ba6
Merge pull request #12317 from sledgehammer999/fix_broken_save_path
Fix broken UNC paths in fastresumes on Windows
2020-03-31 18:34:31 +03:00
Vladimir Golovnev (Glassez)
4e6790dfbb
Prevent multiple instances for the same app config 2020-03-31 17:16:47 +03:00
sledgehammer999
13af503003
Fix broken UNC paths in fastresumes on Windows
See #12245 and #12282
2020-03-30 15:21:15 +03:00
Mike Tzou
59f99bb984
Merge pull request #12282 from Tester798/fix-12245
Fix regression when fastresume contains network path
2020-03-30 12:53:17 +08:00
Mike Tzou
8a8607bf93
Merge pull request #12175 from NotTsunami/upnp
Add UPnP lease duration advanced option
2020-03-29 12:29:10 +08:00
Mike Tzou
4d99328b8f
Merge pull request #12228 from LameLemon/alt-title
Added alt and title tags for WebUI footer
2020-03-29 12:28:35 +08:00
NotTsunami
6b4925d222 Add UPnP lease duration advanced option
This is a new setting added that is pending addition to
libtorrent 1.2.6. This setting is important because some routers do
not support expiration times on port-maps and do not return an error
either, silently failing. The previous default of permanent leases is
retained.
2020-03-28 00:32:32 -04:00
Mike Tzou
82c23e67a4
Merge pull request #12299 from Chocobo1/initialize
Initialize struct variables
2020-03-28 10:53:38 +08:00
Mike Tzou
c6e26f5dd0
Merge pull request #12232 from Chocobo1/warning
Add logging for SOCKS5 proxy errors
2020-03-27 22:22:13 +08:00
Chocobo1
af430d6635
Initialize struct variables
clang static analyzer was emitting some warning about uninitialized
variable usage and this patch fixes it.
2020-03-27 16:01:01 +08:00
Mike Tzou
2408ce98e6
Merge pull request #12285 from Chocobo1/log
Save log file in UTF-8 encoding
2020-03-27 09:39:54 +08:00
Mike Tzou
6b5b5df90c
Merge pull request #12283 from Chocobo1/qtTr
Include translation resources with file globbing
2020-03-27 09:38:46 +08:00
LameLemon
757274d315 Add alt and title tags for WebUI footer
Improves accessibility of the WebUI. Closes #12219.
2020-03-26 19:05:16 +00:00
Mike Tzou
c0b0c6dcfc
Merge pull request #12259 from Chocobo1/dtor
Rely on Qt ownership to free resources
2020-03-27 01:06:39 +08:00
Mike Tzou
185d8c97c1
Merge pull request #12273 from Kolcha/hidpif
Don't round scaling factor
2020-03-27 01:06:08 +08:00
Tester798
1c6b4c0a79 Fix regression when fastresume contains network path
Closes #12245 after regression was introduced in #11785.
2020-03-26 18:54:13 +02:00
Chocobo1
54a685e953
Add logging for SOCKS5 proxy errors 2020-03-26 21:51:05 +08:00
Chocobo1
c52737e07c
Avoid log file excessive flushing
Excessive flushing could happen when a lot of logging happens in a short
time interval.
2020-03-26 16:12:24 +08:00
Chocobo1
12396a7582
Save log file in UTF-8 encoding
Otherwise it uses sytem defaults: usually UTF-8 on Linux and local 8-bit
encoding on Windows.
2020-03-26 16:00:57 +08:00
Chocobo1
d179c6d5a1
Rename variable 2020-03-26 15:49:14 +08:00
Chocobo1
9630e7b689
Rely on Qt ownership to free resources
The m_reply has already changed parent in
DownloadHandlerImpl::assignNetworkReply() and thus we can rely on Qt
ownership to delete the object.
2020-03-26 14:39:18 +08:00
Chocobo1
1466c562e5
Include translation resources with file globbing
This will include all qtbase_*.qm files and only explicitly listed
qt_*.qm files will be included.
2020-03-26 14:10:20 +08:00
Nick Korotysh
a9b0d84df9
Don't round scaling factor
Qt 5.14 introduced new feature related to HighDPI screens support,
this parameter is called "scale factor rounding policy", and it is
intended to improve fractional scale factor support (like 150%).
Qt::PassThrough value guarantee that no any rounding will applied to
scale factor, and will be used as is.
2020-03-25 18:36:34 +03:00
Chocobo1
7de8a4d6e0
Construct QString more efficiently 2020-03-25 12:00:11 +08:00
Chocobo1
2c23840947
Allow to translate error messages 2020-03-25 12:00:11 +08:00
sledgehammer999
fcc87b4e9b
Sync translations from Transifex and run lupdate 2020-03-24 16:29:43 +02:00
sledgehammer999
fbf325c6d6
Merge pull request #12220 from kasper93/header
Add missing QPainterPath header include
2020-03-22 23:16:31 +02:00
Mike Tzou
18156bd676
Merge pull request #12154 from an0n666/remove-path-limit
NSIS: Add option to remove Windows path length limitation & Update manifest to support long path
2020-03-22 23:30:53 +08:00
an0n666
a711558ba0 NSIS: Add option to remove Windows path length limitation 2020-03-22 16:46:46 +02:00
Kacper Michajłow
e2c9ca5ee5 Add missing QPainterPath header include 2020-03-22 14:58:44 +01:00
Mike Tzou
ab30cfcdb0
Merge pull request #12207 from FranciscoPombal/fix-webapi
WebAPI: fix matching uncategorized torrents
2020-03-22 21:23:56 +08:00
FranciscoPombal
e496e664db WebAPI: Always allow whitespace in category names 2020-03-22 12:16:06 +00:00
FranciscoPombal
7d24e1c063 WebAPI: fix matching uncategorized torrents
Closes #11748.
2020-03-22 03:49:06 +00:00
Mike Tzou
f44f1ffc97
Merge pull request #12206 from thalieht/monitoredTMM
Disable Auto TMM when not using default savepath from monitored folder
2020-03-21 12:23:40 +08:00
thalieht
598c856c88 Disable Auto TMM when not using default savepath from monitored folder 2020-03-19 21:13:44 +02:00
Mike Tzou
4884f08e04
Merge pull request #12187 from NotTsunami/keypress
Allow other keypresses in LogListWidget
2020-03-19 13:36:41 +08:00
Mike Tzou
a9111b1357
Merge pull request #12180 from FranciscoPombal/fix_stats
Fix total connected peers count calculation
2020-03-19 12:07:20 +08:00
FranciscoPombal
a81789f4af Fix total connected peers count calculation
Also fix small typo in function name.
2020-03-17 18:01:57 +00:00
NotTsunami
c5aab39836 Allow other keypresses in LogListWidget
By not emitting the native signal, all other keypresses other than
the copy and select keysequences are ignored. This should reallow
keyboard navigation within LogListWidget objects.

Closes #12172.
2020-03-17 01:30:01 -04:00
Vladimir Golovnev
c323f64c96
Merge pull request #12188 from thalieht/queuemove
Append new move storage job to queue
2020-03-17 07:18:27 +03:00
thalieht
18289f2395 Append new move storage job to queue
fixup e4ff206e3c
2020-03-16 22:39:31 +02:00
Chocobo1
b7e7d8019c
Use helper function to construct QString
This is shorter and avoids the need of 2 constructors.
2020-03-16 21:27:42 +08:00
Chocobo1
6c307774f1
Get library version strings at runtime
We mostly use boost in header-only mode, so it is a non-trivial job to
get the version string at runtime.
2020-03-16 21:27:42 +08:00
Vladimir Golovnev
5127156ba4
Merge pull request #12035 from glassez/move-storage
Move torrent storages one by one
2020-03-13 15:59:05 +03:00
Mike Tzou
f80b7affd9
Merge pull request #12138 from Chocobo1/dist
Update Qt translations
2020-03-10 01:29:08 +08:00
Vladimir Golovnev
a7b342edcb
Merge pull request #12083 from glassez/app-instances
Allow single app instance per configuration
2020-03-09 07:40:48 +03:00
Chocobo1
7b25dd24d0
Update Qt translation files 2020-03-09 09:48:15 +08:00
Mike Tzou
92cc2a4f31
Merge pull request #12124 from Chocobo1/rename
Fix crash when renaming torrent contents
2020-03-08 00:16:02 +08:00
Mike Tzou
dc4e9e3779
Merge pull request #11813 from Chocobo1/python
Drop python2 support
2020-03-07 10:18:45 +08:00
Chocobo1
62b0d25140
Capture pointer by value 2020-03-07 10:06:35 +08:00
Mike Tzou
095ef67e30
Merge pull request #12102 from Kolcha/hidpi
Delegate GUI scaling work to Qt
2020-03-07 10:05:21 +08:00
Nick Korotysh
d49d7c1d82
Delegate GUI scaling work to Qt
Set Qt::AA_EnableHighDpiScaling application attribute when Qt 5.14.x or
newer is used. This fixes a lot of scaling issues on HiDPI displays.

Unfortunately, this flag must be set only before QApllication object
creation, so the only one place where it can be done is main().
2020-03-06 12:04:57 +03:00
Chocobo1
48e7191ef7
Initialize boolean variables 2020-03-06 15:50:55 +08:00
Chocobo1
9c6bc6c89a
Fix crash when renaming torrent contents
Closes #10328.
2020-03-06 15:50:37 +08:00
Vladimir Golovnev (Glassez)
38e54206d5
Allow single app instance per configuration 2020-03-06 08:59:59 +03:00
Mike Tzou
73ee901c45
Merge pull request #12113 from Chocobo1/smart_ptr
Use helper functions to construct smart pointers
2020-03-06 13:12:41 +08:00
Chocobo1
290d198977
Use proper type for piece index 2020-03-06 01:47:28 +08:00
Chocobo1
2157e500ef
Use helper functions to construct smart pointers 2020-03-05 19:32:28 +08:00
Mike Tzou
ca01b049a6
Merge pull request #12108 from Chocobo1/bits
Avoid unnecessary memory writes
2020-03-04 23:50:12 +08:00
Mike Tzou
949daf6c73
Merge pull request #12037 from an0n666/seed-mode-fix
Check if file exists in seed mode
2020-03-04 23:49:47 +08:00
an0n666
f7d2085b0a Check if file exists in seed mode 2020-03-04 17:38:00 +06:00
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.
2020-03-04 03:18:39 +08:00
Mike Tzou
1ca303cb0a
Merge pull request #12027 from NotTsunami/pr2
Improve the options tooltips
2020-03-03 17:47:23 +08:00
NotTsunami
f1788c76a9 Improve the options tooltips
* Fix wrong fields for translation comments
* Improve torrent management tooltip to cover both modes
* Add new tooltips for potentially confusing settings

Decent progress towards #6346, closes #9994, closes #11528
2020-03-02 23:55:08 -05:00
Vladimir Golovnev
b519ece18b
Merge pull request #12095 from glassez/resume-torrent
Let libtorrent decide whether to resume a torrent
2020-03-01 19:54:16 +03:00
Vladimir Golovnev (Glassez)
74884d57ec
Let libtorrent decide whether to resume a torrent 2020-03-01 08:08:01 +03:00
Mike Tzou
9649c2a163
Merge pull request #12043 from FranciscoPombal/fix-embedded-tracker
Fix embedded tracker
2020-02-27 21:06:58 +08:00
Vladimir Golovnev
4d2943a782
Merge pull request #12033 from glassez/save-torrent
Allow to save downloaded metadata as torrent file
2020-02-27 08:49:40 +03:00
FranciscoPombal
966f891d91 Fix response to event=stopped
BEP-3 says all tracker responses to valid announce requests should be bencoded dictionaries with at least the "peers" and "interval" keys; the "peers" key can be empty.

Also clarify support for BEP-21.
2020-02-26 20:47:33 +00:00
FranciscoPombal
af6f63f82c Don't use IPv4-mapped IPv6
Always register peers with either IPv4 or IPv6.
Fixes potential connection issues.

Also clarify related BEP-24 support.
2020-02-26 20:44:09 +00:00
FranciscoPombal
abc69dfd20 Fix BEP-23 support
The embedded tracker was returning a non-compliant response.
The peer lists should be packed strings instead of lists.

Also clarify level of compliance with BEP-7.
2020-02-26 20:42:14 +00:00
FranciscoPombal
9f045500d1 Fix IPv6 endianness 2020-02-26 20:42:07 +00:00
Vladimir Golovnev (Glassez)
e4ff206e3c
Move torrent storages one by one 2020-02-26 10:20:04 +03:00
Vladimir Golovnev (Glassez)
dd0cee44c1
Allow to save downloaded metadata as torrent file 2020-02-26 08:10:11 +03:00
Chocobo1
071ffd13de
Fix wrong field for translation comment
The `comment` field is used for disambiguation between identical
strings. Our case here should use the `extracomment` field which
meant as comment for translators.
2020-02-26 13:04:18 +08:00
Chocobo1
f4febb96b4
Remove misleading translation comment
Also it was using the wrong field for translation comment.
2020-02-26 12:55:19 +08:00
djt3
e6887fc950 Change placeholder text in torrent list's filter 2020-02-23 14:40:45 +00:00
FranciscoPombal
dc6a56afcb Revert using random port by default
Revert change introduced in https://github.com/qbittorrent/qBittorrent/pull/11637 and also revert the associated follow-up https://github.com/qbittorrent/qBittorrent/pull/12000.

Reason: https://github.com/arvidn/libtorrent/pull/4335
2020-02-21 14:47:37 +00:00
sledgehammer999
193da7f2f9
Merge pull request #12014 from sledgehammer999/alt_IP_db_provider
Use IP geolocation database by DB-IP instead of MaxMind
2020-02-18 17:05:52 +02:00
sledgehammer999
ea1481beef
Use IP geolocation database by DB-IP instead of MaxMind
Closes #11792
2020-02-18 16:11:28 +02:00
Mike Tzou
bf6a88b3d2
Merge pull request #12021 from Chocobo1/trackerentry
Simplify TrackerEntry::status() logic
2020-02-18 02:22:05 +08:00
Chocobo1
e825473289
Simplify TrackerEntry::status() logic 2020-02-17 18:46:30 +08:00
sledgehammer999
322ae3e0bc
Merge pull request #11825 from FranciscoPombal/stalled_filter
Add stalled filters to GUI and Web API/UI
2020-02-16 18:32:37 +02:00
Mike Tzou
04132f6266
Merge pull request #11999 from an0n666/fix-not-contacted-tracker
Do not list not contacted trackers as error
2020-02-16 20:27:41 +08:00
an0n666
8423f43209 Do not list not contacted trackers as error 2020-02-15 19:44:14 +00:00
sledgehammer999
385d7247b7
Merge pull request #12016 from Chocobo1/errMsg
Include resume folder path in exception message
2020-02-15 19:41:39 +02:00
Vladimir Golovnev
362305f339
Merge pull request #12013 from glassez/fix-rss
Don't access download handler after it's finished
2020-02-15 07:02:59 +03:00
Mike Tzou
dbea2d95f9
Merge pull request #12004 from Chocobo1/authCount
Add configurable ban options for WebUI
2020-02-15 09:43:16 +08:00
Chocobo1
45c357dfe2
Include resume folder path in exception message
The message in RuntimeError exception will be displayed to the users and
users would be clueless if we don't show the path.
2020-02-15 02:48:55 +08:00
Chocobo1
6eb190c373
Expose WebUI ban duration to users 2020-02-14 16:23:30 +08:00
Chocobo1
ec61ef5145
Fix coding inconsistencies in preferences.html
1. Format table tags properly
2. Add a proper label tag
3. Don't use abbreviation for seconds, we use full name everywhere else
2020-02-14 16:23:03 +08:00
Chocobo1
4f7b799732
Use QDeadlineTimer for tracking WebUI banned duration
It simplifies our code and the new timer is monotonic.
2020-02-14 16:22:52 +08:00
Vladimir Golovnev (Glassez)
3762514662
Don't access download handler after it's finished 2020-02-14 08:24:49 +03:00
Chocobo1
45bd79ee74
Close document properly after writing
Closing document explicitly is recommended by MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Document/write
2020-02-14 12:47:18 +08:00
Chocobo1
f88d6b2e55
Expose WebUI ban counter to users 2020-02-14 12:31:12 +08:00
Mike Tzou
d5a4ebe7c9
Merge pull request #11998 from Kolcha/filter-list
Inherit text color for filter list elements
2020-02-14 11:34:55 +08:00
Mike Tzou
195889a854
Merge pull request #11785 from Tester798/fix-portable-mode
Fix portable mode
2020-02-14 11:30:32 +08:00
Mike Tzou
882978c80a
Merge pull request #12000 from an0n666/legacy-default-no-random-port
Keep legacy default for random port
2020-02-13 12:24:45 +08:00
Tester798
58711cbe7e Fix portable mode
Try to fix portable mode bug. Closes #11706, #11178, #7765.
2020-02-12 19:56:25 +02:00
Mike Tzou
316f34cbf5
Merge pull request #11994 from Chocobo1/profile
Unify singleton pattern in Profile class
2020-02-12 23:59:47 +08:00
an0n666
41d8585932 Keep legacy default for random port 2020-02-12 12:28:13 +00:00
Nick Korotysh
1e59dcdb6c
Inherit text color for filter list elements
Filter list (left side panel) in WebUI is implemented using <a> tags,
CSS defines default style for all <a> elements, and specific style for
filter list elements. Default style for <a> elements sets color, and
this color also used in list. This is looks not so well. So lets just
inherit text color from parent element, and as so as it is not set, so
default text color will be used.
This makes filter list looks like other UI elemets, making all UI more
consistent (like in desktop app).
2020-02-12 10:40:08 +03:00
Vladimir Golovnev
4a2fda7edc
Merge pull request #11995 from glassez/fix-magnet-redirect
Handle HTTP redirections manually
2020-02-12 09:25:39 +03:00
Vladimir Golovnev
1e63dcb400
Merge pull request #11847 from glassez/legacy-defaults
Keep legacy defaults for existing users
2020-02-11 18:44:03 +03:00
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.
2020-02-11 15:30:59 +08:00
Vladimir Golovnev (Glassez)
0c6c65f6f8
Keep legacy defaults for existing users 2020-02-11 09:53:12 +03:00
Vladimir Golovnev (Glassez)
86c95db91d Perform settings upgrade for existing user only 2020-02-11 09:40:57 +03:00
Vladimir Golovnev (Glassez)
8bb34482ea
Handle HTTP redirections manually
Qt doesn't support Magnet protocol so we need to handle all redirections
manually to allow redirections to Magnet URIs.
2020-02-11 09:31:42 +03:00
Nick Korotysh
536580ca6b
Use SVG image for WebUI favicon
This will allow browsers to get high quality icon with required
resolution instead of resizing some small raster image.
Browsers can have even more benefit from it. For example, Firefox uses
high resolution icon to display it in "Top Sites" instead of page
preview.

Nothing changes for browsers which doesn't support SVG favicons, older
PNG icon will be used in such case.
2020-02-09 08:52:32 +03:00
Chocobo1
baa13c044a
Drop python2 support
Closes #11811.
2020-02-08 12:36:45 +08:00
Chocobo1
a6cdba17f0
Fix singleton class ownership
We shouldn't allow Qt parent ownership in here.
2020-02-07 15:34:04 +08:00
NotTsunami
6748e8d787 Remove redundant null checks
Attempting to delete a null pointer is a noop in C++.

Closes #2864.

[1] https://isocpp.org/wiki/faq/freestore-mgmt#delete-handles-null
2020-02-03 16:38:51 -05:00
Chocobo1
b2ab6c1858
Let ReverseResolution always return/emit a result 2020-01-30 19:24:18 +08:00
Chocobo1
ff31bb86bc
Speed up lookup time
By adding another variable we can get O(1) lookup time instead of O(n).
Fix up 5f415c292d.
2020-01-30 19:23:54 +08:00
Chocobo1
a2ebd77eac
Manually abort lookup on class destruction
Some lookup might take longer so instead of waiting them, we abort them
manually.
2020-01-30 14:11:03 +08:00
Chocobo1
86e3d0d816
Improve ReverseResolution class
* Use QHostAddress type for IP
* Avoid double lookup
* Use larger cache size
2020-01-30 14:11:03 +08:00
Mike Tzou
11bea8d393
Merge pull request #11918 from thalieht/peerssameip
Show any multiple connections from the same IP in peer list
2020-01-30 12:59:17 +08:00
thalieht
5f415c292d Show any multiple connections from the same IP in peer list
The uniqueness of peers is now determined by their
IP, port and connection type (uTP etc.) instead of just their IP
2020-01-29 20:40:10 +02:00
Mike Tzou
4884788c0b
Merge pull request #11933 from Chocobo1/qhash
Improve qHash functions
2020-01-29 02:07:27 +08:00
Chocobo1
5905c085c6
Use systematic approach to generate hash
The basic idea is to hash each class member and then mix them with xor
operation.
However the `seed` must be handled with care, it should only be
introduced once when mixing the hashes of each class member, otherwise
under some circumstances the `seed` might xor with itself and thus break
the intended effect.
2020-01-27 18:14:27 +08:00
Chocobo1
1740f968df
Revise qHash function
Instead of xor and narrowing the integers ourselves, now we let qHash()
from Qt do the job properly.
2020-01-27 12:53:22 +08:00
Chocobo1
2b4490d8a7
Use faster hash function
qHash(QString) will need to hash/loop through all the data while the new
code will only need one memcpy() and a few bit manipulations.
2020-01-27 12:53:13 +08:00
Vladimir Golovnev (Glassez)
666e733a4a
Track settings changed event in TransferListModel 2020-01-24 07:42:39 +03:00
Vladimir Golovnev (Glassez)
099943ea3c
Fix hide zero values 2020-01-24 07:41:04 +03:00
Mike Tzou
c3ce1aaa3d
Merge pull request #11903 from Sakib-Abrar/gui-improvement
Show "∞" instead of " -1" in Preferences
2020-01-22 11:56:26 +08:00
Vladimir Golovnev
89e72b38ea
Merge pull request #11881 from glassez/extension
Simplify torrent startup handling
2020-01-22 06:11:33 +03:00
Sakib-Abrar
1768570bf9 Show "∞" instead of " -1" in Preferences 2020-01-22 00:06:19 +06:00
Vladimir Golovnev (Glassez)
f2285e1b63
Redesign torrent startup handling 2020-01-21 10:14:59 +03:00
Mike Tzou
01ad8a443c
Merge pull request #11892 from NotTsunami/cmake
CMake: Further CMake improvements and fixes
2020-01-20 11:59:51 +08:00
Vladimir Golovnev
75ebd54ea3
Merge pull request #11088 from jagannatharjun/organize-style
Reorganize UI theme selection
2020-01-20 06:56:54 +03:00
NotTsunami
b21ed0063b CMake: Fix WebUI checks
When the CMake system was last revamped, the configure variable was
changed from WEBUI to DISABLE_WEBUI, but we are still checking
against WEBUI. This behavior was changed in fa770871e9
2020-01-19 15:08:45 -05:00
Prince Gupta
c9e162cf8a Reorganize UI theme selection 2020-01-18 23:12:33 +05:30
Chocobo1
3fce1db2eb
Migrate away from deprecated settings
Libtorrent has deprecated `upnp_ignore_nonrouters` in
https://github.com/arvidn/libtorrent/pull/4251
2020-01-16 23:44:54 +08:00
Mike Tzou
e27c9bd020
Merge pull request #11871 from NotTsunami/bitwise
WebUI: Use correct operators in logical expressions
2020-01-14 12:54:56 +08:00
Mike Tzou
146e8213a5
Merge pull request #11781 from FranciscoPombal/piece_extent_affinity
Add piece_extent_affinity to AdvancedSettings
2020-01-14 12:53:39 +08:00
Vladimir Golovnev
990e451765
Merge pull request #11865 from shemanaev/fix/webui-files-rename
WebUI: Fix first row renaming in files tab
2020-01-14 07:14:13 +03:00
FranciscoPombal
df2fbb1edc Bump Web API version 2020-01-13 11:41:59 +00:00
FranciscoPombal
f4742a98c5 Add stalled filters to GUI and Web API/UI
`/api/v2/torrents/info` can now take the following new values for the`filter` parameter: `stalled`, `stalled_uploading` and `stalled_downloading`.

Requires Web API version bump.

Closes #11787
2020-01-13 11:41:37 +00:00
NotTsunami
82047104fc WebUI: Use correct operators in logical expressions
As suggested in https://github.com/qbittorrent/qBittorrent/pull/11825#discussion_r365557626
2020-01-13 01:35:38 -05:00
FranciscoPombal
ed96a07a75 Add piece_extent_affinity to AdvancedSettings
Expose option in WebUI settings and WebAPI.

Requires WebAPI version bump.

Closes #11436.
2020-01-13 00:11:29 +00:00
Denis
a7eb792372 WebUI: Fix first row renaming in files tab
Ids started from zero and first row converts to false.
Closes #11826.
2020-01-12 20:05:38 +03:00
Vladimir Golovnev
101ab3cf6c
Merge pull request #11864 from glassez/fix-sorting
Fix Transfer list sorting
2020-01-12 11:05:20 +03:00
Vladimir Golovnev (Glassez)
118debd6bf
Fix Transfer list sorting 2020-01-11 18:19:48 +03:00
Chocobo1
396660b031
Fix missing string 2020-01-11 18:48:49 +08:00
Chocobo1
2e4584578b
Bump python version for new installation 2020-01-11 18:48:01 +08:00
Chocobo1
029795bc19
Bump copyright year 2020-01-11 18:47:33 +08:00
An0n
bf32e90c40 Change placement of stop tracker timeout 2020-01-09 19:01:05 +00:00
Mike Tzou
057860584c
Merge pull request #11834 from an0n666/an0n666-expose-stop-tracker-timeout
Expose stop tracker timeout in Advanced Settings (GUI + WebUI)
2020-01-08 17:30:21 +08:00
Mike Tzou
e2ac97a9e7
Merge pull request #11838 from Chocobo1/webui
Minor WebUI code cleanups
2020-01-08 16:50:31 +08:00
an0n666
3f223c3a45 Expose stop_tracker_timeout in advanced settings 2020-01-08 08:21:55 +00:00
sledgehammer999
45ed31fddc
Merge pull request #11733 from sledgehammer999/tracker_error_count
Tracker is errored only if all local endpoints fail
2020-01-08 04:24:08 +02:00
Vladimir Golovnev
dc8f4b776c
Merge pull request #11829 from thalieht/doubleclick
Allow double-click in preview dialog
2020-01-06 21:11:59 +03:00
Chocobo1
c556b20018
Remove unused variable 2020-01-07 02:08:08 +08:00
Chocobo1
c34883f9af
Add explicit semicolon 2020-01-07 02:07:55 +08:00
Chocobo1
0577cf588c
Remove duplicate line 2020-01-07 01:59:02 +08:00
sledgehammer999
02a027144b
Tracker is errored only if all local endpoints fail
Closes #11691
2020-01-05 17:59:54 +02:00
thalieht
c5177eae9f Allow double-click in preview dialog 2020-01-05 11:28:04 +02:00
Vladimir Golovnev (Glassez)
f56f817c77
Save resume data after recheck
Closes #11774.
2020-01-01 14:29:58 +03:00
Mike Tzou
e906478a16
Merge pull request #11756 from FranciscoPombal/fix_webui_stats_race
WebUI: fix populating statistics window
2019-12-28 10:37:03 +08:00
Vladimir Golovnev
37d7323ac0
Merge pull request #11708 from glassez/transfer-list
Improve Transfer list architecture
2019-12-27 16:25:26 +03:00
FranciscoPombal
8be804b6ff WebUI: fix populating statistics window
Closes #11665
2019-12-27 12:10:12 +00:00
Vladimir Golovnev (Glassez)
15f2a3b564
Use QStyledItemDelegate instead of QItemDelegate 2019-12-26 22:10:28 +03:00
Vladimir Golovnev (Glassez)
766cfb67df
Fix transfer list architecture
Model returns string for DisplayRole.
Text alignment is set by Model (using TextAlignmentRole).
Delegate performs custom painting only where necessary
(i.e. for Progress bar).
2019-12-26 22:09:56 +03:00
Mike Tzou
5c3c1e07df
Merge pull request #11739 from Chocobo1/qt5_14
Migrate away from deprecated API in Qt 5.14
2019-12-26 12:43:04 +08:00
Chocobo1
f5f3dc2ba1
Remove unused variable 2019-12-25 19:23:37 +08:00
Chocobo1
2422d81de1
Migrate away from deprecated API in Qt 5.14 2019-12-25 19:23:37 +08:00
Mike Tzou
e62b550bfe
Merge pull request #11635 from FranciscoPombal/prevent_excessive_sync
WebUI: Prevent excessive requests to /api/v2/sync/maindata
2019-12-25 13:15:13 +08:00
Mike Tzou
07d4055de5
Merge pull request #11745 from FranciscoPombal/fixup_#11592
WebUI: remove unused/deprecated "Listen on IPv6 address" option
2019-12-25 13:07:24 +08:00
Mike Tzou
fea39fbcf2
Merge pull request #11726 from FranciscoPombal/fix_#11724
WebUI: Implement "Secure" flag for session cookie. Closes #11724
2019-12-25 13:06:40 +08:00
FranciscoPombal
0f6dfcf8a6 WebUI: Prevent excessive sync requests
Don't sync main data if a request to do so is already in progress.

This prevents piling up of requests and bogging down slow/busy machines, since the current implementation of `/api/v2/sync/maindata` is very computationally intensive, especially with lots of torrents.

Everything gets updated on the next scheduled request anyway (via the timeout mechanism).
2019-12-24 12:15:26 +00:00
Mike Tzou
c94417b589
Merge pull request #11637 from FranciscoPombal/new_defaults
Change some settings defaults for better behaviour out of the box
2019-12-24 12:27:11 +08:00
sledgehammer999
f672df1cf1
Merge pull request #11278 from Piccirello/country_region
Rename Country column to "Country / Region"
2019-12-23 21:54:30 +02:00
FranciscoPombal
e693fdeaf9 WebUI: remove unused/deprecated option
Fixup 8200ef6
Remove "Listen on IPv6 address" option.
2019-12-23 18:57:46 +00:00
FranciscoPombal
691d5e5d89 WebUI: Implement "Secure" flag for session cookie
Closes #11724.

Option is enabled by default for users using qBittorrent's built-in HTTPS capabilities. This flag will never be set if qBittorrent is using plain HTTP.

Users using HTTPS reverse proxies, like "qbt <-> (http) <-> proxy <-> (https) <-> user" should override the flag in the proxy in order to set it, if they wish to do so.
2019-12-23 17:58:08 +00:00
sledgehammer999
3a70dd4438
Merge pull request #11672 from sledgehammer999/show_console
Option to show console when external program is run
2019-12-23 16:16:24 +02:00
sledgehammer999
1121316926
Delete unnecessary explicit return 2019-12-19 19:13:02 +02:00
sledgehammer999
8fa6e372a2
Option to show console when external program is run
Windows only.
Closes #9592
2019-12-19 19:13:01 +02:00
FranciscoPombal
30502de960 Change some settings defaults for better behaviour out of the box
- CheckingMemUsageSize (16 MiB -> 32 MiB): a 16 MiB increase in memory consumption seems worthwhile for a nice performance boost in most cases.
- DiskCacheSize (64 MiB -> Auto): auto yields the best performance without committing to a huge fixed value.
- UseRandomPort (false -> true): The initial port chosen by qBittorrent may clash with something else the user already has that is aways using that port (low probability, but still). Thus, qBittorrent will always fail listening on that port, causing unexpected problems for the user. Users who know they want a fixed port will go to the settings anyway.
2019-12-19 16:46:22 +00:00
sledgehammer999
18de63f743
Merge pull request #11433 from jagannatharjun/colors
Allow transfer list text color changes through QSS
2019-12-19 18:20:49 +02:00
sledgehammer999
52273ca18c
Merge pull request #11696 from Medvedishce/Update-free-disk-space
Update free disk space label on Category change in Auto Mode
2019-12-19 18:16:08 +02:00
sledgehammer999
4ae8e176dc
Use modern unique_ptr practices 2019-12-19 16:25:45 +02:00
Prince Gupta
d3aa45526a Allow transfer list text color changes through QSS 2019-12-19 12:45:26 +05:30
Mike Tzou
fab250f1e0
Merge pull request #11694 from Chocobo1/nullptr
Replace hard-coded numbers in TrackerFiltersList class
2019-12-19 10:13:44 +08:00
Medvedishce
48fff37143
Update free disk space label on Category change in Auto Mode
Closes #8772.
This will fix issue that "Free space on disk:" label in 
Add New Torrent dialog not updated on Category change
when Torrent Management Mode is on Auto mode.
2019-12-18 13:49:43 +03:00
Chocobo1
723668ba46
Replace hard-coded numbers in TrackerFiltersList class 2019-12-18 16:33:37 +08:00
Chocobo1
bf264b983a
Simplify null pointer check 2019-12-18 15:13:02 +08:00
Chocobo1
bb73fa5dbe
Replace a series of if() by switch() 2019-12-18 15:05:42 +08:00
Mike Tzou
1e4c837d6c
Merge pull request #11678 from an0n666/patch-1
Disable Torrent Queue by default
2019-12-18 13:47:04 +08:00
sledgehammer999
a25ed5f639
Sync translations from Transifex and run lupdate 2019-12-18 00:33:00 +02:00
sledgehammer999
1376e051df
Bump Web API version 2019-12-18 00:20:27 +02:00
sledgehammer999
90308c2ae5
Merge pull request #11660 from sledgehammer999/fix_smart_delete
Don't unnecessarily delete folder customization
2019-12-17 20:38:25 +02:00
sledgehammer999
3d43f1c800
Merge pull request #11642 from sledgehammer999/fix_save_path
Use the incomplete folder where appropriate
2019-12-17 20:37:57 +02:00
Mike Tzou
99c002ae27
Merge pull request #11614 from Tester798/master
Enable portable mode if "profile" folder exists
2019-12-17 13:37:35 +08:00
Mike Tzou
5b7df3a6e7
Merge pull request #11675 from jagannatharjun/resize-align
Align Properties tab bar correctly on window resize
2019-12-17 10:44:13 +08:00
sledgehammer999
64e5d41a2c
Don't unnecessarily delete OS files in folders 2019-12-16 22:10:13 +02:00
an0n666
e0d7876990
Disable Torrent Queue by default
It should remain disabled by default. Anyone that needs to Queue torrents for seeding/downloading should go to settings and change it to their preference.
2019-12-16 18:16:27 +06:00
Prince Gupta
6258c1e65b Align Properties tab bar correctly on window resize 2019-12-16 15:42:50 +05:30
Tester798
053ee48692 Enable portable mode if "profile" directory exists
Enable portable mode if "profile" directory exists in the app dir.
Remove "--portable" command line argument.
Add logging of current profile config directory.
Closes #9445.
2019-12-16 05:12:47 +02:00
sledgehammer999
564d845d87
Use the incomplete folder where appropriate
Restored torrents already have the correct path saved in their fastresume. Don't override it.
Magnets and new torrents have to be set explicitly to the incomplete folder if it is enabled.

Closes #11552
2019-12-13 20:31:38 +02:00
sledgehammer999
d09c5e529c
Merge pull request #11592 from sledgehammer999/refactor_listeningAddr
Rework the listening IP/interface selection code
2019-12-12 20:24:45 +02:00
Chocobo1
796595ffb6
Enable "Apply rate limit to peers on LAN" option by default
Because some ISP will deploy Carrier Grade NAT (means assigning private
IP address to user) and thus accidentally circumvent the speed limiter.

https://www.a10networks.com/blog/carrier-grade-nat/
2019-12-11 21:44:45 +08:00
sledgehammer999
8200ef6bd5
Rework the listening IP/interface selection code
Closes #11561
2019-12-11 09:56:45 +02:00
nl6720
5f5385d4dd Fix quoting of alert() in client.js
Fix alert() I broke in #11615 .
2019-12-10 12:45:55 +02:00
Mike Tzou
a652c39394
Merge pull request #11029 from Piccirello/webui-rename-file
Add ability to rename torrent files from the WebUI
2019-12-10 12:39:19 +08:00
Thomas Piccirello
2bce9f6179 Add ability to rename torrent files from the WebUI
Renaming folders is not yet supported. Closes #8892.
2019-12-09 02:57:32 -08:00
Thomas Piccirello
9fecd18293 Fix incorrect function being used 2019-12-09 02:53:36 -08:00
nl6720
c1ef846c3d Mention lack of HTTPS in WebUI magnet link warning
According to Mozilla docs, registerProtocolHandler() is only
available when using secure contexts (i.e. HTTPS for everything
outside localhost).
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler

The message "Your browser does not support this feature" does not
make this obvious and can lead to confusion if the user is using a
modern browser.
2019-12-08 11:41:30 +02:00
Mike Tzou
7a657eb5d9
Merge pull request #11566 from Chocobo1/webui
Fixes for WebUI
2019-12-08 12:13:53 +08:00
Chocobo1
c896982efb
Fix incorrect translation displayed after language change
It is expected in WebUI that the language change applies immediately
(without a program restart) and this static caching prevents that.
2019-12-04 18:25:14 +08:00
Chocobo1
5f165c4c00
Fix HTML elements size in search tab
Specifying a height/width value might cut the displayed text or
obstruct centering the text in the button, so let it auto decide
instead.
Closes #11553.
2019-12-04 18:25:14 +08:00
Thomas Piccirello
33a3624652 Rename Country column to "Country / Region"
Not all flags displayed strictly belong to countries.
2019-12-03 23:05:38 -08:00
Chocobo1
a92826d316
Fix inconsistent icon for deleting torrent
Closes #11565.
2019-12-04 12:59:29 +08:00
Chocobo1
04f270b9bc
Fix missing translations in search plugins dialog
Closes #11551.
2019-12-04 12:20:11 +08:00
Mike Tzou
2e8b17e498
Merge pull request #11521 from Chocobo1/errorStatus
Fix stuck in wrong torrent state
2019-12-03 19:22:39 +08:00
Vladimir Golovnev
452b1d8ea2
Merge pull request #11543 from j1warren/content_tab_feature
Expand single-item folders in torrent content
2019-12-03 13:04:53 +03:00
sledgehammer999
f46058bbd6
Sync translations from Transifex and run lupdate 2019-12-02 23:37:06 +02:00
warren
b37795d344 Expand single-item folders in torrent content 2019-12-02 21:56:44 +05:00