Commit graph

10947 commits

Author SHA1 Message Date
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
0404ff9fb3
Migrate away from deprecated function
`QStyle::standardPixmap()` is deprecated.

PR #19660.
2023-09-30 11:43:11 +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
Vladimir Golovnev
7ab90cfc40
Don't forget to delete worker thread object
PR #19655.
2023-09-29 07:32:09 +03:00
Chocobo1
b3fda76027
Allow users to specify Python executable path
Closes #19195.
PR #19644.
2023-09-28 01:27:48 +08:00
Chocobo1
529e49aea7
Fix performance regression
Follow up #19417.
PR #19652.
2023-09-28 01:26:57 +08:00
Vladimir Golovnev
46c1c9de65
Fix memory leaks
* Fixes a couple of memory leaks (although not dangerous in practice, since we are talking about objects with a lifetime up to the end of the application)
* Fixes heap use after free

PR #19650.
Closes #19632.
2023-09-27 08:00:20 +03:00
Jay
f3b688217e
Show RSS feed title in HTML browser
RSS feed title will be displayed on top of the HTML browser when 'Unread' is selected in feed list.

PR #19604.
2023-09-20 13:15:08 +03:00
Vladimir Golovnev
5e5c6aa7d8
Don't show outdated tracker message
PR #19616.
Closes #19612.
2023-09-20 13:12:54 +03:00
Priit Uring
1537f1e703
Sync flag icons with upstream
* Includes all 268 flags.
* Upstream commit `a7b7c3c55560cb39d96e70324876e1bb5b1c625b` - (Release v6.11.0)
* Flags source from (zip): https://github.com/lipis/flag-icons/releases/tag/v6.11.0

PR #19518.
2023-09-18 19:13:16 +03:00
Trim21
30badbf36e
WebUI: fix missing error icon
PR #19610.
Closes #18737.
2023-09-18 16:42:03 +03:00
Vladimir Golovnev
5a334175a8
Use Fusion style on Windows 10+
PR #19051.
2023-09-18 08:38:35 +03:00
Chocobo1
dcba9eda00
Expose 'DHT bootstrap nodes' setting
This allows user to select DHT bootstrap nodes. Or even use their own bootstrap nodes.

PR #19594.
2023-09-14 13:57:34 +08:00
Vladimir Golovnev
633167a6da
Prevent torrent from being started unexpectedly
Improves "Metadata received" stop condition handling by "Add new torrent" dialog.
The problem is when "Metadata received" stop condition is set the metadata can still be received 0.1 sec before clicking the "OK" button so torrent is actually added with metadata and therefore it cannot respect "Metadata received" stop condition.
The solution is to uncheck "Start torrent" checkbox once metadata is received.

PR #19597.
Closes #19583.
2023-09-13 15:48:13 +03:00
Hanabishi
c394868f87
Implement Reannounce In column
PR #19571.
2023-09-09 08:12:43 +03:00
Vladimir Golovnev
2deb7eb3d9
Don't limit max RSS feed file size
PR #19576.
2023-09-08 09:19:16 +03:00
Vladimir Golovnev
7cd2445a49
Improve tracker entries handling
PR #19496.

* Add torrent entry status to represent tracker error
* Add torrent entry status to represent unreachable endpoint
* Display tracker entry next/min announce time
* Reset tracker entries when torrent is stopped
2023-09-07 08:58:13 +03:00
Chocobo1
39efd0e9ff Remove thin space
Generally qbt doesn't put a space before percentage symbol.
This change makes the UI elements consistent.
2023-09-04 13:10:12 +08:00
Chocobo1
ff80e0ce66 Use Qt built-in non-breaking space variable 2023-09-04 13:10:12 +08:00
Victor Chernyakin
65930ddf94
Use std::pair instead of QPair
PR #19548.
2023-09-03 09:39:34 +03:00
Chocobo1
4d2015cfed
Support creating .torrent with larger piece size
Warning: users are at their own discretion to create .torrent with >= 64 MiB piece size as not
every torrent client supports it.
Larger piece sizes are only available when using libtorrent 2.x. libtorrent 1.x is not
efficient with memory usage and in order to avoid user complaints it is limited to 128 MiB.
Also note that, as of this writing, libtorrent 2.0.9 has an internal limitation that only
allows loading maximum 256 MiB piece size. And therefore > 256 MiB size options are forbidden
for now.

Closes #19527.
PR #19535.
2023-09-03 14:31:32 +08:00
Matic Babnik
145971b915
Add "Add Tags" field for RSS rules in WebUI
PR #19519.
2023-09-02 21:37:53 +03:00
Chocobo1
43e3d0b4b2 Make the title label selectable
And therefore its text is copyable.
2023-09-01 00:18:25 +08:00
Chocobo1
0fdb1b3f53 Add button to copy library versions to clipboard
Closes #18702.
2023-09-01 00:18:25 +08:00
Chocobo1
24da51ffa0
Perform type conversion properly
Closes #19521.
PR #19525.
2023-09-01 00:18:03 +08:00
sledgehammer999
e434812cda
Bump copyright year 2023-08-29 00:17:23 +03:00
sledgehammer999
9a1df0c595
Pull translations from Transifex 2023-08-29 00:05:14 +03:00
Xu Chao
9a73a21f3f
Don't set parent of "Add new torrent dialog" on macOS
PR #19494.

Closes #12849.
Closes #12852.
Closes #19072.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-08-28 13:50:36 +03:00
Victor Chernyakin
e045b4678d
Use std::clamp() instead of various custom implementations
PR #19501.
2023-08-27 21:55:08 +03:00
Chocobo1
d8a03cd8d8
Use atomic primitives from standard library
QAtomicInteger underlying is using std::atomic structures, so
using std::atomic directly should not be a problem for us.

PR #19507.
2023-08-28 02:08:40 +08:00
Xu Chao
270c63d64c
Open "Save path" if torrent has no metadata
PR #19495.
Closes #18738.
2023-08-27 08:38:59 +03:00
rcarpa
bbac94cc95
Use QThreadPool for torrent creation
The change is in preparation for adding the possibility to create
torrent files via the API.

