Commit Graph

55 Commits

Author SHA1 Message Date
Chocobo1
bb6d69f8b7 Remove "Physical memory (RAM) usage limit" option on macOS #19805
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-11-08 08:34:01 +03:00
Chocobo1
73134d5f4d Initialize member variables 2023-05-07 16:30:56 +08: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
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
4318de6dc5 Add ability to run external program on torrent added
PR #17646.
2022-09-04 07:51:50 +03:00
Vladimir Golovnev
e24aaa4ce1 Show startup progress dialog
PR #17389.
2022-08-03 07:14:26 +03:00
Vladimir Golovnev
890630944d Extract desktop integration stuff into separate class
PR #17313.
2022-07-09 08:06:22 +03: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
7eaaa8f92a Turn static variable into class member 2022-05-27 04:01:37 +08:00
Chocobo1
bc937d38a2 Allow to set "working set limit" on non-Windows OS
PR #16874.
2022-04-16 11:36:58 +08:00
Chocobo1
a2b85ba1fd Provide interface for Application class
PR #16864.
2022-04-14 12:04:58 +08:00
Vladimir Golovnev
299f981441 Allow to limit max memory working set size
PR #16485.
2022-03-01 16:42:25 +03:00
Vladimir Golovnev
dd1bd8ad10 Implement class for handling filesystem paths
PR #15915.
2022-02-08 06:03:48 +03:00
Chocobo1
32698fe0be Migrate away from low-level SettingsStorage class
Also add `QFlags<T>` support to `SettingsStorage`.
PR #15693.
2021-11-08 13:23:33 +08:00
Chocobo1
70d1cb86fd Disable move constructor where it is sensible 2021-06-29 14:49:45 +08:00
Vladimir Golovnev (Glassez)
0b4fef19f6 Remove redundant suffix from TorrentHandle class
Originally, it was just a wrapper for libtorrent::torrent_handle class, so it mimicked its name.
It was then transformed into a more complex aggregate, but the name was retained (just by inertia).
Unlike libtorrent::torrent_handle class in whose name "handle" means the pattern used,
it does not matter for qBittorrent classes and just eats up space in the source code.
2021-01-06 16:28:17 +03:00
Chocobo1
d3d3f7dbb3 Add final specifier to classes
This allow compilers to generate more efficient code.
2020-04-17 13:18:40 +08:00
Vladimir Golovnev (Glassez)
38e54206d5 Allow single app instance per configuration 2020-03-06 08:59:59 +03:00
Tester798
053ee48692 Enable portable mode if "profile" directory exists
Enable portable mode if "profile" directory exists in the app dir.
Remove "--portable" command line argument.
Add logging of current profile config directory.
Closes #9445.
2019-12-16 05:12:47 +02:00
Chocobo1
0d5b0b9542 Replace deprecated macro
Q_OS_MAC is deprecated and the replacement is Q_OS_MACOS.
2019-09-05 20:16:18 +08:00
Chocobo1
47b9d8dbc6 Clean up Application class constructor 2019-08-30 14:51:07 +08:00
Vladimir Golovnev (Glassez)
c7f3693ad1 Implement "Application instances manager" 2019-06-30 20:02:46 +03:00
thalieht
ca3ce87e06 Add const to many vars and arguments
Also remove const in declarations' arguments that are passed by value
2019-02-11 20:19:41 +02:00
Chocobo1
6d7e5f82ae Include the correct header
And remove the unused ones
2019-01-19 10:06:33 +08:00
Chocobo1
cf4db1b418 Remove useless exception handling 2019-01-19 10:06:31 +08:00
thalieht
356d6a6589 Fix coding style 2018-05-31 19:45:09 +03:00
Nick Korotysh
0b8c620fd3 Add missing "override" 2018-05-08 08:33:07 +03:00
Chocobo1
88881de8c6 Add Tags parameter to "Run External Program"
Closes #8586.
Also sort headers.
2018-03-14 10:12:32 +08:00
Chocobo1
c60b7b213e Add missing 'override' specifier
This fixes clang warning:
'notify' overrides a member function but is not marked 'override'
[-Winconsistent-missing-override]
2018-03-07 20:05:52 +08:00
sledgehammer999
024df8c53f Set default file log size to 65 KiB and delete backup logs older than 1 month. 2018-01-27 01:17:50 +02:00
Vladimir Golovnev (Glassez)
71bb6538db Fix WebUI error handling 2017-11-19 19:10:04 +02:00
Chocobo1
fc0628d35b Allow SMTP sender to be set. Closes #7575. 2017-10-26 17:57:32 +08:00
sledgehammer999
9f98f9f7ac Rename cmd options source files. 2017-05-07 16:20:18 +03:00
Vladimir Golovnev (Glassez)
989a70fe60 Redesign RSS subsystem 2017-04-23 09:03:46 +03:00
Eugene Shalygin
0f746ffd5a Add support for different configurations. Partially closes #465
It may be useful to have different configurations either for portable
versions or for debugging purposes. To implement this we add two
options, avaliable via command line switches
1. An option to change configuration name ("--configuration"). The name
supplied via this option is appended to
QCoreApplication::applicationName() to form "qBittorrent_<conf_name>"
name for the configuration files.
2. An option to provide a path do directory where all the settings are
stored (kind of profile directory). There is a shortcut "--portable"
which means "use directory 'profile' near the executable location".

In order to implement that we have to perform initialisation of the
profile directories before the SettingStorage and Preferences singletones
are initialised. Thus, options parsing shall be performed without defaults
read from preferences.
2017-04-12 00:50:28 +02:00
Chocobo1
df95efe33e Improve usability of "Run External Program"
Users can write (platform dependent) shell scripts now.
2016-06-07 00:39:27 +08:00
sledgehammer999
ef6e848756 Display notifications when a torrent is added. Closes #334 and #915. 2016-04-25 20:07:26 +03:00
Chocobo1
fbc002f212 Enable access to shutdown functions when configured with --disable-gui option 2016-04-18 00:45:37 +08:00
Chocobo1
6a11056b60 Rename enum
Change identifier from ShutdownAction to ShutdownDialogAction
Change enum value from None to Exit
2016-04-14 14:50:59 +08:00
sledgehammer999
d721939d5f Use SettingsStorage instead. 2016-03-26 01:50:13 +02:00
sledgehammer999
1058572c8a Implement file logger. 2016-03-26 01:39:13 +02:00
Vladimir Golovnev (Glassez)
9db93e5d8f Rename Core to Base (Closes #3733). 2015-12-06 14:27:00 +03:00
Vladimir Golovnev (Glassez)
191cdc2849 Move utilities to core/utils folder.
Also move the names to Utils namespace.
2015-06-09 21:30:56 +03:00
Vladimir Golovnev (Glassez)
d16d1fdb3a Redesign main core classes. 2015-06-09 21:30:42 +03:00
sledgehammer999
6644fe0714 Tell Windows to wait during shutdown by creating a ShutdownBlockReason.
Huge thanks to paolo-sz for bringing this to my attention, for the various patches he tried to submit and for testing.
See issue #1984 for complete history.
Closes #1535.
2015-05-02 23:55:58 +03:00