Commit Graph

2184 Commits

Author SHA1 Message Date
Vladimir Golovnev
2755190d8e Link PowrProf library to qBittorrent base
PR #20387.
2024-02-10 11:59:14 +03:00
Chocobo1
f87ea1b5d3 Sort languages combobox by language code
* Avoid creating redundant file lists
* Sort languages combobox by language code

PR #20365.
2024-02-05 13:44:18 +08:00
Vladimir Golovnev
88a4990435 Don't use iterator after erase
PR #20357.
Closes #20356.
2024-02-03 08:10:14 +03:00
Chocobo1
94e80d01a8 Clean up code
* Use compiler generated comparison function
* Use designated initializers
* Convert to proper type
* Use reference
* Remove redundant text
  The `msg` already contain the text `Reason:` so it isn't needed.

PR #20312.
2024-01-25 02:56:12 +08:00
Vladimir Golovnev
bab9c15913 Revamp handling of getting resume data from libtorrent
PR #20310.
2024-01-24 15:40:08 +03:00
jNullj
c5d7b62473 Delay subsequent requests to the same host
PR #19801.
Closes #8350.
2024-01-19 20:38:16 +03:00
Vladimir Golovnev
8ec3db1807 Change "metadata received" stop condition behavior
PR #20283.
Closes #20122.
2024-01-19 20:34:40 +03:00
Vladimir Golovnev
14513d051d Don't stuck loading on mismatching info-hashes in resume data
PR #20262.
Closes #20251.
2024-01-13 18:08:16 +03:00
Vladimir Golovnev
97c0abcbf0 Improve Download Manager subsystem
PR #20257.
2024-01-13 08:55:40 +03:00
Chocobo1
ad22237a2f Provide safe helper for converting to 'seconds since epoch' 2024-01-08 15:13:02 +08:00
Chocobo1
5b3b56c918 Improve natural sort algorithm
1. Use proper case folding function instead of `toLower()`.
2. Use locale aware comparison instead of comparing unicode code points.
   Now `a` comes before `A` which is the same as the result from QCollator. A nice side effect
   is now it properly compares locale specific characters (for example `C`, `Č`).
3. Improve testing. Now the test is runnable and stable on all platforms.

PR  #20208.
2024-01-08 14:47:00 +08:00
Vladimir Golovnev
f3d45327e1 Apply inactive seeding time limit set on new torrents
PR #20231.
Closes #20224.
2024-01-05 18:25:29 +03:00
Vladimir Golovnev
9bf7f3b181 Show correctly decoded filename in log
PR #20214.
Closes #20186.
2024-01-02 16:03:12 +03:00
Chocobo1
d5bf0358cb Revise conditional for when to use QCollator
According to https://doc.qt.io/qt-6/qcollator.html#posix-fallback-implementation
The 'POSIX fallback implementation' is only used when ICU is not available. So the correct way is to detect ICU directly and not depend on the OS. The exceptions are macOS and Windows since they support the required functionalities natively.
Closes #20205.
PR #20207.
2024-01-02 16:58:12 +08:00
Chocobo1
073ca4267c Introduce helper function to join values as string
PR #20130.
2023-12-19 00:08:37 +08:00
Chocobo1
cc563d9f78 Fix incorrect usage of translation functions
PR #20107.
2023-12-10 23:07:29 +08:00
Victor Chernyakin
0297f0f34b Allow relative profile paths
PR #19558.
2023-12-07 09:20:37 +03:00
Vladimir Golovnev
7a41192597 Add a class to represent a tag
PR #20028.
Closes #19744.
2023-12-05 17:01:09 +03:00
Chocobo1
0dbac78e17 Revise legal notice
For GUI and non-daemon console, the legal notice won't ask for user acceptance anymore and only
provide an OK button (or Enter key in console) from now on.
For daemon mode, qbt will print the legal notice and continue to run. It will also notify user
to use command line option `--confirm-legal-notice` to suppress the message. The message will be
printed on every start up unless user specify the command line option once.

