Commit graph

11131 commits

Author SHA1 Message Date
Vladislav Grechannik
cd3982cf3c
Include missing header
PR #20776.
Closes #20774.
2024-05-01 12:37:22 +03:00
Paweł Kotiuk
a1af077889
Add API for listing directory content
PR #20314.
2024-04-29 21:13:32 +03:00
ducalex
42b87963fd
Add date column to the built-in search engine
Adds a date column to the built-in search engine to show when a torrent was published/uploaded on the engine site.
When a plugin wants to show a date, it can now add a `pub_date` entry to its result dict. The value format is a unix timestamp (an integer representing seconds since epoch).
Plugins with no date support will keep working.

PR #20703.
2024-04-29 21:10:24 +03:00
Chocobo1
775b38079f
Avoid repetitive function calls
PR #20764.
2024-04-29 13:05:05 +08:00
Chocobo1
d65d8558d6
Merge pull request #20728 from Chocobo1/webui_state
WebUI: clean up code
2024-04-29 12:58:14 +08:00
Chocobo1
b1175b60e1
Use proper comparison for None
PR #20762.
2024-04-29 12:47:27 +08:00
luzpaz
d3315f7cc7
WebUI: Fix inconsistent naming between (Done/Progress) column
Closes #20602.
PR #20700.
2024-04-27 14:43:47 +08:00
Chocobo1
321d7e5b17
Adjust tracker tier when adding additional trackers
Closes #20102.
PR #20729.
2024-04-25 12:18:30 +08:00
milahu
4ac586c896
Lazy load search plugins
PR #20553.
2024-04-24 22:15:22 +03:00
Vladimir Golovnev
ca71c186e0
Don't forget to resume "missing files" torrent when rechecking
PR #20747.
2024-04-24 09:15:19 +03:00
Chocobo1
1c7ecb7371
WebUI: migrate away from MooTools deprecated functions
https://mootools.net/core/docs/1.6.0/Core/Core#Deprecated-Functions
2024-04-21 16:55:30 +08:00
Chocobo1
4945ed576a
WebUI: enforce strict comparison operators 2024-04-21 16:44:15 +08:00
Vladimir Golovnev
fc3953dbaa
Don't overwrite stored layout of main window with incorrect one
Prevents overwriting of the stored layout in case the main window was hidden at startup and
has not been shown since, because incorrect dimensions can be provided by it in this case.

PR #20725.
Closes #20720.
2024-04-20 11:10:31 +03:00
Chocobo1
75e2ae2fa0
WebUI: clean up code
Use proper function for finding match.
Use strict comparison operators.
2024-04-19 16:13:27 +08:00
Vladimir Golovnev
7310eec74e
Focus on Download button if torrent link retrieved from the clipboard
PR #20716.
Closes #20682.
2024-04-19 09:21:52 +03:00
Vladimir Golovnev
3e0fd01604
Add extra offset for dialog frame
PR #20715.
Closes #20609.
2024-04-18 09:04:06 +03:00
Vladimir Golovnev
ace5286402
Prevent invalid status filter index from being used
PR #20714.
Closes #20701.
2024-04-18 07:59:24 +03:00
Chocobo1
d7cded54e4
WebUI: enforce parentheses around operators
PR #20696.
2024-04-15 12:50:07 +08:00
Chocobo1
6c82d5e305
WebUI: fix wrong peer number
PR #20695.
2024-04-15 12:42:47 +08:00
Thomas Piccirello
29f0adf215
WebUI: Restore search tabs on load
This PR restores searches previously performed in the same browser (via local storage).

PR #20637.
2024-04-15 12:07:15 +08:00
Thomas Piccirello
e697d40382
WebUI: Improve table scrolling and selection on mobile
This PR improves touch interaction with table rows that have a context menu. Previously, those rows couldn't be selected or scrolled on mobile. Additionally, this PR modifies the context menu to appear when the user removes their finger/touch, rather than the current behavior of appearing mid-touch. This allows us to only display the context menu if the user's finger remains on the same element, which should significantly reduce erroneous context menu triggering.

Closes #19819.
Closes #19820,
Closes #19823.
PR #20639.
2024-04-09 14:33:10 +08:00
Chocobo1
d407e954d1
GHA CI: lock to ESLint v8
For unknown reasons, ESLint v9 doesn't work correctly. Migration to ESLint v9 will be done
later when it is stable enough.