Rework TorrentCreatorThread to be a more lightweight QRunnable class.
The parameters are now defined on construction time and are fixed
throughout the lifecycle of the TorrentCreator. The lifecycle of the
object is not bound to the one of QDialog anymore; it is now handled
by the QThreadPool. This will enable easier queueing of multiple torrent
creation jobs without risk of spawning many threads.

PR #19500.
2023-08-27 00:27:11 +08:00
Vladimir Golovnev
9ab8203c8a
Don't overwrite tracker entry of unrelated protocol
PR #19493.
2023-08-23 12:38:18 +03:00
Vladimir Golovnev
c805606524
Improve tracker entries handling
PR #19468.

* Use QHash to map tracker endpoints
* Don't clear numPeers unexpectedly
* Remove outdated tracker entry endpoints
* Move presentation logic from Core to GUI code
* Show all endpoints per tracker in tree structure

---------

Co-authored-by: Kacper Michajłow <kasper93@gmail.com>
2023-08-21 10:27:19 +03:00
Victor Chernyakin
34d30ed031
Replace Q_UNUSED with [[maybe_unused]] attribute
PR #19471.
2023-08-18 07:09:40 +03:00
Victor Chernyakin
f3f4610ba4
Convert Windows header names to lowercase
PR #19465.
2023-08-16 10:29:13 +03:00
Vladimir Golovnev
dcf3e97291
Implement gateway for adding new torrents
PR #19355.
2023-08-14 18:17:56 +03:00
Victor Chernyakin
e4313d6651
Use using declarations instead of typedef
PR #19458.
2023-08-14 18:14:36 +03:00
Victor Chernyakin
52fbb774a2
Disable clang-tidy for 3rd-party code
PR #19459.
2023-08-14 18:13:28 +03:00
Vladimir Golovnev
a0e41a11de
Display error message when unrecoverable error occurred
PR #19462.
2023-08-14 16:03:57 +03:00
Vladimir Golovnev
cab5edb721
Add more precondition checks when handle async operation result
PR  #19460.
2023-08-14 16:02:50 +03:00
Vladimir Golovnev
7a9a102b6f
Check returned Bundle ID for NULL
PR #19463.
2023-08-14 16:01:54 +03:00
Omar Abdul Azeez
6ba561dea2
Fix overwriting feeds.json with an incomplete load of it
PR #19444.
Closes #19439.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-08-12 18:59:24 +03:00
Vladimir Golovnev
56ba5e5182
Correctly load colors from custom themes
PR #19448.
Closes #19447.
2023-08-12 18:57:34 +03:00
Chocobo1
69d60b5f1c
Specify interface requirements as an C++ concept
PR #19440.
2023-08-12 20:53:03 +08:00
Victor Chernyakin
850da9dd83
Replace Q_UNLIKELY with [[unlikely]] attribute
PR #19445.
2023-08-11 08:54:26 +03:00
Chocobo1
502b3d3228
Merge pull request #19427 from Chocobo1/cleanup
Remove unused include
2023-08-11 13:49:35 +08:00
Chocobo1
31fe327763
Move to separate headers
Hopefully this can speed up compilation times.
https://doc.qt.io/qt-6/qtglobal.html#details

PR #19430.
2023-08-11 13:47:55 +08:00
Chocobo1
870bcc7a19
Switch to QHash 2023-08-09 20:36:41 +08:00
Victor Chernyakin
f2b4aa6570
Remove unused parameter in Utils::Gui::scaledPixmap()
PR #19426.
2023-08-09 20:34:12 +08:00
Chocobo1
5c06d0aa75
Replace template conditionals with C++20 requires clause
Related: https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-constraints.html

PR #19424.
2023-08-09 20:33:19 +08:00
Vladimir Golovnev
33d767b765
Disable using Qt functions deprecated up to Qt 6.5
* Disable using Qt functions deprecated up to Qt 6.5
* Utilize QSet::removeIf()

PR #19419.
2023-08-08 08:52:13 +03:00
Vladimir Golovnev
06581636a1
Utilize QByteArrayView
PR #19417.
2023-08-07 11:21:32 +03:00
Vladimir Golovnev
a0fa1709d5
Raise minimum supported Qt version to 6.5
PR #19394.
2023-08-07 07:19:43 +03:00
Chocobo1
699dc1689a
Remove column span
The property widget already has scroll bars and thus we don't need this span.

Closes #15000.
PR #19404.
2023-08-04 13:01:08 +08:00
Chocobo1
a427b9228d
Ensure file name is valid when exporting torrents
Closes #19275.
Closes #19329.
PR #19403.
2023-08-04 13:00:48 +08:00
Jimmy Axenhus
c4ed40b82f
Set property instead of set attribute
This commit resolves an issue with Safari not properly selecting an `<option>`.

Closes #17866.
PR #19024.
2023-08-03 13:34:24 +08:00
Chocobo1
e68cf87f05
Merge pull request #19396 from Chocobo1/ci
GHA CI: specify a category for CodeQL analysis
2023-08-03 11:41:40 +08:00
Vladimir Golovnev
fccdeb4e78
Don't use variable after it is moved
PR #19397.
2023-08-02 15:04:15 +03:00
Chocobo1
6c16a09385
Guard against potential negative number 2023-08-01 15:27:04 +08:00
Chocobo1
b35c2bca5d
Merge pull request #19390 from Chocobo1/openssl
Remove unused conditional
2023-08-01 12:57:12 +08:00
Chocobo1
852927bf50
Use qreal type whenever feasible
The idea is follow Qt and use `qreal` instead of `double` for generic code.
2023-07-31 03:50:49 +08:00
Chocobo1
a5a4ea9ba0
Remove unused conditional 2023-07-31 03:03:02 +08:00
Vladimir Golovnev
11efd26acc
Fix crash on application exit (Qt 6.5)
PR #19169.
2023-07-27 15:09:14 +03:00
Vladimir Golovnev
006ad23d0d
Map selected indexes to source before modify the data
Changing the data may affect the layout of the sort/filter model, which in turn may invalidate the indexes previously obtained from selection model before we process them all. Therefore, we must map all the selected indexes to source before start processing them.

