11328 Commits

Author SHA1 Message Date
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