PR #20665.
2024-04-09 14:12:30 +08:00
Vladimir Golovnev
f085f8c076
Fix Enter key behavior in Add new torrent dialog
Prevent inappropriate default completer from being used by path edit.

PR #20670.
Closes #20663.
2024-04-08 16:02:26 +03:00
Chocobo1
92ce507151
WebUI: Allow to specify login page language via query parameter
There were a few reports that the user has messed up their browser's language and this PR gives an escape hatch in case the user is unable to configure the browser's language for various reasons.
Example for choosing French: http://127.0.0.1:8080/?lang=fr

PR #20591.
2024-04-06 15:13:58 +08:00
Vladimir Golovnev
67dfce7437
WebAPI: return correct value for queued uploading state
PR #20651.
Closes #20648.
2024-04-04 08:41:25 +03:00
Aliaksei Urbanski
f37d0c486c
Add the Popularity metric
PR #20180.
2024-04-01 21:23:08 +03:00
Thomas Piccirello
8e6515be2c
WebUI: Fix error when category doesn't exist
This prevents hitting a TypeError when the category stored in localstorage does not exist. The behavior for a nonexistent category now mirrors that of a nonexistent tag or filter - no option is selected and no torrents are shown.

Closes #20623.
PR #20638.
2024-04-01 20:15:30 +08:00
Chocobo1
90383567b2
Revise Tracker related classes
And also rename them.

PR #20489.
2024-04-01 19:17:35 +08:00
Thomas Piccirello
4967f977c5
WebUI: Improve accuracy of trackers list
This PR fixes various accounting issues with the trackers list. Removing a torrent would not update the trackers list, nor would removing a tracker from a torrent. And removing a tracker with a shared host but unique url (e.g. example.com/1 and example.com/2) would erroneously remove the tracker's host from the list.

Closes #20053.
Closes #20054.
PR  #20601.
2024-03-29 15:43:49 +08:00
Thomas Piccirello
eb9e98a4b3
WebUI: Add support for running concurrent searches
This PR adds support for running multiple concurrent searches in the Web UI. This is already supported in the GUI as well as by the Web API. Behavior mimics the GUI as closely as possible.

All filters and sorting are preserved per-tab, allowing you to apply unique filters and sorts to each of your searches. Row selection is also preserved across tab navigation.

Closes #12840.
PR #20593.
2024-03-29 15:05:43 +08:00
Vladimir Golovnev
f5cac13979
Prevent app from being closed when disabling system tray icon
PR #20627.
Closes #20604.
2024-03-29 09:38:54 +03:00
Vladimir Golovnev
5e8b9df859
Revamp system tray icon menu handling
Update system tray icon menu without re-create it.

PR #20597.
Closes #20516.
2024-03-26 15:24:43 +03:00
Thomas Piccirello
489bacd766
WebUI: Conditionally show filters sidebar
This fixes a bug where the filters sidebar would always be displayed when switching back to the Transfers tab.

Closes #19257.
PR #20600.
2024-03-26 12:41:47 +08:00
thalieht
5d1c249606
Use Start/Stop instead of Resume/Pause
PR #20532.

---------