PR #19372.
Closes #19359.
2023-07-26 18:19:32 +03:00
Peter Dave Hello
9975230dea
Update Transifex link in TRANSLATION_INSTRUCTIONS
PR #19366.
2023-07-25 15:28:56 +03:00
Chocobo1
e31c3376bd
Use library provided erase_if()
`Algorithm::removeIf()` is still valuable as `QHash::removeIf()` predicate require an
iterator or a `std::pair`, which both require more code to unpack the variable and therefore
cumbersome to use.

PR #19353.
2023-07-24 20:29:02 +08:00
Chocobo1
9898901236
Merge pull request #19349 from Chocobo1/c++20
Use default operators generated/synthesized by compiler
2023-07-23 12:54:44 +08:00
Chocobo1
56c52af124
Mark override for virtual destructors
PR #19348.
2023-07-22 12:46:21 +08:00
Chocobo1
c20a77aa77
Merge pull request #19346 from Chocobo1/powerMgt
Avoid excessive power management updates
2023-07-22 12:45:55 +08:00
Chocobo1
d6adebe4c0
Switch to efficient algorithm 2023-07-22 04:11:39 +08:00
Chocobo1
c58aa58cba
Use C++20 designated initializers 2023-07-22 02:25:44 +08:00
Chocobo1
7612d5d0ef
Use default operators generated/synthesized by compiler 2023-07-22 02:25:44 +08:00
Chocobo1
1874fd7f93
Fix incorrect state
Fix up f3f9cfe44e.
2023-07-22 01:59:36 +08:00
Chocobo1
0bcc1cf4a0
Fix indentation 2023-07-21 20:41:00 +08:00
Chocobo1
cffcf5783f
Avoid excessive power management updates 2023-07-21 20:39:25 +08:00
Vladimir Golovnev
10ee1ab7a2
Switch to C++20
PR #19336.
2023-07-21 15:38:49 +03:00
Vladimir Golovnev
f27f2c20e0
Add unified class to represent parsed torrent metadata
* Add unified class to represent parsed torrent metadata
* Unify startup logic of "Add new torrent dialog"

PR #19301.
2023-07-21 08:40:16 +03:00
Vladimir Golovnev
d554f4d44a
Always use QStyledItemDelegate as base of delegate classes
PR #19340.
2023-07-21 08:37:11 +03:00
Chocobo1
d357cdd5f9
Set power state to idle when deconstructing class 2023-07-21 12:19:29 +08:00
Chocobo1
0f862fcf9f
Use efficient algorithm for removing entries
PR #19345.
2023-07-21 12:18:26 +08:00
Chocobo1
6bd56478fd
Merge pull request #19344 from Chocobo1/systemd
Add support for systemd power management
2023-07-21 12:17:49 +08:00
Chocobo1
76b5ca6b8b
Remove debugging messages
As requested in https://github.com/qbittorrent/qBittorrent/pull/19344#discussion_r1269156895
2023-07-20 18:05:40 +08:00
Chocobo1
dbb1b1e9bb
Use default timeout 2023-07-20 18:05:39 +08:00
Chocobo1
b5fbfdf106
Use correct type
https://doc.qt.io/qt-6/qdbustypesystem.html
https://dbus.freedesktop.org/doc/dbus-specification.html#id-1.3.8
2023-07-20 18:05:39 +08:00
Chocobo1
f3f9cfe44e
Add support for systemd power management 2023-07-20 18:05:39 +08:00
Vladimir Golovnev
dbe79484d2
Drop support of Qt 5
Also remove usage of some deprecated stuff.

PR #19338.
2023-07-20 11:17:27 +03:00
Vladimir Golovnev
5e610cfdcf
Drop support of Autoconf/Automake and QMake
PR #19335.
2023-07-20 11:15:46 +03:00
Chocobo1
15b46259f3
Add logging 2023-07-19 00:50:01 +08:00
Chocobo1
d569eaa991
Revise message 2023-07-19 00:49:58 +08:00
Chocobo1
64c3845a7c
Detect D-Bus interface 2023-07-18 22:31:52 +08:00
Chocobo1
79afa0b84d
Clean up coding style 2023-07-18 20:41:21 +08:00
Chocobo1
38d773ca46
Change default power management to Gnome Session Manager
As seen on https://www.freedesktop.org/wiki/Specifications/power-management-spec/,
the `org.freedesktop.PowerManagement` is obsolete.
2023-07-18 20:41:19 +08:00
axet
9194f60ac0
Inhibit suspend instead of screen idle
PR #19316.
Closes #19312.
2023-07-18 15:40:17 +03:00
Vladimir Golovnev
4a217dc42f
Don't initialize Properties widget size until window is shown
PR #19328.
Closes #19322.
2023-07-18 15:06:27 +03:00
Vladimir Golovnev
9171b73edb
WebUI: use new format of RSS rules
PR #19326.
Fixes regression of #18824.
Closes #19323.
2023-07-18 15:05:17 +03:00
sledgehammer999
0f0de5e4f8
Bump to v5.0.0alpha1 2023-07-17 09:25:50 +03:00
sledgehammer999
c1d64cc3ea
Sync translations from Transifex and run lupdate 2023-07-17 09:14:36 +03:00
Vladimir Golovnev
57085ca126
Use previous approach of deducing favicon URL
PR #19325.
Fixes regression of #19062.
Closes #19307.
2023-07-17 08:11:07 +03:00
Vladimir Golovnev
7b4b7c2b81
Always honor the configured behavior for merging trackers
PR #19305.

