14 Commits

Author SHA1 Message Date
Nyall Dawson
519959154a Fix some overly verbose class "brief" descriptions 2024-08-28 11:58:21 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
50a31065ab Add framework to temporarily halt flushing of QgsSettings to ini
This adds a mechanism where flushes of QgsSettings to the underlying
ini storage file can be temporarily suspended. It is intended for
code paths where many settings entries are consecutively read/written,
to avoid the very expensive cost of constructing and destructing
multiple QgsSettings objects for each in turn.

When QgsSettings::holdFlush() is called, then a temporary thread local
QgsSettings object will be created and ALL access to settings entries
will use this same object (preventing flushing of it to ini files).
An accompanying QgsSettings::releaseFlush() call MUST be made from
the same thread to destroy the thread local QgsSettings, flush it
to disk, and resume normal operation.

This helps avoid the VERY costly backward migration of settings,
and cuts the run time for qgis_process commands like `qgis_process list`
by at least half (and considerably more in common setups).
2024-01-08 18:58:14 +10:00
Yoann Quenach de Quivillic
3dcfbe8cc3 Fix QgsSettingsTreeNode constness 2023-05-01 01:47:24 +02:00
Denis Rouzaud
d01d2af619 [settings] method to delete all items of a named list 2023-03-20 07:03:52 +10:00
Denis Rouzaud
ea53aa3ce2 move settings tree enums to Qgis 2023-02-23 16:07:14 +01:00
Denis Rouzaud
8dc67afdf3 allow full access from Python 2023-02-19 07:19:17 +01:00
Denis Rouzaud
0cdc9b9ba3 fix dox 2023-02-19 07:19:17 +01:00
Denis Rouzaud
a2271b9b3e [settings] allow read-only access to the tree
this allows accessing settings from Python
2023-02-19 07:19:17 +01:00
Denis Rouzaud
f23bdbdad1 fix typo 2023-02-03 09:05:37 +01:00
Denis Rouzaud
34eb0826c3 change QgsSettings to QgsSettingsTree in code base 2023-02-03 09:05:37 +01:00
Denis Rouzaud
34ca2d9e3b move settings tree away from QgsSettings to QgsSettingsTree
* to avoid any dependency on QgsSettings class
* reduce overhead by limiting includes of qgssettings.h
2023-02-03 09:05:37 +01:00
Denis Rouzaud
7d628998d5 follow-up rename QgsSettingsTreeElement to QgsSettingsTreeNode 2023-01-30 10:03:39 +10:00
Denis Rouzaud
7fa484dbf6 sipify 2023-01-17 16:52:47 +01:00