Chocobo1
e281b667c6
Properly release settings class before further operations
...
Fix up d3e7e8a630
.
PR #17376 .
2022-07-17 12:41:18 +08:00
Chocobo1
d2a29c2f87
Correctly remove incomplete settings file
...
PR #17362 .
2022-07-14 13:05:08 +08:00
Vladimir Golovnev
d3e7e8a630
Refactor SettingsStorage implementation
...
Remove redundant fragmentation of logic.
PR #17354 .
2022-07-13 07:09:15 +03:00
Chocobo1
dba711d099
Use helper function for logging messages
2022-07-07 12:17:52 +08:00
Chocobo1
6de72ecc77
Make use of chrono literals from std library
2022-06-23 21:31:16 +08:00
Chocobo1
852a14992c
Add literal operator to efficiently construct QString
in Qt5
...
PR #16448 .
2022-02-18 11:28:04 +08:00
Vladimir Golovnev
dd1bd8ad10
Implement class for handling filesystem paths
...
PR #15915 .
2022-02-08 06:03:48 +03:00
Chocobo1
39f054eef6
Migrate "setting key mappings" to upgrade code
2021-12-24 14:50:06 +08:00
Chocobo1
49aab492e0
Use spinbox special value to represent "Use any available port"
...
WebAPI functionality is preserved (deprecated) for now and should be
removed in the future.
2021-07-29 11:50:52 +08:00
Chocobo1
a82ca6adb2
Fix potential data race
...
This case could be considered benign however it could still be an
undefined behavior to the compiler, so remove it.
Ref:
https://hacks.mozilla.org/2021/04/eliminating-data-races-in-firefox-a-technical-report/
2021-05-07 15:50:33 +08:00
Vladimir Golovnev (Glassez)
a230228441
Don't compare bool with int
...
In Qt6 QHash::remove() returns bool to indicate operation status.
2021-03-27 19:29:53 +03:00
Chocobo1
be5af2796d
Revise SettingsStorage store/load value interface
2021-01-02 12:48:26 +08:00
Chocobo1
b1020c599f
Improve load data behavior of SettingsStorage class
...
Previously it only handle the case of failed lookup, now it discard
invalid values when deserializing the database from disk.
Also checks whether the data is convertible to the intended type.
2021-01-01 22:57:50 +08:00
Vladimir Golovnev (Glassez)
c41df9ffbd
Improve coding style
2020-11-17 21:02:37 +03:00
Chocobo1
5de75eff05
Unify singleton pattern in Profile class
...
1. Use unified function names `initInstance()` and `freeInstance()` and
make them public.
2. Add `freeInstance()` to avoid noise from memory leak detectors.
3. Let `instance()`return a pointer directly to avoid unnecessary
indirections when invoking functions.
2020-02-11 15:30:59 +08:00
sledgehammer999
8200ef6bd5
Rework the listening IP/interface selection code
...
Closes #11561
2019-12-11 09:56:45 +02:00
Chocobo1
de7d62c128
Clean up code
2019-09-25 15:54:47 +08:00
Chocobo1
103e2b9398
Use non-recursive mutex
...
The related classes doesn't really need recursive mutex so drop it. And
if it is really required it usually indicates bad design and we should
avoid it anyway.
2019-09-25 15:50:21 +08:00
Chocobo1
0a959bcbe7
Clean up SettingsStorage::save()
...
Also it should return `true` when `m_dirty` is `false`.
2019-09-08 15:03:25 +08:00
Chocobo1
e7e5ee1ea2
Add const to TransactionalSettings class functions
2019-09-08 14:38:14 +08:00
Chocobo1
daf52a2610
Avoid double lookups
2019-09-08 14:28:38 +08:00
thalieht
8c944bd4e1
Avoid repeating the return type
2019-02-16 18:54:18 +02:00
Chocobo1
2a84345835
Mark constructors as explicit
2018-12-26 12:04:40 +08:00
thalieht
1f36b8b89f
Combine qAsConst() with copyAsConst() to asConst()
2018-11-28 23:41:23 +02:00
thalieht
6b1d26d555
Convert all foreach() to range-based for()
2018-11-28 23:40:12 +02:00
sledgehammer999
de8050701d
Revert email address changes in copyright notices
2018-07-10 00:37:44 +03:00
thalieht
456270bbb1
Delete several unused #include
2018-07-03 08:38:32 +03:00
Mike Tzou
2230d96705
Merge pull request #8808 from Chocobo1/save
...
Improve SettingsStorage behavior
2018-05-13 14:24:14 +08:00
thalieht
20ca90800d
Fix coding style
2018-05-09 17:06:22 +03:00
thalieht
6b4455e13d
Use qt5 connect() syntax
2018-05-09 16:08:22 +03:00
Chocobo1
f6d74e3996
Retry saving settings when operation failed
2018-04-30 13:01:10 +08:00
Chocobo1
099314d17f
Make settings file recovery more robust
...
We should not blindly remove the leftover settings file, as the following write()
operation could fail and the user would lost all settings.
We should try renaming it instead.
2018-04-30 13:01:10 +08:00
Chocobo1
708b5a6904
Refactor SettingsStorage class
...
Make use of (i.e. returning) QFile::rename operation status
Make log message more verbose
Add const
Remove empty lines
Inline typedef
2018-04-30 13:01:10 +08:00
Chocobo1
423511765a
Fix typo
2018-03-14 23:37:08 +08: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
Eugene Shalygin
e64bb1de8c
Drop Qt 4 support
2017-03-05 22:24:59 +01:00
sledgehammer999
a092cb9bda
Remove settings to exchange trackers. It wasn't used by non-libtorrent clients. Also it has a privacy risk and you might be DDoSing someone. DHT makes it obsolete anyway.
2017-01-19 01:13:55 +02:00
sledgehammer999
d88ec48468
Polish previous commit.
2016-12-11 23:24:55 +02:00
sledgehammer999
5a006d5980
Merge pull request #5810 from ghost/macOSpref
...
Change QSettings to IniFormat on macOS. Closes #5770 #5808
2016-12-11 23:23:22 +02:00
sledgehammer999
f391b24b1d
Migrate last setting related to interfaces to the new system.
2016-11-01 03:42:12 +02:00
sledgehammer999
7bf06cd6e6
Fix save/load of interface address setting.
2016-11-01 03:42:07 +02:00
sledgehammer999
f885c6375a
Use better variable names for tracker announce IP setting.
2016-11-01 03:42:01 +02:00
sledgehammer999
6053390bf5
Unify and simplify setting to use proxy for torrents only.
2016-11-01 03:41:51 +02:00
sledgehammer999
1757973f88
Misc fixes.
2016-11-01 03:41:40 +02:00
sledgehammer999
a5ae86512a
Rename IP filtering functions and settings names.
2016-11-01 03:06:58 +02:00
Yez Ezey
26052802ca
Change QSettings to IniFormat on macOS. Closes #5770 #5808
...
On macOS 10.12 Sierra, Apple changed the behaviour of CFPreferencesSetValue()
truncating data after a null character. https://bugreports.qt.io/browse/QTBUG-56344
Due to this, we have to move from native plist to IniFormat.
2016-10-08 14:05:30 +09:00
Vladimir Golovnev (Glassez)
b5fe749f0b
Use new libtorrent-1.1 settings API
2016-06-20 08:30:02 +03:00
Vladimir Golovnev (Glassez)
b2cb473b63
Don't use Preferences in BitTorrent::Session
2016-06-20 08:30:02 +03:00
sledgehammer999
9f31b0ef4d
Merge pull request #4959 from evsh/small-fix-for-settings-storage
...
refactor SettingsStorage class
2016-05-03 10:37:49 -05:00
sledgehammer999
ef6e848756
Display notifications when a torrent is added. Closes #334 and #915 .
2016-04-25 20:07:26 +03:00