* Always honor the configured behavior for merging trackers
* Clarify merging trackers related options
2023-07-16 20:59:18 +03:00
Vladimir Golovnev
6a3a5fac83
Correctly add new column to existing database
PR #19321.
2023-07-15 20:49:51 +03:00
Christopher
35e18498d9
Add option to stop seeding when torrent has been inactive
PR #19294.
Closes #533.
Closes #8073.
Closes #15939.
2023-07-15 13:14:42 +03:00
Vladimir Golovnev
f99a98306d
Log when duplicate torrents are being added
PR #19306.
Closes #18458.
2023-07-14 15:33:06 +03:00
Chocobo1
b0cfe53329
Merge pull request #19302 from Chocobo1/connection
Move signal/slot connections out of .ui files
2023-07-13 13:27:14 +08:00
Chocobo1
392949b313
Rename variable to avoid name clash 2023-07-13 00:34:33 +08:00
Chocobo1
b17307f283
Move signal/slot connections out of .ui files
This unify the place (.cpp file) where we handle signal/slot connections.
2023-07-13 00:34:33 +08:00
sledgehammer999
e739d38061
Sync translations from Transifex and run lupdate 2023-07-12 01:50:01 +03:00
Chocobo1
20f4d0c4e3
Merge pull request #19292 from Chocobo1/head
Fix response for HTTP HEAD method
2023-07-11 11:24:28 +08:00
Chocobo1
4f6038c350
Merge pull request #19291 from Chocobo1/limits
Expose 'bdecode limits' settings
2023-07-11 11:24:09 +08:00
Fabricio Silva
f08556be30
WebUI: Preserve the network interfaces when down
PR #19286.
2023-07-11 11:23:37 +08:00
Chocobo1
543745b3f2
Avoid stuffing the log via junk requests 2023-07-09 21:23:09 +08:00
Chocobo1
cb0c09769f
Response proper error status for invalid request methods 2023-07-09 21:23:09 +08:00
Chocobo1
e8f5a3b44e
Fix response for HTTP HEAD method
Closes #19288.
2023-07-09 21:23:08 +08:00
Chocobo1
5a660fc8a9
Expose 'bdecode limits' settings
This includes:
* Bdecode depth limit
* Bdecode token limit
2023-07-09 15:36:13 +08:00
stalkerok
488464731d
Change some default settings
* Reduce default file pool size to 100
* Reduce default stop tracker timeout to 2 seconds

PR #19171.
2023-07-06 14:25:53 +03:00
xavier2k6
fb68604ee7
Display correct Minimum Python requirement
PR #19281.
2023-07-06 10:43:35 +03:00
Vladimir Golovnev
4ef9a6444a
Add options to adjust behavior of merging trackers to existing torrent
PR #19278.
Closes #19251.
2023-07-06 07:55:59 +03:00
Chocobo1
66dfe8545d
Expose 'max torrent file size' setting 2023-07-06 12:45:09 +08:00
Chocobo1
fff7b1dcbd
Merge pull request #19277 from Chocobo1/ctor
Don't update settings when it hasn't changed
2023-07-06 12:41:45 +08:00
Chocobo1
33875aa70a
Mark singleton class as final 2023-07-05 03:32:54 +08:00
Chocobo1
9d7dad4a61
Don't unnecessarily restart Web server
When related settings hasn't changed.
2023-07-05 03:32:53 +08:00
Chocobo1
213b6e316c
Don't emit superfluous signal
`Preferences::apply()` might emit superfluous changed signal even when the settings hasn't
changed (e.g. not dirty), this commit fixes it.
2023-07-05 03:32:53 +08:00
Chocobo1
ffc3d8d345
Don't update settings when it hasn't changed
So when a setting is the same as the default, it won't write an entry to config file on disk.
2023-07-05 03:32:53 +08:00
Vladimir Golovnev
7ec80263e1
Allow to globally disable the use of proxy
PR #19273.
Closes #19141.
2023-07-04 09:27:46 +03:00
Chocobo1
66e533f505
Avoid redundant buffer copying
PR #19272.
2023-07-04 14:04:41 +08:00
Vladimir Golovnev
80c637bf99
Always use the same limits when parse bencoded data
PR #19263.
2023-07-02 11:37:37 +03:00
gdim47
48d5e3326b
Improve performance when scrolling large torrents
PR #19255.
2023-07-02 11:36:42 +03:00
Chocobo1
80791e328d
Fix wrong behavior when reading text
Also add another 'file read error' status.

Closes #19254.
PR #19262.
2023-07-02 13:23:20 +08:00
Chocobo1
08a771468d
Merge pull request #19260 from Chocobo1/func
Fix code defects
2023-07-02 12:57:15 +08:00
Chocobo1
c3fc96dfe6
Visually validate input path in torrent creator dialog
PR #19245.
2023-07-02 12:56:41 +08:00
Chocobo1
715a4f3eb6
Use move construct for large data 2023-07-01 16:28:15 +08:00
Chocobo1
8655e48336
Use move construct for shared pointers 2023-07-01 16:28:13 +08:00
Chocobo1
3c139ca333
Fix potential use-after-move
The evaluation order for function parameters is unspecified in C++.
https://stackoverflow.com/questions/2934904/order-of-evaluation-in-c-function-parameters

