Chocobo1
2c23840947
Allow to translate error messages
2020-03-25 12:00:11 +08: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
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
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
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
dc4e9e3779
Merge pull request #11813 from Chocobo1/python
...
Drop python2 support
2020-03-07 10:18:45 +08: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
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
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
Vladimir Golovnev (Glassez)
3762514662
Don't access download handler after it's finished
2020-02-14 08:24:49 +03:00
Chocobo1
f88d6b2e55
Expose WebUI ban counter to users
2020-02-14 12:31:12 +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
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)
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
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
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
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
89e72b38ea
Merge pull request #11881 from glassez/extension
...
Simplify torrent startup handling
2020-01-22 06:11:33 +03:00
Vladimir Golovnev (Glassez)
f2285e1b63
Redesign torrent startup handling
2020-01-21 10:14:59 +03:00
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
146e8213a5
Merge pull request #11781 from FranciscoPombal/piece_extent_affinity
...
Add piece_extent_affinity to AdvancedSettings
2020-01-14 12:53:39 +08: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
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
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
an0n666
3f223c3a45
Expose stop_tracker_timeout in advanced settings
2020-01-08 08:21:55 +00:00
sledgehammer999
02a027144b
Tracker is errored only if all local endpoints fail
...
Closes #11691
2020-01-05 17:59:54 +02:00
Vladimir Golovnev (Glassez)
f56f817c77
Save resume data after recheck
...
Closes #11774 .
2020-01-01 14:29:58 +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
2422d81de1
Migrate away from deprecated API in Qt 5.14
2019-12-25 19:23:37 +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
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
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
Prince Gupta
d3aa45526a
Allow transfer list text color changes through QSS
2019-12-19 12:45:26 +05:30
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
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
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
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
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
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 (Glassez)
9342fb15b3
Log "RSS Feed successfully downloaded" event
2019-12-01 20:19:43 +03:00
Chocobo1
bf58555a7a
Migrate away from deprecated API
2019-11-29 02:57:31 +08:00
sledgehammer999
56c0f39593
Merge pull request #11520 from sledgehammer999/revert_fastresume_functionality
...
Revert fastresume functionality
2019-11-27 22:38:21 +02:00
Chocobo1
2ca70cf6cc
Fix stuck in wrong torrent state
...
Before this patch, adding the torrent in
https://github.com/qbittorrent/qBittorrent/issues/11511 and the torrrent
state will stay in torrent_status::checking_resume_data forever.
This is not the correct state since the `torrent_status.errc` field is
non-zero and this commit fixes it.
2019-11-26 03:15:48 +08:00
sledgehammer999
7aa01a1b51
Revert "Always save info dict when saving fastresume"
...
This reverts commit 4aab44e779
.
2019-11-25 15:35:06 +02:00
sledgehammer999
005f0010ec
Revert "Fix unable to remove web seeds"
...
This reverts commit d657c87243
.
2019-11-25 15:34:37 +02:00
Vladimir Golovnev (Glassez)
a4b9a4d9da
Fix compilation for Windows 7 with MinGW
2019-11-22 13:03:52 +03:00
Chocobo1
af52a18f82
Avoid session reconfiguration when limit has not changed
...
Fix up 5d46c9b2d6
.
2019-11-20 12:22:18 +08:00
Mike Tzou
1bd739dd4a
Merge pull request #11493 from Chocobo1/speed
...
Revise "speed limits" related code
2019-11-18 18:40:31 +08:00
thalieht
4ffc0cff12
Reallow to force recheck torrents that aren't fully started
2019-11-16 22:13:35 +02:00
Chocobo1
5d46c9b2d6
Revise "speed limits" related code
...
The old code has a wrong comparison which compares speed limits
in different magnitude: bytes vs KiB. The comparison is removed.
Also the old code treats values that are smaller than 1024 as unlimited
speed which is clearly wrong.
2019-11-17 02:27:59 +08:00
Chocobo1
b55403ce66
Pass TriStateBool by value
2019-11-14 12:14:30 +08:00
Chocobo1
640f52c05f
Let eta function return signed integer
...
We already use signed integer internally so it make sense to return it
as-is.
2019-11-14 12:14:29 +08:00
Mike Tzou
cdb1874263
Merge pull request #11466 from Xegor/master
...
Add "create subfolder" option to RSS auto-download rules
2019-11-14 12:02:06 +08:00
Xegor
325f36fa4f
Add create subfolder option to RSS auto-download rules
2019-11-11 12:46:51 +01:00
Chocobo1
d936bca268
Move DownloadHandlerImpl class to its own file
...
This also resolves lupdate warning.
2019-11-11 19:41:10 +08:00
Chocobo1
9ef2cd48e0
Fix translation not applied
2019-11-11 16:39:55 +08:00
Mike Tzou
d12468ffb5
Merge pull request #11354 from thalieht/pausechecking
...
Reallow to pause checking torrents
2019-11-09 09:28:18 +08:00
thalieht
f150b3077d
Reallow to pause checking torrents
2019-11-08 19:14:50 +02:00
Chocobo1
b408a09755
Remove unused type alias
2019-11-04 13:47:30 +08:00
Chocobo1
1b47350952
Remove anonymous function forward declarations
...
Also reorder the functions slightly to make it compile.
2019-11-04 12:21:16 +08:00
Mike Tzou
2fb1182700
Merge pull request #11317 from Chocobo1/preview
...
Fix "preview file" action not working
2019-11-04 11:32:14 +08:00
Mike Tzou
a7f38eaa82
Merge pull request #11374 from horgan/patch-1
...
Fix country name misspelling
2019-11-03 00:43:48 +08:00
horgan
89d214bb8f
Fix country name misspelling
2019-11-03 00:17:04 +08:00
Mike Tzou
6da39d9279
Merge pull request #11422 from Chocobo1/buffer
...
Reserve memory for file data buffers
2019-11-02 13:16:21 +08:00
Mike Tzou
565eb4cdc8
Merge pull request #11430 from Chocobo1/qt
...
Fix integer narrowing on x86
2019-11-01 10:34:56 +08:00
Chocobo1
e262b86c44
Reserve memory for file data buffers
2019-10-31 23:09:28 +08:00
Chocobo1
f31ee6a225
Fix integer narrowing on x86
...
The f_type is an alias to `int` on 32-bit system and the switch cases
uses `unsigned int`.
Closes #11427 .
2019-10-31 13:04:02 +08:00
Chocobo1
6fd678195c
Replace deprecated Qt functions
...
QSet::toList() is replaced by QSet::values()
2019-10-31 12:40:24 +08:00
Chocobo1
0f60121b94
Add option to control qBittorrent process memory priority
...
This is to avoid Windows swapping out other application data from
OS cache and put in torrent data which hinders other program
responsiveness.
The default value "Below normal" is choosen because casual users have
other higher priority apps (such as browser) running and they don't
expect OS to swap out its data. Dedicated seeders most probably will not
have other app running on their system and would expect qbt has
priority over other background services.
The option only has effect on Windows >= 8.
2019-10-31 03:18:43 +08:00
Chocobo1
29fe0029f0
Rename variables in Session class
2019-10-30 11:56:16 +08:00
Chocobo1
89c58921de
Log error properly
2019-10-30 01:46:57 +08:00
Chocobo1
a3fd340187
Revise Session::getPendingAlerts function signature
2019-10-30 01:46:57 +08:00
Chocobo1
e32ef7f5c5
Use implicit sharing when getting categories from Session class
2019-10-30 01:46:57 +08:00
Chocobo1
865394a59c
Clean up Session class variable initialization
2019-10-30 01:46:56 +08:00
Chocobo1
abb3e7ace0
Move libtorrent session initialization to its own function
...
`m_IPFilteringChanged` default value has changed due to code unification.
2019-10-30 01:46:52 +08:00
Chocobo1
49266cb9e4
Replace boost::int64_t by std::int64_t
2019-10-23 13:43:49 +08:00
Chocobo1
cbe78baff1
Migrate to lt::error_code
2019-10-23 13:43:46 +08:00
Chocobo1
0d3152e4b0
Clean up "network interfaces configuration" code
2019-10-23 13:43:16 +08:00
Chocobo1
0607050ecc
Clean up PreviewSelectDialog class
2019-10-02 21:12:35 +08:00
Chocobo1
021908320e
Preserve relative order when moving to top/bottom in queue
...
Closes #11312 .
2019-10-02 16:03:06 +08:00
Chocobo1
e0a23ba93d
Use InfoHash type in queueing operations
...
This avoids redundant type conversions.
2019-10-02 15:21:16 +08:00
Chocobo1
36056ad5af
Avoid redundant lookups
2019-09-29 15:13:25 +08:00
Chocobo1
d76adff81d
Change Session::deleteTorrent() first parameter to take InfoHash type
2019-09-29 09:52:51 +08:00
Chocobo1
7f453a80d3
Revise SessionSettingsEnums wrapper
...
This simplify the wrapper to become a namespace.
2019-09-29 09:52:13 +08:00
Chocobo1
7276a79cef
Call Windows API directly
...
We already bumped the OS requirement to Windows 7 and those functions
can be called directly without the need to load them first.
2019-09-29 09:52:13 +08:00
Mike Tzou
975b44d05f
Merge pull request #11241 from thalieht/delfolder
...
Add "Remove torrent and its files" option to share ratio limiting
2019-09-29 09:51:41 +08:00
thalieht
07eb261991
Add "Remove torrent and its files" option to share ratio limiting
2019-09-26 13:34:03 +03:00
Chocobo1
de7d62c128
Clean up code
2019-09-25 15:54:47 +08:00
Chocobo1
103e2b9398
Use non-recursive mutex
...
The related classes doesn't really need recursive mutex so drop it. And
if it is really required it usually indicates bad design and we should
avoid it anyway.
2019-09-25 15:50:21 +08:00
Mike Tzou
7a3607c729
Merge pull request #11269 from Chocobo1/signals
...
Improve "stats updated" signal handling in MainWindow class
2019-09-25 09:53:39 +08:00
Mike Tzou
7c7963f93f
Merge pull request #11259 from Chocobo1/tristate
...
Revise TriStateBool class
2019-09-25 09:52:41 +08:00
Chocobo1
58fa5e004f
Improve "stats updated" signal handling in MainWindow class
2019-09-24 11:51:29 +08:00
Chocobo1
72faf89e26
Use the same internal data type for conversion function
2019-09-24 10:49:39 +08:00
Chocobo1
418164bee4
Move "torrent status report" functionality out of Session class
2019-09-23 21:08:59 +08:00
Chocobo1
9968eb53b2
Remove unused signal
2019-09-23 21:08:59 +08:00
Chocobo1
8bbed461a6
Sort signal declarations in Session class
2019-09-23 21:08:59 +08:00
Chocobo1
ed62854af7
Add TriStateBool constructor taking a boolean
...
And move the constructor taking an int to private.
2019-09-23 13:05:32 +08:00
Mike Tzou
3971bf2d58
Merge pull request #11250 from Chocobo1/warning
...
Improve error messages for url_seed_alert
2019-09-19 11:11:30 +08:00
Chocobo1
4d00435209
Improve error messages for url_seed_alert
...
Closes #10119 .
2019-09-18 15:02:59 +08:00
Vladimir Golovnev
19c70fd659
Merge pull request #11235 from glassez/retry-fetch-rss
...
Allow to retry fetching RSS feeds. Closes #11168
2019-09-16 09:58:44 +03:00
Chocobo1
fccbc5318a
Drop logging level to warning for web seed errors
2019-09-15 14:55:16 +08:00
Mike Tzou
12c127b482
Merge pull request #11227 from Chocobo1/alert
...
Handle "alerts dropped" alert from libtorrent
2019-09-15 13:02:34 +08:00
Vladimir Golovnev (Glassez)
cf6e721b00
Allow to retry fetching RSS feeds
2019-09-14 11:33:03 +03:00
Vladimir Golovnev (Glassez)
73ef69526d
Allow to cancel download request
2019-09-14 11:31:07 +03:00
Chocobo1
edcc74c1ae
Add option to align file to piece boundary when creating new torrent
...
Alignment is achieved by adding dummy pad files between files which is
handled by libtorrent.
Closes #10460 .
2019-09-14 12:16:50 +08:00
Chocobo1
5e1e983928
Handle "alerts dropped" alert from libtorrent
2019-09-14 12:09:13 +08:00
Chocobo1
0a959bcbe7
Clean up SettingsStorage::save()
...
Also it should return `true` when `m_dirty` is `false`.
2019-09-08 15:03:25 +08:00
Chocobo1
e7e5ee1ea2
Add const to TransactionalSettings class functions
2019-09-08 14:38:14 +08:00
Chocobo1
daf52a2610
Avoid double lookups
2019-09-08 14:28:38 +08:00
Mike Tzou
d2c21ce507
Merge pull request #11195 from Chocobo1/mac
...
Replace deprecated macro
2019-09-07 11:58:23 +08:00
Chocobo1
7113174593
Treat .magnet file extension as case insensitive
...
Closes #11200 .
2019-09-06 12:30:50 +08:00
Chocobo1
0d5b0b9542
Replace deprecated macro
...
Q_OS_MAC is deprecated and the replacement is Q_OS_MACOS.
2019-09-05 20:16:18 +08:00
Chocobo1
9dc3b18178
Fix filename validation on non-Windows OS
...
Closes #11191 .
2019-09-05 20:05:21 +08:00
Chocobo1
2396ef5bd6
Move error logging of adding peers to the proper place
2019-09-04 16:09:24 +08:00
Chocobo1
3104291734
Add check for null pointer
...
Fix up d657c87243
.
2019-09-03 22:26:41 +08:00
Mike Tzou
4363082173
Merge pull request #11104 from Chocobo1/resume
...
Fix unable to remove web seeds
2019-09-03 12:12:56 +08:00
Chocobo1
2a66bb3127
Construct QHostAddress more efficiently
2019-09-01 22:33:01 +08:00
Chocobo1
4aab44e779
Always save info dict when saving fastresume
...
Otherwise torrents loaded from fastresume won't have it and needs
to redownload it from elsewhere and slowing down the startup process.
This is also required for the future where we will drop loading the
`info` dict from .torrent files.
2019-08-31 22:59:33 +08:00
Chocobo1
d657c87243
Fix unable to remove web seeds
...
As suggested in post [1] we don't need to assign the `ti` field anymore when fastresme
already contains the `info` dict.
[1]: https://github.com/arvidn/libtorrent/issues/3946#issuecomment-523300003
2019-08-31 22:52:22 +08:00
Mike Tzou
62a3938480
Merge pull request #11085 from Chocobo1/model
...
Better on-demand reloading of torrent data
2019-08-30 12:45:57 +08:00
Mike Tzou
7ce26435bd
Merge pull request #11126 from Chocobo1/addedTime
...
Fix wrong "added on" date
2019-08-28 12:04:23 +08:00
Chocobo1
09503b58fa
Clean up loadTorrentResumeData()
2019-08-27 15:01:50 +08:00
Chocobo1
f3ce76110b
Simplify code
...
Instead of using dict_find_list() now we use the simpler dict_find()
since we are going to check its validness anyway.
2019-08-27 15:01:50 +08:00
Chocobo1
3a11c23efd
Fix wrong "added on" date
...
This only happens for magnet links when its metadata has yet to be retrieved.
Closes #11124 .
2019-08-27 15:01:50 +08:00
Chocobo1
0891cd4878
Avoid unecessary copying the parameter
...
Using forwarding reference here so that we won't get unnecessary copies
of the parameter passed to `slot`, for example a lambda function.
2019-08-27 14:30:03 +08:00
Mike Tzou
5c7f9530ee
Merge pull request #11060 from Chocobo1/tracker
...
Improve embedded tracker
2019-08-22 12:18:56 +08:00
Chocobo1
8d0d8e4dcb
Improve embedded tracker
...
Now it conforms to BEPs more closely.
2019-08-21 18:05:50 +08:00
Chocobo1
bbecf87292
Handle invalid time activity properly
...
When there is no activity before m_nativeStatus.last_upload will be 0
and this commit will map it to -1 which retain the expected behavior as
before (libtorrent < 1.2 era).
2019-08-21 17:45:04 +08:00
Chocobo1
1f3bf75fff
Better on-demand reloading of torrent data
2019-08-17 15:44:16 +08:00
Chocobo1
94f7a095bb
Implement proper equal operators
2019-08-16 01:35:41 +08:00
Mike Tzou
767f024585
Merge pull request #7475 from thalieht/ratiosuperseed
...
Add option to enable Super Seeding mode once ratio/time limit is reached. Closes #7160 .
2019-08-10 11:33:09 +08:00
thalieht
1f6f1716ad
Enable Super Seeding mode once ratio/time limit is reached
2019-08-09 13:06:34 +03:00
Chocobo1
6ac36368cd
Update user agent string
2019-08-09 13:12:11 +08:00
Mike Tzou
2427f5d324
Merge pull request #11041 from Chocobo1/splitRef
...
Revise operations in TorrentHandle class
2019-08-09 12:27:44 +08:00
Chocobo1
c420ff29af
Revise operations in TorrentHandle class
2019-08-08 18:57:54 +08:00
Chocobo1
b5b678c58f
Replace QString::split() by faster alternatives
2019-08-08 18:57:54 +08:00
Chocobo1
672b44acba
Let OS assign listening port
...
This applies when "Use different port on startup" option is selected.
2019-08-08 13:14:25 +08:00
Chocobo1
c19f8f6b5e
Use a randomized port number for the first run
2019-08-08 13:14:23 +08:00
Mike Tzou
7f1bff4eb4
Merge pull request #11017 from Chocobo1/apictrl
...
Improvements to APIController class
2019-08-06 10:17:27 +08:00
Chocobo1
d92bf13706
Use a QString directly instead of QStringList
2019-08-05 20:56:16 +08:00
Chocobo1
e90a2c00a5
Replace QList by QVector
2019-08-05 20:56:15 +08:00
Chocobo1
f4e7b8c6bf
Replace QMap with QHash
2019-08-05 09:51:39 +08:00
Mike Tzou
3811612f80
Merge pull request #10982 from Chocobo1/cleanup
...
Code base cleanup
2019-07-31 14:24:42 +08:00
Chocobo1
c1659a189b
Fix messed up symbols in log
2019-07-31 02:10:22 +08:00
Chocobo1
3ab2fe907f
Remove Windows XP remnants
2019-07-31 02:10:22 +08:00
Chocobo1
38fa6d2aee
Fix incomplete file extension not applied for new torrents
2019-07-28 13:05:46 +08:00
Chocobo1
7ab3479a34
Replace static_cast by qOverload
2019-07-26 22:32:18 +08:00
Chocobo1
ca44b40222
Move variables to the proper scope
2019-07-26 22:32:18 +08:00
Chocobo1
ccec50e18e
Improve parsing in BitTorrent::PeerAddress::parse
2019-07-24 22:22:02 +08:00
Vladimir Golovnev
02ab77053e
Merge pull request #10961 from glassez/fastresume
...
Save updated resume data for completed torrents
2019-07-23 18:47:30 +03:00
Vladimir Golovnev
cf2e7d77d6
Merge pull request #10950 from glassez/drop-deprecated
...
Don't use deprecated libtorrent features
2019-07-23 09:19:15 +03:00
Vladimir Golovnev (Glassez)
4021a0c7ce
Store libtorrent native file index in QHash
2019-07-23 06:43:39 +03:00
Vladimir Golovnev (Glassez)
3d70ebfc46
Save updated resume data for completed torrents
...
If fastresume data was rejected we need to save updated
resume data after torrent finishes rechecking.
2019-07-23 06:32:13 +03:00
Vladimir Golovnev (Glassez)
ad6a40d5f4
Extract PeerAddress class into separate file
2019-07-23 06:27:35 +03:00
Vladimir Golovnev (Glassez)
b822d2c380
Fix requested torrent resume data handling
...
Session should increase an appropriate counter each time
the torrent resume data is requested to save.
2019-07-22 14:22:26 +03:00
Vladimir Golovnev (Glassez)
60ffa3030e
Don't use deprecated libtorrent features
2019-07-21 19:28:28 +03:00
Chocobo1
4a90716843
Add override keyword to functions
2019-07-19 11:58:56 +08:00
Chocobo1
7a5e883cd2
Revise inline keyword usage
...
And let compiler decide whether to inline functions.
2019-07-16 18:42:55 +08:00
Chocobo1
f6f8aaf3db
Put internal function into anonymous namespace
2019-07-16 18:42:26 +08:00
Chocobo1
f993230582
Use uniform initialization
2019-07-16 18:42:26 +08:00
Vladimir Golovnev
17541b0d34
Merge pull request #10921 from glassez/ignore-actions
...
Ignore some actions on uninitialized torrents
2019-07-15 08:44:42 +03:00
Vladimir Golovnev (Glassez)
87d98403f4
Don't break torrent checking
2019-07-14 12:34:50 +03:00
Vladimir Golovnev (Glassez)
9462685c78
Ignore some actions on uninitialized torrents
...
Some actions can lead to an inconsistent state if applied
to an uninitialized torrent, so we just ignore them.
2019-07-14 12:34:28 +03:00
Vladimir Golovnev
b9da9ebfdf
Merge pull request #10910 from glassez/fix-add-torrent
...
Avoid race conditions when adding torrent
2019-07-14 10:45:05 +03:00
thalieht
7b31868e3c
Rename priority to queue in the context of torrents
2019-07-13 14:04:16 +03:00
Vladimir Golovnev (Glassez)
644dc9792d
Avoid race conditions when adding torrent
2019-07-13 12:06:07 +03:00
Mike Tzou
24932f6cb6
Merge pull request #10895 from Chocobo1/tracker
...
Add dialog to mass edit torrent's tracker
2019-07-12 10:59:50 +08:00
Chocobo1
9e7f50517e
Add "Tracker entries" dialog
2019-07-11 12:10:19 +08:00
Mike Tzou
51fa98aa0b
Merge pull request #10702 from jagannatharjun/qss-styling
...
Allow Styling through QSS
2019-07-10 19:32:19 +08:00
Prince Gupta
a24925c858
Allow styling with QSS stylesheets
2019-07-09 19:56:55 +05:30
Vladimir Golovnev (Glassez)
9399b876eb
Fix torrent checking issues
...
Start all torrents auto-managed to prevent simultaneous checking
of multiple torrents.
Handle checking state of paused torrent to prevent it from being
resumed when qBittorrent is closed until checking isn't complete.
2019-07-09 08:54:50 +03:00
Chocobo1
b9094ff8a5
Use proper log message when there are no error
2019-07-05 23:46:12 +08:00
Chocobo1
664cfe7d69
Fix torrent properties not saved for paused torrents
2019-07-05 23:46:12 +08:00
Chocobo1
c4dbe84832
Use newer libtorrent API
2019-07-05 23:46:12 +08:00
Chocobo1
ed2199b91c
Add "File pool size" option
2019-07-03 18:06:07 +08:00
Chocobo1
6286bc716c
Add "Socket backlog size" option
...
The default value in libtorrent is 5 which is too small nowadays.
The new default value 30 is chosen to be in line with
QTcpServer::maxPendingConnections().
2019-07-03 17:36:56 +08:00
Chocobo1
73cf3fb68f
Use LogMsg() helper
2019-07-02 22:34:22 +08:00
Chocobo1
e6c448aa4f
Replace obsoleted QProcess::finished(int)
...
It is replaced by QProcess::finished(int, QProcess::ExitStatus).
2019-07-01 19:08:37 +08:00
Chocobo1
2bc91fba3e
Use newer libtorrent API
2019-06-28 20:36:31 +08:00
Chocobo1
0b1b3c1f84
Use numeric_limits instead of constants from C
...
In C++, using numeric_limits is more idiomatic compared to using constants.
2019-06-23 11:16:58 +08:00
Chocobo1
042cd4267f
Remove upper limit of "Disk cache" setting
2019-06-22 17:13:24 +08:00
Mike Tzou
1831f71cc4
Merge pull request #10833 from Chocobo1/invokeMethod
...
Use functor based QMetaObject::invokeMethod
2019-06-22 11:24:47 +08:00
Prince Gupta
ece70daaa5
Fix CMake Windows compilation
2019-06-21 18:05:19 +05:30
Chocobo1
11fdf91196
Suppress compiler warning
...
The debug message is emitting a format mismatch warning.
Fixup 4880dc812c
.
And add curly brackets to if statement.
2019-06-21 00:32:12 +08:00
Chocobo1
e31c1ca780
Use functor based QMetaObject::invokeMethod
2019-06-20 11:36:38 +08:00
Chocobo1
4880dc812c
Use appropriate type
2019-06-19 18:52:24 +08:00
Chocobo1
516c968373
Support year unit in userFriendlyDuration()
2019-06-19 18:52:24 +08:00
Chocobo1
a6c5a90630
Remove redundant variable
2019-06-19 18:52:24 +08:00
Chocobo1
3b015db77d
Add comparison operators for ProxyConfiguration
2019-06-19 18:52:24 +08:00
Chocobo1
623210df58
Improve handleFileErrorAlert error message
2019-06-19 18:52:23 +08:00
Vladimir Golovnev (Glassez)
8e65317d61
Rename "fromNativePath" to "toUniformPath"
...
Unlike "toNativePath" which name clearly reflects the function result
"fromNativePath" has no such clear meaning.
Since this function converts path into uniform format "toUniformPath"
is better name.
2019-06-17 15:55:49 +03:00
Mike Tzou
206bb018dd
Merge pull request #10801 from Chocobo1/timeout
...
Add WebAPI session timeout settings
2019-06-17 00:18:01 +08:00
Mike Tzou
46d445d042
Merge pull request #10792 from Chocobo1/rename2
...
Remove empty leftover folders after rename properly
2019-06-16 12:22:22 +08:00
Chocobo1
a64f3bbc6a
Reorder if conditions slightly
2019-06-15 19:08:24 +08:00
Chocobo1
9893a415c0
Fix updated save path not saved for paused torrents
2019-06-15 19:08:23 +08:00
Chocobo1
7d860b6c24
Log save_resume_data_failed_alert
2019-06-15 19:08:23 +08:00
Chocobo1
4e87aebf55
Don't remove parent directories
...
QDir::rmpath removes *all* parent directories while QDir::rmdir removes
the specified directory.
2019-06-15 19:08:23 +08:00
Chocobo1
440860c4a9
Properly remove empty leftover folders after rename
...
TorrentInfo::origFilePath will return the very original path from
.torrent file, not the most recent file path before the rename operation
and thus the code would not be working as we expected.
2019-06-15 19:08:23 +08:00
Chocobo1
89124bdcc8
Add WebAPI session timeout settings
...
Raise default timeout to 1 hour.
2019-06-15 18:57:19 +08:00