Add /query/getLog and /query/getPeerLog to respectively retrieve
the main log and the peer log.
GET /query/getLog
Params:
- normal (bool): include normal messages (default true)
- info (bool): include info messages (default true)
- warning (bool): include warning messages (default true)
- critical (bool): include critical messages (default true)
- last_known_id (int): exclude messages with id <= 'last_known_id'
GET /query/getPeerLog
Params:
- last_known_id (int): exclude messages with id <= 'last_known_id'
The file guard object has to be initialised in this case too because it
is accessed when dialog gets accepted or cancelled. Initialise it with
empty path.
Some browsers do not download files, intended for immediate opening,
into a temporary directory, and thus a regular download directories
accumulate those unneeded files.
The option allows qBittorrent to clean after itself and delete those
files whether they were succesfully added or not (user-selectable
policy).
Stick the '*' and '&' symbols to the variable name if there is one.
Also fix empty function bodies collapse option: replace it with the
eat_blanks_before_close_brace setting.
1. Extract "transaction" support for QSettings into separate class
TransactionalSettings.
2. Define macrto with explicit name for the case when this "transaction"
support is needed.
3. A bit optimize QHash <-> QSettings copying: replace assign with
insert() and remove repetitive key lookups.
4. In save() check dirty status before getting the lock too.
The changes from items 1 and 2 make text more structured and the logic
of the SettingsStorage class gets separated from the implementation level
task of guarding the settings serialization. The changes in 3 and 4 do not
make the app much faster, but neither make any harm to the code readability.