Fix up 1b2ff0f6f8.
2023-07-01 14:38:50 +08:00
Ignat Loskutov
f4deb1050f
Disable symlink resolving in Torrent creator
PR #19199.
2023-06-28 14:27:24 +03:00
Chocobo1
6680fdda18
Fix typos 2023-06-26 16:45:44 +08:00
Vladimir Golovnev
1c654d8f47
Immediately update torrent status on moving files
PR #19220.
2023-06-25 12:45:58 +03:00
Vladimir Golovnev
c90863f217
Don't miss to enable Apply button
PR #19221.
Closes #19082.
2023-06-25 12:44:33 +03:00
luzpaz
deec2ae1b1
Fix various typos
PR #19213.
2023-06-24 16:04:04 +03:00
Chocobo1
dffb93a6aa
Merge pull request #19208 from Chocobo1/buffer
Avoid unnecessary memory allocation/relocation
2023-06-24 13:03:00 +08:00
Vladimir Golovnev
3b948b0130
Drop I2P support with libtorrent 1.2
PR #19207.
Closes #19152.
2023-06-23 16:24:34 +03:00
Chocobo1
b3d2ba7d07
Initialize regex only once
This code path is commonly used so let it initialize only once.
2023-06-23 14:49:22 +08:00
Chocobo1
03d3552ee0
Avoid unnecessary memory allocation/relocation 2023-06-23 14:49:22 +08:00
Luka Čelebić
379b0dbe40
Add alternative shortcut CTRL+E for CTRL+F
PR #19190.
2023-06-20 11:52:09 +03:00
thalieht
f213f81727
Fix transfer list tab hotkey
PR #19200.
2023-06-20 07:45:17 +03:00
Chocobo1
1f2a6455b6
Merge pull request #19188 from Chocobo1/literalOperator
Rename literal operator
2023-06-19 12:45:20 +08:00
sledgehammer999
fc8c74989b
Bump to 4.6.0beta2 2023-06-18 21:27:12 +03:00
Chocobo1
b01a48879a
Add missing header 2023-06-18 13:51:19 +08:00
sledgehammer999
2bbfd317ce
Sync translations from Transifex and run lupdate 2023-06-18 01:37:12 +03:00
Chocobo1
e6d85a468b
Rename literal operator
Qt 6.4 introduced `QString operator""_s()` and the previous `""_qs` is
deprecated since Qt 6.8.
2023-06-18 03:32:44 +08:00
Chocobo1
f6b58f36e2
WebUI: set Cross Origin Opener Policy to same-origin
This separates browsing context for different origin sites and prevents
leaking data from it.
This header is only present when using built-in WebUI. Alternative WebUI
is not affected.
https://web.dev/why-coop-coep/#coop

PR #19157.
2023-06-14 13:38:48 +08:00
Chocobo1
79ca2e145f
Don't read unlimited data from files
It now guards against reading infinite files such as `/dev/zero`.
And most readings are bound with a (lax) limit.
As a side effect, more checking are done when reading a file and
overall the reading procedure is more robust.

PR #19095.
2023-06-14 13:38:19 +08:00
Chocobo1
81bc910d68
Provide context to translation strings
PR #19120.
2023-06-12 14:03:12 +08:00
Vort
ff5d02bcf2
Make I2P session options configurable
PR #19079.
Closes #18980.
2023-06-06 08:35:40 +03:00
tearfur
2e87e6e0df
Use hostname instead of domain name in tracker filter list
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>

PR #19062.
Closes #19035.
2023-06-05 14:57:37 +03:00
Vladimir Golovnev
a5e8af5070
Allow to assign priority to RSS download rule
PR #19000.
2023-06-05 14:55:41 +03:00
Vladimir Golovnev
cf415dd7fe
Allow to disable confirmation of Pause/Resume All
PR #19067.
Closes #18155.
2023-06-04 08:57:14 +03:00
Chocobo1
83e6afcb71
Merge pull request #19069 from Chocobo1/sort
WebUI: use natural sort on tracker list
2023-06-04 12:52:29 +08:00
Chocobo1
62d96c068a
Remove SGML parser
This library is unmaintained, outdated and plugin authors are encouraged to use html.parser
from Python Standard Library instead.

https://docs.python.org/3/library/html.parser.html

PR #19068.
2023-06-04 12:52:06 +08:00
xavier2k6
040c3c7ef8
Sync "expected lite" with upstream
PR #19049.
2023-06-03 17:42:57 +03:00
Raymond Ha
3ef8726083
WebUI: Set Connection status and Speed limits tooltips
PR #19052.
Fixes #18958.
2023-06-03 17:39:58 +03:00
Chocobo1
dad9157d84
Don't overwrite original variable 2023-06-02 18:12:01 +08:00
Chocobo1
5cea69472f
Use natural sort 2023-06-02 17:44:17 +08:00
ttys3
b1492bcd7d
WebUI: Show only hosts in tracker filter list
PR #18190.
2023-06-02 17:36:33 +08:00
Vladimir Golovnev
4550469bb9
Fix incorrect height of Filter line edit
PR #19058.
2023-06-02 11:47:53 +03:00
Vladimir Golovnev
160af4feef
Show I2P peer addresses
PR #18845.
2023-06-01 17:16:03 +03:00
Priit Uring
b27e839405
Sync flag icons with upstream
PR #19027.
2023-06-01 06:49:09 +03:00
sledgehammer999
ecc08dee09
Bump to 4.6.0beta1 2023-05-29 16:03:44 +03:00
Chocobo1
fbe93f0c47
Improve "apply memory working set" routine
Now it will try to raise the hard limit.
And also the log shows a more specific message when the new limit is not
applicable.

PR #19022.
2023-05-28 13:41:44 +08:00
sledgehammer999
11945eef3f
Sync translations from Transifex and run lupdate 2023-05-28 01:40:37 +03:00
Raymond Ha
a35dbc6df7
WebUI: Fix category save path
PR #19008.
2023-05-26 11:52:37 +03:00
Vladimir Golovnev
a59301712e
Avoid race condition when waking worker thread
PR #19005.
2023-05-23 02:22:16 +03:00
Chocobo1
b406d669b3
Bump python version minimum requirement
PR #18996.
2023-05-22 12:37:02 +08:00
Chocobo1
4ef8f39f23
Use python isolate mode
This (more or less) avoids user's environment variables tampering the
search process.
And also remove usages of `eval()` and `exec()`.

