Commit graph

242 commits

Author SHA1 Message Date
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
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
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
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
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
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
Vladimir Golovnev
a0e41a11de
Display error message when unrecoverable error occurred
PR #19462.
2023-08-14 16:03:57 +03:00
Vladimir Golovnev
10ee1ab7a2
Switch to C++20
PR #19336.
2023-07-21 15:38:49 +03: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
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
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
Chocobo1
73134d5f4d
Initialize member variables 2023-05-07 16:30:56 +08:00
Chocobo1
2059825597
Don't use instance for accessing static functions 2023-05-06 16:35:12 +08:00
Vladimir Golovnev
758ea7edca
Improve logging of running external program
PR #18901.
2023-04-30 10:10:03 +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
c58fb92365
Suppress warning when session cookie name isn't overridden
PR #18455.
2023-01-26 07:00:20 +03:00
sledgehammer999
ca72360b6f
Merge pull request #18432 from sledgehammer999/chinese_fix
Migrate setting about Simplified Chinese locale
2023-01-25 01:17:54 +02:00
sledgehammer999
630b4ed3b9
Migrate settings much earlier 2023-01-24 10:23:12 +02:00
Vladimir Golovnev
2310dcd136
Reload system tray icon to replace menu
PR #18250.
Closes #18074.
2023-01-22 16:48:58 +03:00
Vladimir Golovnev
32e4371208
Improve startup window state handling
Replace current "Start qBittorrent minimized" option with "Initial window state" that allows to start qBittorrent as "hidden in system tray" while retaining regular "minimize to panel" functionality.

PR #18252.
Closes #487.
2023-01-16 14:57:56 +03:00
Vladimir Golovnev
5dbccf3473
Add all torrents passed via the command line
PR #18296.
Closes #18289.
2023-01-16 06:54:02 +03:00
Vladimir Golovnev
25ea0d274b
Destroy desktop integration at correct place
Otherwise it is destructed in QObject destructor, i.e. after GUI application is already destructed.
This can be related to some problems with system tray icon.

PR #18108.
Closes #18093.
2022-11-30 20:09:51 +03:00
Chocobo1
93429840c8
Fix typos 2022-11-08 13:50:01 +08:00
BallsOfSpaghetti
fdba525e62
Introduce a 'change listen port' cmd option
Closes #17789.
PR #17862.
2022-10-25 12:43:38 +08:00
Vladimir Golovnev
4318de6dc5
Add ability to run external program on torrent added
PR #17646.
2022-09-04 07:51:50 +03:00
Chocobo1
fb37b0c147
Suppress warning
Seems `lupdate` tool cannot correctly recognize the class/context of `tr()` here, so specify the
class/context manually.
2022-09-03 15:26:40 +08:00
Chocobo1
06c704c740
Revise quote behavior
Now the behavior of double quotes aligns more as with issuing commands from shell/command line.
Related: https://github.com/qbittorrent/qBittorrent/pull/17453#issuecomment-1203372027

PR #17515.
2022-08-10 13:19:34 +08:00
Vladimir Golovnev
916e53c260
Show progress dialog on second instance run
PR #17516.
2022-08-09 19:12:12 +03:00
Vladimir Golovnev (Glassez)
d27dd85dfd
Correctly replace desktop integration menu 2022-08-06 19:40:04 +03:00
Vladimir Golovnev (Glassez)
15515200ee
Avoid race conditions between dialogs on startup 2022-08-06 15:01:35 +03:00
Vladimir Golovnev
e24aaa4ce1
Show startup progress dialog
PR #17389.
2022-08-03 07:14:26 +03:00
Chocobo1
0802b6d506
Fix empty string parameter was omitted
`QProcess::splitCommand()` will omit empty strings like `""` so provide
our own replacement.

Closes #13124.
2022-07-30 00:17:31 +08:00
Vladimir Golovnev
5b269a782a
Prevent tray menu from being accessed after destruction
PR #17400.
2022-07-21 09:30:05 +03:00
Dmitry Vodopyanov
f20f479a4b
Improve sender field in mail notifications
Problem statement: user sees its email address in email notification,
while it is better to have sender field app-personalized, like it did
in Nextcloud: they send notifications from user's email address and
add alias 'Nextcloud' to it.

This patch adds alias 'qBittorrent' to qBittorrent email notifications,
so user sees more user-friendly email notification.

PR #17374.
2022-07-18 13:22:30 +08:00
Vladimir Golovnev
cfdf5cffac
Show remote access info after it is available
PR #17329.
2022-07-11 08:38:45 +03:00
Vladimir Golovnev
890630944d
Extract desktop integration stuff into separate class
PR #17313.
2022-07-09 08:06:22 +03:00
Chocobo1
dba711d099
Use helper function for logging messages 2022-07-07 12:17:52 +08:00
Chocobo1
ec13bba4da
Revise classes startup sequence
1. Initialize Logger class earlier so that it can record messages from other classes (for
   debugging purpose).
2. Deprioritize WebUI port adjustment. It is not a high priority in here.
3. Slightly deprioritize file logger initialization.
2022-07-07 12:16:48 +08:00
Chocobo1
ed2eadaf56
Work around application stuttering on Windows
This is observed by unusual high page faults when the stuttering occurs.
With this workaround, the high page faults still occurs but the GUI remains responsive.
2022-07-04 18:38:23 +08:00
Chocobo1
fa26333a5b
Move "memory priority" settings to Application class 2022-07-04 18:38:20 +08:00
Vladimir Golovnev
be7cfb78de
Restore BitTorrent session asynchronously
Reduce the total startup time of the application and maintain sufficient responsiveness of the UI during startup due to the following:
1. Load resume data from disk asynchronously in separate thread;
2. Split handling of loaded resume data in chunks;
3. Reduce the number of emitting signals.

PR #16840.
2022-07-04 12:48:21 +03:00
Chocobo1
25b3f2d1a6
Raise priority of the main "event loop" thread
The goal is to improve responsiveness of qbt when CPU resources are scarce.

Instead of lowering libtorrent threads priority, it is chosen to raise main event loop thread
priority to avoid getting messy with libtorrent internals.

Also on Windows, threads doesn't inherit thread priority from the parent thread and it always
use the default (normal) priority.

PR #17278.
2022-07-02 14:57:47 +08:00
summer
cc0a0b56ed
Make working set limit available only on libtorrent 2.0.x builds
You can already control the cache size in libtorrent 1.2.x so it doesn't make sense to implement this limit for all use cases. Also there are some downsides to using working set size to limit memory usage such as unresponsive GUI when limit gets hit.

PR #17275.
2022-06-30 11:23:48 +08:00
Vladimir Golovnev
f8a304abdc
Implement base classes for application components
PR #17219.
2022-06-25 15:46:55 +03:00
Chocobo1
8114c11d58
Add shutdown logging 2022-06-18 17:14:54 +08:00