PR #20080.
2023-12-05 03:13:37 +08:00
Vladimir Golovnev
4ba8eaf4b4 Don't forget to store Stop condition
PR #20045.
Closes #20043.
2023-11-30 08:58:41 +03:00
Chocobo1
8f230bc2e6 Remove unused icon provider singleton 2023-11-27 13:29:54 +08:00
Vladimir Golovnev
60eaff9fcb Simplify share ratio limits processing code
PR #19971.
2023-11-21 22:14:27 +03:00
Chocobo1
6f7f418ec1 Improve error message when daemonizing failed
PR #19959.
2023-11-21 14:05:32 +08:00
Vladimir Golovnev
ef06be63bf Remove incorrect assertions
PR #19964.
2023-11-20 20:37:55 +03:00
Vladimir Golovnev
a1c78a0455 Follow the parent category options
PR #19957.
Closes #19941.
2023-11-20 20:37:17 +03:00
Vladimir Golovnev
75c638e2f8 Add timeouts to network requests
PR #19947.
2023-11-18 09:55:33 +03:00
Vladimir Golovnev
8cc8ffabb0 Improve Torrent files watcher internals
PR #19924.
2023-11-13 14:27:04 +03:00
Vladimir Golovnev
2a20764d39 Add option to enable ".unwanted" folder
PR #19926.
2023-11-13 14:25:27 +03:00
Vladimir Golovnev
0f40fad74d Drop WebUI default credentials
PR #19777.
2023-11-10 07:18:42 +03:00
Chocobo1
6cfbc02d8f Expose Mark-of-the-Web setting in Options 2023-11-06 14:09:34 +08:00
Chocobo1
794cce38f3 Move some functions into Utils::OS namespace
Also remove `Utils::Misc::getUserIDString()` since there are no use of
it.
2023-11-06 14:09:34 +08:00
Vladimir Golovnev
e216a9cf53 Keep unwanted files in separate folder
PR #19842.
Closes #13531.
2023-11-05 11:00:06 +03:00
Vladimir Golovnev
4a20a1660e Correctly handle changing save path of torrent w/o metadata
PR #19829.
Closes #19824.
2023-11-01 09:22:32 +03:00
Chocobo1
98576dacae Add support for quarantine on macOS 2023-10-29 17:41:08 +08:00
Chocobo1
b4642ca9d3 Use proper fallback value for Mark-of-the-Web URL
References:
https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/components/services/quarantine/quarantine_win.cc#211
https://hg.mozilla.org/mozilla-central/file/bd568ad893882d37f094d43cba3f62c78982cd05/toolkit/components/downloads/DownloadIntegration.sys.mjs#l537
2023-10-29 17:41:08 +08:00
Chocobo1
347124812e Migrate away from deprecated functions 2023-10-29 17:40:02 +08:00
Vladimir Golovnev
12674d2990 Prevent crash due to race condition when adding magnet link
PR #19792.
2023-10-28 10:41:53 +03:00
Vladimir Golovnev
6860c0d60d Allow to set qBittorrent as default program
Register qBittorrent as possible default program for .torrent files and
magnet links during install.

PR #19446.
2023-10-24 13:31:01 +03:00
Chocobo1
63499511cb Forward declare "Add torrent manager" type
PR #19713.
2023-10-16 14:52:09 +08:00
Chocobo1
cba433823f Improve .torrent associate handling
* Use correct pointer type in NSIS scripts
* Only remove qbt specific registry keys when uninstalling or disassociating
* Set .torrent Content Type when associating .torrent format
* Move ".torrent association" functions to Utils::OS class

PR #19709.
2023-10-16 14:51:17 +08:00
Hanabishi
90e023f138 Fix WebUI greeting for qbittorrent-nox
* Check if WebUI is enabled and print an appropriate message otherwise.
* Print an actual runtime server scheme, address and port.

PR #19696.
2023-10-16 14:48:32 +08:00
Nick Korotysh
e6ec3d0c2b Display download/upload speed in dock icon
Implementation is based on Transmission sources.

Closes #2761
Closes #3671
Closes #7098
Closes #11350
Closes #18527

PR #19595
2023-10-16 14:45:24 +08:00
Vladimir Golovnev
30189ae943 Allow to remove tracker from tracker filter widget menu
PR #19681.
Closes #11100.
2023-10-11 21:58:05 +03:00
Chocobo1
34f7b75f12 Add support for Mark-of-the-Web
https://redcanary.com/threat-detection-report/techniques/mark-of-the-web-bypass/
https://mikehadlow.blogspot.com/2011/07/detecting-and-changing-files-internet.html
https://textslashplain.com/2016/04/04/downloads-and-the-mark-of-the-web/

Closes #19648.
PR #19675.
2023-10-07 12:28:07 +08:00
Vladimir Golovnev
c051ee9409 Revamp tracker list widget
Internally redesign tracker list widget using Qt Model/View architecture.
Make tracker list sortable by any column.

PR #19633.
Closes #261.
2023-10-03 08:42:05 +03:00
Vladimir Golovnev
73028f9930 Double check whether database needs to be updated
Prevents qBittorrent from being failed to start after torrents database metadata is corrupted by one of the first releases of v4.5.x series.

PR #19668.
Closes #19622.
2023-10-01 20:59:27 +03:00
Chocobo1
bda18ad29b Add logging for some alerts
Specifically these alerts:
* i2p_alert
* session_error_alert

PR #19662.
2023-09-30 11:43:44 +08:00
Chocobo1
47439a7efd Use reference when parsing URL query
PR #19659.
2023-09-30 11:42:35 +08:00
Vladimir Golovnev
16111496ca Improve handling the case when torrent enters/leaves trackerless state
PR #19658.
2023-09-29 07:34:21 +03:00
Vladimir Golovnev
43e9403a4c Filter out duplicate trackers when replacing
PR #19656.
2023-09-29 07:33:19 +03:00