PR #18995.
2023-05-21 14:04:44 +08:00
Vladimir Golovnev
34802362ad
Fix inconsistent background of filters widget
PR #18956.
Fixes regression of #18918.
2023-05-11 09:11:11 +03:00
Vladimir Golovnev
c10f1f0ad2
Consider explicitly specified parameters when resolving optional ones
PR #18955.
Closes #18951.
2023-05-11 09:09:57 +03:00
Vladimir Golovnev
58ae98026b
Try to detect system wake-up event
PR #18934.
Closes #17898.
2023-05-10 15:02:15 +03:00
Chocobo1
32a55551fe
Merge pull request #18936 from Chocobo1/tidy
Code clean up
2023-05-08 13:11:11 +08:00
Vladimir Golovnev (Glassez)
bb959bda8c
Add helpers for suggesting torrent paths 2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
d629c77184
Improve FlowLayout to support vertical alignment 2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
b953d223e4
Use check box to represent "Skip checking" 2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
6fa53b5ed8
Override add torrent params in a more comprehensible way 2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
c777ed3299
Correctly use fallback value for "Add to top of queue" option 2023-05-07 16:34:56 +03:00
Vladimir Golovnev (Glassez)
341b2f345a
Use FlowLayout in AddTorrentParamsWidget 2023-05-07 16:34:55 +03:00
Vladimir Golovnev (Glassez)
905f141657
Revamp "Automated RSS downloader" dialog 2023-05-07 16:34:52 +03:00
Vladimir Golovnev (Glassez)
0a87bb368f
Extract "add torrent params" serialization code 2023-05-07 16:33:32 +03:00
Vladimir Golovnev (Glassez)
93a1e58554
Revamp "Watched folder options" dialog 2023-05-07 16:33:32 +03:00
Vladimir Golovnev (Glassez)
0cc29f1851
Implement "Add torrent params" editing widget 2023-05-07 16:33:20 +03:00
Chocobo1
81daad92ec
Combine identical branches 2023-05-07 19:41:55 +08:00
Chocobo1
41be7e9bbe
Make function const 2023-05-07 19:41:55 +08:00
Chocobo1
179a61d75e
Add curly braces 2023-05-07 19:41:55 +08:00
Chocobo1
73134d5f4d
Initialize member variables 2023-05-07 16:30:56 +08:00
Chocobo1
29c05ed3e8
Use std::make_unique 2023-05-07 14:38:03 +08:00
Chocobo1
e375f3ee0b
Use reference 2023-05-07 14:38:02 +08:00
Chocobo1
e7e5c38384
Remove superfluous header include 2023-05-06 16:48:49 +08:00
Chocobo1
9a00839a75
Simplify code 2023-05-06 16:35:13 +08:00
Chocobo1
79e85d01fa
Mark move functions as noexcept 2023-05-06 16:35:13 +08:00
Chocobo1
e408973ee6
Add pointer qualifications to auto-typed variables 2023-05-06 16:35:13 +08:00
Chocobo1
8c9b6e2f2d
Use reference whenever possible 2023-05-06 16:35:13 +08:00
Chocobo1
5b43782f58
Remove redundant virtual specifier 2023-05-06 16:35:12 +08:00
Chocobo1
2059825597
Don't use instance for accessing static functions 2023-05-06 16:35:12 +08:00
Chocobo1
e1be46820b
Remove redundant initialization 2023-05-06 16:35:12 +08:00
Chocobo1
8219b1f695
Use default constructor, destructor 2023-05-06 16:35:12 +08:00
Chocobo1
3fbe380582
Remove redundant function declaration 2023-05-05 14:51:02 +08:00
Chocobo1
5f00d42a49
Drop superfluous const 2023-05-05 14:51:02 +08:00
Chocobo1
15de7aed9a
Use perfect forwarding 2023-05-05 14:51:02 +08:00
Vladimir Golovnev
5a1dcbae9c
Don't make assertion about 3rd party logic
PR #18913.
2023-05-03 07:24:52 +03:00
Vladimir Golovnev
7c6a852f85
Revamp TransferListFiltersWidget implementation
Avoid using style sheets to better support color mode switching.

PR #18918.
2023-05-03 07:24:03 +03:00
Vladimir Golovnev
147b22ddd3
Revamp LineEdit implementation
PR #18917.
2023-05-03 07:23:19 +03:00
Vladimir Golovnev
d83b2a6131
Make sure ResumeSessionContext is destroyed before start processing
PR #18912.
2023-05-02 09:48:49 +03:00
Vladimir Golovnev
821e946bbe
Remove outdated code
PR #18908.
2023-05-01 08:29:35 +03:00
Deltadroid
634eb4a183
Replace status_t with disk_status
libtorrent 2.1 has made the following change:
"make status_t a proper flag type, to clean up oversized_file indication
from disk subsystem"

PR #18879.
2023-04-30 10:12:15 +03:00
Vladimir Golovnev
758ea7edca
Improve logging of running external program
PR #18901.
2023-04-30 10:10:03 +03:00
Vladimir Golovnev
1bd499565e
Completely initialize native status on torrent creation
PR #18900.
2023-04-30 10:09:09 +03:00
Chocobo1
bbd5ed1142
Switch URLs to https
PR #18876.
2023-04-23 15:09:58 +08:00
sledgehammer999
0f033ec9c8
Regenerate translation files 2023-04-20 03:34:29 +03:00
Chocobo1
7397c80837
WebUI: improve 'exporting torrent' behavior
Don't stop the whole operation when a torrent doesn't exists and try to export the remaining
existing ones.

PR #18858.
2023-04-18 13:59:55 +08:00
Vladimir Golovnev
51132c817b
Improve move storage handling
PR #18857.
Closes #18795.
2023-04-18 08:06:18 +03:00
Chocobo1
1fe006d16f
Merge pull request #18853 from Chocobo1/exportTorrent
Work around Chrome download limit
2023-04-17 00:12:30 +08:00
Sentox6
bd31eddb94
Inhibit system sleep while torrents are moving
PR #18783.
2023-04-16 18:09:34 +03:00
DivineHawk
0defb7d79d
WebUI: Use workaround for IOS file picker
PR #18837.
Fixes #18683.
2023-04-16 14:30:30 +03:00
七海千秋
1e400df324
Set "SameSite=None" if CSRF Protection is disabled
PR #18843.
2023-04-16 14:27:49 +03:00
Chocobo1
9ea48539b4
Inline variable declared in header 2023-04-15 14:53:13 +08:00
Chocobo1
d63e0ad78f
Work around Chrome download limit
Closes #18775.
2023-04-15 14:51:27 +08:00
Vladimir Golovnev
eaee38a19e
Disable UPnP for web UI by default
PR #18832.
2023-04-13 06:22:18 +03:00
Vladimir Golovnev
b3e9c46eff
Don't miss saving "download path" in SQLite storage
PR #18844.
Closes #18842.
2023-04-13 06:18:09 +03:00
Chocobo1
5dcc14153f
Move feature macro declaration to build scripts
PR #18825.
2023-04-10 13:38:00 +08:00
Chocobo1
4a66d705b8
Merge pull request #18812 from Chocobo1/buf
Use KiB unit for socket buffer sizes
2023-04-09 22:17:39 +08:00
Chocobo1
9d7fcea5d6
Describe special values in label
https://github.com/qbittorrent/qBittorrent/pull/18806#discussion_r1158346210
https://github.com/qbittorrent/qBittorrent/pull/18812#issuecomment-1500303976
2023-04-08 15:46:02 +08:00
Vladimir Golovnev
b8cd614775
Allow to edit RSS feed URL
PR #18807.
Closes #5489.
2023-04-07 14:22:50 +03:00
Chocobo1
a9ab2d9b9e
Use KiB unit for socket buffer sizes
https://github.com/qbittorrent/qBittorrent/pull/18806#issuecomment-1499894871
2023-04-07 18:33:24 +08:00
Chocobo1
cecf2d28e6
Merge pull request #18806 from Chocobo1/buf
Expose 'socket send/receive buffer size' options
2023-04-07 18:19:46 +08:00
Chocobo1
a01f1014b9
Inline variable defined in header 2023-04-05 18:32:18 +08:00
Chocobo1
77411760a0
Expose 'socket send/receive buffer size' options
Closes #18794.
2023-04-05 18:11:13 +08:00
Vladimir Golovnev
0dcb65bb7c
Add option to auto hide zero status filters
* Extract transfer list filter classes into separate files
* Add option to auto hide zero status filters