Co-authored-by: Vladimir Golovnev (Glassez) <glassez@yandex.ru>
2024-03-25 19:11:04 +03:00
Chocobo1
f2d6129db3
Merge pull request #20590 from Chocobo1/py
GHA CI: check python scripts
2024-03-25 13:42:09 +08:00
HamletDuFromage
5c67c5a77d
Add regex toggle for WebUI torrent filtering
PR #20566.
2024-03-24 13:44:57 +08:00
Vladimir Golovnev
ce013f132f
Refresh custom colors once color scheme is changed
PR #20588.
2024-03-23 11:32:07 +03:00
Chocobo1
abcf1e076e
Remove unused script 2024-03-23 13:55:58 +08:00
Chocobo1
47c38e8d91
Apply formatting 2024-03-23 13:55:58 +08:00
Vladimir Golovnev
25b7972f88
Initialize completer for file system path widget on demand
PR #20586.
2024-03-23 08:18:36 +03:00
Vladimir Golovnev
845f9a821e
Use better icons for RSS articles (#20587) 2024-03-22 18:46:25 +03:00
Vladimir Golovnev
b489262f51
Add workaround to refresh styled controls once color scheme is changed
PR #20569.
2024-03-21 11:14:41 +03:00
sledgehammer999
a5681f72bc
Bump to v5.0.0beta1 2024-03-19 02:44:55 +02:00
Chocobo1
931de85ab5
Merge pull request #20520 from Chocobo1/i18n
Use client side translation for public login page
2024-03-18 13:23:44 +08:00
sledgehammer999
6a82cb1af6
Update WebUI translations from old format 2024-03-16 01:20:11 +08:00
sledgehammer999
f8ae8f419d
Add helper scripts to manage WebUI translations 2024-03-16 01:20:11 +08:00
Chocobo1
ac91c1348b
Use client side translation for public login page
The translation strings are meant to be synced from Transifex.
2024-03-16 01:20:11 +08:00
tehcneko
50caa231f7
Fix invisible tray icon on Plasma 6 in Linux
PR #20529.
Closes #20367.

---------

Co-authored-by: thalieht <thalieht@users.noreply.github.com>
Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2024-03-13 10:24:08 +03:00
Vladimir Golovnev
d5e41bf679
Allow torrents to override default share limit action
PR #20528.
2024-03-12 14:08:59 +03:00
Chocobo1
773cb1e55d
Ensure the profile path is pointing to a directory
Closes #20513.
PR #20519.
2024-03-11 13:02:51 +08:00
Chocobo1
0967bdc715
Switch to lightweight function for filtering data
We can use this function since the columns doesn't change.

PR #20518.
2024-03-11 12:54:38 +08:00
Thomas Piccirello
c06817f4eb Add button for sending test email
This allows for easily testing whether the provided email configuration is correct.

PR #20488.
2024-03-08 21:51:44 +08:00
Vladimir Golovnev
1702b6c891
Correctly handle share limits in torrent options dialog
PR #20485.
2024-03-04 11:54:10 +03:00
sledgehammer999
8a1bc8e5fd
Bump copyright year 2024-03-03 06:02:40 +02:00
sledgehammer999
6964132475
Sync translations from Transifex and run lupdate 2024-03-03 05:53:09 +02:00
JayRet
f265eb0166
Improve WebUI login behavior
Closes #20441.
PR #20442.
---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2024-03-02 14:47:02 +08:00
Vladimir Golovnev
0114610a40
Provide torrent creation feature via WebAPI
PR #20366.
Closes #5614.

Co-authored-by: Radu Carpa <radu.carpa@cern.ch>
2024-02-27 15:57:16 +03:00
Chocobo1
15697f904d
Add a small delay before processing the key input of search boxes
PR #20465.
Closes #20025.
Closes #20235.
2024-02-27 12:57:55 +08:00
Chocobo1
46e8ee50c8
Allow to set custom suffix to window title
This is to allow users to differentiate qbt instances when there are multiple running.
PR #20429.
Closes #17905.
2024-02-27 12:41:12 +08:00
Chocobo1
364bcf73ee Write format result directly to file
And not print to stdout.
2024-02-25 20:17:56 +08:00
Chocobo1
031fa6183c Add viewport meta tag
This helps displaying WebUI on mobile devices. Note that WebUI aren't
optimized for mobile yet.
2024-02-25 20:17:56 +08:00
Chocobo1
66c34ddb6e Avoid leaking user locale preference to the web 2024-02-25 20:17:56 +08:00
Chocobo1
3f2b4afc21 Add description meta tag 2024-02-25 20:17:56 +08:00
Chocobo1
e1fa7e01c6 Remove unneeded polyfill
All browsers already have native support for it.
2024-02-25 20:17:56 +08:00
Chocobo1
9192c988ed Warp script in anonymous scope (IIFE)
It was erroneously removed in 9b64d50660.
2024-02-25 20:17:56 +08:00
Chocobo1
cffd74b62a
Add support for SSL torrents
The 'SSL torrent' feature is not standardized. I.e. there are no BEP (BitTorrent Enhancement Proposals) associated with it, so we do not greatly encourage its usage as it will only work with libtorrent clients and derivatives. It will not work with other torrent clients that do not support the libtorrent specific implementation.
This PR aims to provide minimal support for those who need SSL torrents. Furthermore, it is intended that there will be no UI support (nor indication) of adding/creating SSL torrents.

* Prerequisites:
  I omit the instructions of creating those files as the intended audience (experts & advanced users) should have no problem with it. All files are as follow:
  1. Root (torrent publisher) certificate
  2. Root private key
  3. A .torrent file created with root certificate 
  5. Peer certificate (signed by the root certificate)
  6. Peer private key
  7. Diffie-Hellman parameters file
  
  All files are stored in .pem format.

* Enable SSL torrent protocol in qbt
  There are 2 hidden keys to put in qbt config file, under `[BitTorrent]` section:
  1. `Session\SSL\Enabled`: set it to `true`.
  2. `Session\SSL\Port`: set it to some unused port or omit the key entirely to let qbt pick one for you.
* Add an SSL torrent to qbt
  The only way of adding an SSL torrent is via WebAPI. The `/api/v2/torrents/add` endpoint will support 3 additional parameters. You must provide them for an SSL torrent.
  1. `ssl_certificate`: Contents of the peer certificate file (in PEM format).
  2. `ssl_private_key`: Contents of the peer private key file.
  3. `ssl_dh_params`: Contents of the Diffie-Hellman parameters file.

* Change the SSL parameters to a torrent
  In case you provided wrong SSL parameters when adding a torrent, there is a new endpoint `/api/v2/torrents/setSSLParameters` that you can update the SSL parameters. The parameters (`ssl_*`) are the same as `/api/v2/torrents/add` endpoint.

* Query the SSL parameters of a torrent
  There is a new endpoint `/api/v2/torrents/SSLParameters` that you can query the SSL parameters of a torrent.

References:
* https://www.libtorrent.org/manual-ref.html#ssl-torrents
* https://blog.libtorrent.org/2012/01/bittorrent-over-ssl/

PR #20338.
---------

Co-authored-by: Radu Carpa <radu.carpa@cern.ch>
2024-02-25 19:58:58 +08:00
Vladimir Golovnev
7786e1b084
Improve received metadata handling
Avoid blocking call to libtorrent when accessing underlying torrent_info object.

PR #20424.
2024-02-21 17:25:54 +03:00
Chocobo1
bb8a012b1c
Revise cache internals
Now cache initialization and `get()` is less costly to use and it shifts the weight to `set()`.

PR #20430.
2024-02-18 14:16:00 +08:00
Chocobo1
63c9b6388e
Rename to WebUI
PR #20428.
2024-02-18 13:58:44 +08:00
Vladimir Golovnev
f04edd555f
Open "lock" files for the same folder only once
PR #20414.
Closes #12203.
2024-02-15 08:42:44 +03:00
Chocobo1
e31b553807 Stop sync requests after qbt has been shutdown 2024-02-14 03:38:09 +08:00
Chocobo1
a9741bb203 Defer loading of js code on landing pages
So that DOM tree can be processed earlier.
2024-02-14 03:38:09 +08:00
Chocobo1
67e0a2de44 Combine script tags 2024-02-14 03:38:09 +08:00
Chocobo1
1afb3ff433 Add support for dark theme 2024-02-14 03:38:09 +08:00
Chocobo1
16a91f26fb Simplify code 2024-02-14 03:38:09 +08:00
Chocobo1
963a7faab8 Migrate to Cache for commonly used data
Previously it was abusing the `localStorage` and now it is storing data in memory (per session).
2024-02-14 03:38:09 +08:00
Chocobo1
d06d5b923a Cache program preferences
So that qbt can just use the data from memory which is vastly faster than waiting for a response
over the net.
2024-02-14 03:38:09 +08:00
Vladimir Golovnev
60bb819e2e
Allow WebAPI to specify filename and mime type for result data
PR #20377.
2024-02-12 09:07:09 +03:00
Chocobo1
8ef99b336c Remove 'no cache' directive for POST requests
The response for POST request is only cachable under a specific condition and
qbt doesn't use it.
https://developer.mozilla.org/en-US/docs/Glossary/Cacheable
2024-02-11 23:28:44 +08:00
Chocobo1
f7e9ff0fb0 Clean up functions in global scope 2024-02-11 23:28:44 +08:00
Chocobo1
9b64d50660 Conditionally hide settings in Advanced Options 2024-02-11 23:28:44 +08:00
Chocobo1
5fe5c333b5 Rename file 2024-02-11 23:28:44 +08:00
Chocobo1
49f819ef78 Use correct type for each option 2024-02-11 23:28:44 +08:00
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
9bfb447dd3
Improve WebUI responsiveness
This migrates Category and Tag to `Map` type from `Object` type. And done some algorithm and data structure optimization.

PR #20297.
2024-01-27 22:04:39 +08:00
Vladimir Golovnev
d652a10495
Add seeding limits to RSS and Watched folders options UI
PR #20324.
Closes #19605.
2024-01-27 14:30:27 +03:00
jNullj
df41940ebc
Fix typo in preferences.html
PR #20326.
2024-01-26 10:58:57 +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
05572a7317
Add missing comparison case
Closes #20290.
2024-01-19 10:13:34 +03:00
Chocobo1
00372dd559
Use natural sorting in WebUI
Also change case sensitivity to the default of 'sort' mode.

PR #20264.
2024-01-15 13:12:36 +08:00
Chocobo1
6918316a3d Switch to new method for checking own properties
The new method is an intended replacement for previous one as suggested by MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn
2024-01-15 13:12:12 +08:00
Chocobo1
2edb1a0765 Improve WebUI responsiveness
Related: #20249.
2024-01-15 13:12:12 +08:00
sledgehammer999
582e4dcb59
Sync translations from Transifex and run lupdate 2024-01-15 00:28:06 +02: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
8bdb83d973 Use initialization form for variable 2024-01-08 15:13:02 +08:00
Chocobo1
54bcabeca4 Leave the fields empty when value is invalid
This follows GUI behavior.
2024-01-08 15:13:02 +08:00
Chocobo1
114652205c Fix wrong time stamp values in WebAPI
The wrong values are observed when encountered an invalid QDateTime data.
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
David
e69f857828
Allow to remember torrent content files deletion in WebUI
Add a 'remember choice' button to the WebUI Torrent Deletion dialog that sets the default file deletion setting. The setting is shared with GUI, so if you set it in WebUI and open the Qt app, the 'delete files' checkbox will match WebUI (checked or unchecked).

PR  #20150.

---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2024-01-08 14:39:51 +08:00
Vladimir Golovnev
0b6d785e87
Show URL seeds for torrents that have no metadata
PR #20233.
Closes #20198.
2024-01-06 15:51:19 +03: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
fc56fdade7
Specify a locale if none is set
Sometimes users had not properly configured their system locale and thus
qbt will specify a default locale just in case.

Closes #16127.
Closes #19609.
Closes #19834.
PR #20203.
2024-01-02 16:49:40 +08:00
thalieht
8dcc734df5
Enable Ctrl+F hotkey for more inputs
PR #20131.
2023-12-19 20:52:47 +03:00
Chocobo1
073ca4267c
Introduce helper function to join values as string
PR #20130.
2023-12-19 00:08:37 +08:00
d47081
9d90141c29
Add dark theme for WebUI
Closes #19844.
PR #19901.

---------

Co-authored-by: d47081 <localhost>
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2023-12-12 12:23:40 +08:00
Chocobo1
cc563d9f78
Fix incorrect usage of translation functions
PR #20107.
2023-12-10 23:07:29 +08:00
Chocobo1
88ef8a51dd
Move local functions into anonymous namespace
PR #20106.
2023-12-10 22:51:33 +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
65771d66fc
Update Readme for WebUI
PR #20077.
2023-12-05 03:34:40 +08: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
Vladimir Golovnev
bfd3ce2fca
Don't forget to update filter items
PR #20030.
Closes #19905.
2023-11-29 07:05:46 +03:00
Chocobo1
86d5d13ce6 Migrate away from deprecated functions
Those functions are deprecated in mootools.
2023-11-27 13:29:54 +08:00
Chocobo1
8f230bc2e6 Remove unused icon provider singleton 2023-11-27 13:29:54 +08:00
Chocobo1
6d0ad62632 Remove Qt5 remnants
The env variable was added in 51cf05c1bd
And `QNetworkConfigurationManager` is deprecated in Qt5 and not available in Qt6.
https://doc.qt.io/qt-5.15/qnetworkconfigurationmanager.html
2023-11-27 13:29:54 +08:00
Chocobo1
c165131c3f
Disable stdout buffering for qbt-nox
The messages printed out via stdout is usually important and short so
there is no reason to buffer them.

Closes #19984.
PR #20018.
2023-11-26 15:36:50 +08:00
brvphoenix
9fde5634f1
Fix JS memory leak
The memory leak can be reproduced easily by opening two web pages of qbittorrent so that the WebUI pages are updated with full_update = true. If you have a large number of torrents, such as 100 torrents, you can observe a rapid increase in memory usage.

This is caused by the incorrect usage of dispose and empty methods in the js codes and none of them garbage collect the elements. If event listeners are added to the DOM elements, those DOM elements will not be garbage collected at all event if they are not referenced or out of the scope, which will cause memory leaks. If some elements are expected to be removed, the correct way is to use destroy method instead.

https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-dispose-elementdispose
https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-empty-elementempty
https://github.com/mootools/mootools-core/blob/master/Docs/Element/Element.md#element-method-destroy-elementdestroy

Closes #19034.
PR #19969.
2023-11-25 13:50:45 +08:00
Vladimir Golovnev
60eaff9fcb
Simplify share ratio limits processing code
PR #19971.
2023-11-21 22:14:27 +03:00
Vladimir Golovnev
c3adc90f7e
Show Add new torrent dialog on main window screen
PR #19963.
Closes #19774.
2023-11-21 22:13:22 +03:00
Chocobo1
6f7f418ec1
Improve error message when daemonizing failed
PR #19959.
2023-11-21 14:05:32 +08:00
Vlad Zahorodnii
ce34245aaf
Fix parent widget of "Lock qBittorrent" submenu
The parent widget of lockMenu is going to be used to derive the
transient parent window. Currently the parent widget of lockMenu is
the main window, therefore the main window is also going to be the
transient parent for lockMenu's window handle.

In other words, the "View" menu and "Lock qBittorrent" menu are
going to be considered as siblings by the window manager even though
the latter is nested inside the former.

On platforms like wayland, such popup hierarchies are illegal, popups
must be properly nested. qtwayland works around it, but it also prints
warning messages.

This change makes lockMenu a child of the view menu so they are
properly nested from the window manager point of view.

PR #19967.
Closes #19955.
2023-11-20 20:39:21 +03: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
sledgehammer999
20bfd392ff
Sync translations from Transifex and run lupdate 2023-11-14 03:05:55 +02: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
Chocobo1
9d6d3a30eb
Improve performance of getting torrent numbers via WebAPI
PR #19919.
2023-11-12 17:12:02 +08:00
Chocobo1
b67da4bebe
Use natural sort for categories
PR #19920.
2023-11-12 17:11:39 +08:00
sledgehammer999
8e39ac7efd
Merge pull request #19918 from sledgehammer999/webui_opt
WebUI: Minor optimizations to the login page
2023-11-11 16:00:26 +02:00
Vladimir Golovnev
fb497f3410
WebUI: Correctly set save path in RSS rules
PR #19916.
Closes #19915.
2023-11-11 16:04:13 +03:00
sledgehammer999
5d1d3fcf57
WebUI: Minor optimizations to the login page 2023-11-10 16:22:52 +02:00
Vladimir Golovnev
0f40fad74d
Drop WebUI default credentials
PR #19777.
2023-11-10 07:18:42 +03:00
vik
28b5d7230c
WebUI: Remove extra ')' in QBT_TR macro
PR #19894.
2023-11-08 08:32:25 +03:00
Vladimir Golovnev
c88bd7cb3f
Improve free disk space checking for WebAPI
Use single free disk space checker instance for all the web sessions.

PR #19855.
Closes #19732.
2023-11-07 12:44:27 +03:00
thalieht
30d9978c97
Add copy comment functionality to the torrent list's context menu
PR #19846.
Closes #18890.
2023-11-07 12:42:31 +03:00
xavier2k6
f067ab1692
WebUI: Add "Moving" filter to side panel
PR #19870.
2023-11-06 16:23:59 +03:00
Chocobo1
f49507cb58 Exclude identical strings
This gives slightly smaller final binary.

https://doc.qt.io/qt-6/linguist-lrelease.html#lrelease-options
>If the translated text is the same as the source text, exclude the
>message.
2023-11-06 14:10:27 +08:00
Chocobo1
7c0e3baf5f
Drop support for 32-bit Windows
PR #19865.
2023-11-06 14:10:01 +08: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
sledgehammer999
f20f009b78
Sync translations from Transifex and run lupdate 2023-11-05 21:57:07 +02:00
Vladimir Golovnev
e216a9cf53
Keep unwanted files in separate folder
PR #19842.
Closes #13531.
2023-11-05 11:00:06 +03:00
xavier2k6
0186f44bf4
Use appropriate icon for "moving" torrents in transfer list
PR #19821.
2023-11-04 12:09:47 +03:00
Bartu Özen
5db2c2c2be
WebUI: Fix incorrect subcategory sorting
PR #19833.
Closes #19756.
2023-11-02 11:35:42 +03:00
Vladimir Golovnev
cecbb44a03
Allow to request torrents count via WebAPI
PR #19831.
Closes #19731.
2023-11-02 11:12:32 +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
Vladimir Golovnev
eddfaedc4d
Update size of selected files when selection is changed
PR #19827.
Closes #19818.
2023-11-01 09:21:39 +03:00
Vitaly Cheptsov
e42d3f38cc
Fix .torrent file upload on iPadOS
Mobile Safari on iOS does report `ios` platform, but iPadOS reports `mac`
instead. It is common sense to check for touch points when this happens
to differentiate Mac and iPad.

PR #19822.
Closes #19057.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-11-01 09:19:52 +03:00
Vladimir Golovnev
e7f38ec6ce
Don't forget to delete TorrentContentAdaptor instance
PR #19825.
Closes #19816.
2023-10-31 10:20:23 +03:00
iomezk
a689ccf798
Add missing main window icon
PR #19815.

---
Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
2023-10-31 10:18:35 +03:00
Chocobo1
7bd8f262db
Disable "limit virtual memory" routine on macOS
This has no effect on macOS.
https://stackoverflow.com/questions/3274385/how-to-limit-memory-of-a-os-x-program-ulimit-v-neither-m-are-working

Closes #18656.
PR  #19805.
2023-10-29 17:41:38 +08: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
9b924c1931 Drop support for Windows < 10 2023-10-29 17:40:02 +08:00
Chocobo1
c671b7059e Drop unsupported keys 2023-10-29 17:40:02 +08:00
Chocobo1
347124812e Migrate away from deprecated functions 2023-10-29 17:40:02 +08:00
AgentConDier
bf95eb50da
WebUI: Fix duplicate scrollbar on Transfer List
The overlay scrollbars introduced in Firefox 100 take up no space,
breaking the existing overflow detection.
Add an extra check for `scrollHeight != clientHeight` which is able to
detect an overflow independent of scrollbar style.

PR #19779.

---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2023-10-29 17:39:30 +08:00
Vladimir Golovnev
ee9390fecd
Fix Enter key behavior when add new torrent
PR #19787.
Closes #19760.
2023-10-28 10:42:37 +03:00
Vladimir Golovnev
12674d2990
Prevent crash due to race condition when adding magnet link
PR #19792.
2023-10-28 10:41:53 +03:00
Hanabishi
35e4b35d12
Make WebUI error non-fatal
* Do not exit the app when WebUI is failed for start.
* Print the error to stdout.

PR #19697.
Closes #19695.
Closes #19469.
2023-10-24 13:32:21 +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
8d5022c715
Combine CSS properties
PR #19730.
2023-10-19 12:07:36 +08:00
Vladimir Golovnev
116b05009d
CI: Use dynamic MSVC run-time library
Otherwise, there is a conflict of run-time libraries used (since Qt DLLs are still use dynamic MSVCRT) that leads to strange errors.

PR #19718.
Closes #19701.
2023-10-17 21:31:55 +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
thalieht
a3888811f6
Add I2P settings to WebUI
PR #19700.
2023-10-13 21:30:25 +03: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
Vladimir Golovnev
3ca0939411
Add separate filter item for tracker errors
* Add separate filter item for tracker errors
* Rename "Error" filter item to "Other error"

PR #19672.
2023-10-07 15:41: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
70b438e6d9
Improve GUI behavior when adding multiple torrents
Allows you to bring the main window to the front when one or more "Add new torrent" dialogs are open.
Also allows you to minimize/maximize the "Add new torrent" dialog.

PR #19670.
Closes #17919.
2023-10-03 08:40:25 +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
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