PR #18801.
Closes #13996.
2023-04-03 10:38:08 +03:00
Vladimir Golovnev
d40be79c69
Implement torrent tags editing dialog
PR #18797.
2023-04-03 10:36:28 +03:00
Bartu Özen
b55d4b1733
WebUI: Implement subcategories
PR #18740.
2023-04-02 11:02:22 +03:00
Chocobo1
9de8abadb6
Fix wrong end tag 2023-03-28 22:26:11 +08:00
Chocobo1
05c5cdab96
Add alternative text for images 2023-03-28 22:20:37 +08:00
Chocobo1
1e1c1725ab
Always use quotes for attributes
This is to unify coding style.
2023-03-28 22:20:37 +08:00
Chocobo1
b5c57af869
Escape special characters properly 2023-03-28 22:20:37 +08:00
Chocobo1
eb875ac8c1
Add attributes explicitly 2023-03-28 22:20:37 +08:00
Chocobo1
a36358d7d0
Remove deprecated rules 2023-03-28 22:20:37 +08:00
Chocobo1
679e592a5c
Add checker for html 2023-03-28 22:20:33 +08:00
Vladimir Golovnev
b922441a7c
Correctly handle redirections
PR #18771.
Fixes regression introduced by #18528.
Closes #18764.
2023-03-28 06:26:40 +03:00
Vladimir Golovnev
941c587c68
Don't forget to clear I2P peer items
PR #18753.
2023-03-24 14:06:46 +03:00
Vladimir Golovnev
77bd09bb8b
Use tray icon from system theme only if option is set
PR #18733.
2023-03-22 13:51:39 +03:00
Vladimir Golovnev
8bcac1bed2
Reduce default file pool size
PR #18734.
2023-03-21 08:39:06 +03:00
Vladimir Golovnev
cdded6cef7
Add (experimental) I2P support
PR #18717.
Closes #16257.
2023-03-21 08:33:46 +03:00
thalieht
8cbe4a571c
Initialize a few groupboxes' check state after their children
PR #18727.
2023-03-20 10:49:25 +03:00
Vladimir Golovnev
ee9d2173e0
Combine all the column filter related widgets
PR #18726.
2023-03-20 08:23:41 +03:00
Chocobo1
a450a7c6e1
Delegate string hashing to standard library
Since standard library could have platform dependent specialized hashing functions.
Also the main idea is to let `qHash` handle whatever integer type `std::hash` returns and mix it with `seed` accordingly.

PR #18715.
2023-03-18 14:09:35 +08:00
thalieht
d41a77841d
Save UI Theme Dialog size
PR #18709.
2023-03-17 22:15:56 +03:00
thalieht
ae06daba6a
Correctly initialize group box children as disabled
PR #18710.
2023-03-17 22:13:19 +03:00
Vladimir Golovnev
77aa85fbd3
Provide UI Theme editor
PR #18655.
2023-03-16 10:03:05 +03:00
Vladimir Golovnev
989b1e6c2c
Improve finished torrent handling
PR #18704.
Closes #18694.
2023-03-16 09:45:49 +03:00
Vladimir Golovnev
9ef23d524d
Prevent incorrect log message about torrent content deletion
PR #18692.
Closes #18689.
2023-03-16 09:40:21 +03:00
Chocobo1
f16e903623
Merge pull request #18687 from Chocobo1/codeql
GHA CI: add CodeQL scanning
2023-03-15 15:21:27 +08:00
Tom
0bb0829a9a
Allow to filter torrent list by save path
PR #18600.
2023-03-15 09:46:22 +03:00
Chocobo1
fa30b70453
Fix code defects 2023-03-14 15:04:54 +08:00
thalieht
f630d84858
WebUI: Add "Add to top of queue" option
PR #18660.
2023-03-08 18:58:42 +03:00
Vladimir Golovnev
ee6f699b48
Apply adjacent changes within single transaction
PR #18635.
2023-03-04 08:46:19 +03:00
Vladimir Golovnev
ce9bdaef5c
Correctly check for database needs to be updated
* Correctly check for database needs to be updated
* Create index only if not exists
* Double check whether database needs to be updated

PR #18638.
2023-03-02 20:31:38 +03:00
Vladimir Golovnev
37c04fdeed
Prevent possible problem of using incomplete type
PR #18639.
2023-03-02 06:18:51 +03:00
Vladimir Golovnev
c51aa2d573
Index torrents table by queue position
PR #18623.
2023-02-28 08:57:51 +03:00
sledgehammer999
b922e1ae73
Sync translations from Transifex and run lupdate 2023-02-28 00:20:58 +02:00
Vladimir Golovnev
f5b5312cf0
Merge pull request #18528 from glassez/proxy
Allow to use proxy per subsystem
2023-02-27 20:34:51 +03:00
Vladimir Golovnev
58a654a70f
Reject requests that contain backslash in path
PR #18626.
Closes #18618.
2023-02-27 16:50:50 +03:00
Vladimir Golovnev
ff0f3b4975
WebAPI: Allow to set read-only directory as torrent location
PR #18613.
Closes #18480.
2023-02-27 09:09:33 +03:00
Vladimir Golovnev
8df68ac878
Prevent RSS folder from being moved into itself
PR #18619.
Closes #18446.
2023-02-27 09:08:18 +03:00
Vladimir Golovnev
2f9b313287
Perform own tracking of files progress
PR #18597.
2023-02-26 14:44:58 +03:00
Vladimir Golovnev (Glassez)
cbf591a8b5
Improve SOCKS5 error messages 2023-02-26 14:27:59 +03:00
Vladimir Golovnev (Glassez)
96da685e5d
Expand the scope of "Proxy hostname lookup" option 2023-02-26 14:27:59 +03:00
Vladimir Golovnev (Glassez)
6ac14d0c57
Allow to use proxy per subsystem 2023-02-26 14:27:41 +03:00
Vladimir Golovnev (Glassez)
4745a40f0b
Allow to specify proxy option per request 2023-02-25 17:30:26 +03:00
Vladimir Golovnev (Glassez)
8993d87b32
Let Search Engine handle its proxy usage 2023-02-25 17:25:41 +03:00
loligans
466314675c
WebUI: Add multi-file renaming
PR #18287.
Closes #16239.
2023-02-19 14:07:55 +03:00
Hanabishi
d75fd3fcde
Show filtered port numbers in logs
PR #18544.
2023-02-18 08:14:27 +03:00
Vladimir Golovnev
9fb9ca47f6
Update the cached state once recheck is started
We have to force update the cached state, otherwise someone will be able to get an incorrect one during the interval until the cached state is updated in a regular way.

PR #18579.
Closes #18559.
2023-02-17 07:12:56 +03:00
Luka Čelebić
917190d936
Add shortcut for "Ban peer permanently" function
PR #18576.
2023-02-17 07:09:23 +03:00
Vladimir Golovnev
1e913f46f0
Rename isSeed to isFinished to correctly represent its meaning
PR #18580.
2023-02-17 07:08:00 +03:00
Vladimir Golovnev
4c0ebc0e0f
Access some more data in a non-blocking manner
* Cache URL seeds to access in a non-blocking manner
* Provide non-blocking way to create magnet URI for torrent

PR #18572.
2023-02-16 08:49:16 +03:00
Chocobo1
6a4bb5c1b7
Migrate away from unsafe function
MooTools More has CVE-2021-20088 and qbt is affected by it by using the
unsafe function call `String.parseQueryString()`, so migrate away from
it.

PR #18554.
2023-02-15 13:59:21 +08:00
Vladimir Golovnev
7600f59f3a
Prevent precise timers from being used when unnecessary
The implementation of QTimer::singleShot() uses Qt::PreciseTimer if interval is less than 2 seconds. This isn't mentioned in the docs.
Qt::PreciseTimer increases the system's timer resolution which negatively affects power consumption.

PR #18555.
Closes #18350.
2023-02-14 08:26:08 +03:00
sledgehammer999
915121a0dd
Sync translations from Transifex and run lupdate 2023-02-12 01:09:18 +02:00
Vladimir Golovnev
1be5b3abd8
Revamp torrent content widget
PR #18162.
2023-02-11 15:22:01 +03:00
brvphoenix
e37661d53a
WebUI: Add filelog settings
PR #18506.
Closes #17421.
2023-02-10 20:12:22 +03:00
Vladimir Golovnev
d06f78dbbd
Improve sync API performance
PR #18394.
2023-02-10 17:16:46 +03:00
Vladimir Golovnev
5d4766edbe
Allow to add new torrents to queue top
PR #18518.
Closes #11599.
2023-02-10 17:15:41 +03:00
Vladimir Golovnev
72ac92ec68
Allow to use another icons in dark mode
PR #18435.
2023-02-07 22:07:15 +03:00
sledgehammer999
22ea508ff6
Merge pull request #18500 from sledgehammer999/tls_webui
Harden the SSL/TLS web server
2023-02-06 22:40:44 +02:00
sledgehammer999
b2213ded6d
Support TLS 1.2+ only in the server
Closes #18122
2023-02-06 10:32:01 +02:00
sledgehammer999
1ea2fe5b8d
Blacklist bad ciphers for TLS in the server
Prevents the ROBOT attack.
Closes #18483
2023-02-06 10:32:01 +02:00
Vladimir Golovnev
7227d2b2b2
Revert changes of conflict resolution strategy on automatic move
PR #18516.
Closes #18297.
Closes #18495.
2023-02-05 09:29:43 +03:00
Vladimir Golovnev
0dcbf9f698
Improve command line parameters dispatching
Encapsulate parameters dispatching in Application class.
Avoid serializing parameters when it is not necessary.

PR #18469.
2023-02-02 10:02:51 +03:00
Vladimir Golovnev
09e58df03f
Don't increase limits when prefetching metadata for added magnets
Adjusting limits was made based on the belief that "forced" torrents (internally used for prefetching metadata)
are still under limits, but ignore only the queue. This is not really the case. "Forced" torrents ignore the limits
like "maximum active torrents/downloads", so adjusting limits is not required, and what's more, it really causes the
problem of unexpectedly activated previously queued torrents when adding some magnet using "Add new torrent" dialog.

PR #18503.
Fixes #18490.
2023-02-02 06:16:32 +03:00
sledgehammer999
d256db5072
Merge pull request #18466 from sledgehammer999/icon_for_status_pause
Use previous color for pause icon for indicating status
2023-01-27 20:27:48 +02:00
sledgehammer999
10153f0063
Use previous color for pause icon for indicating status
Affects transfer list and status filters
Related to PR #18110
2023-01-27 18:45:07 +02:00