116 Commits

Author SHA1 Message Date
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
Nyall Dawson
5ac17746de Lazy initialize authentication framework
QCA and SSL certificate initialize can be costly -- so defer
startup of authentication framework until it is actually required.

This has no effect on QGIS desktop, as the news feed request
and other startup network requests will immediately trigger
an initialization of the framework. The use case here is improving
the core application startup time to benefit non-app based clients,
eg. qgis_process.
2024-01-08 17:21:07 +10:00
Nyall Dawson
f6addcd0ca Promote 3d point symbol shape to enum class 2023-12-25 17:54:44 +10:00
Loïc Bartoletti
41ff06f813 QgsPointXY: add a method distanceCompare using fuzzyDistancEqual 2023-12-14 20:35:02 +01:00
Loïc Bartoletti
491d133a05 QgsGeometryUtilsBase: Add a fuzzy compare method for comparing pairs
This method will be used where multiple calls to `qgsDoubleNear(x1, y1, eps) &&
qgsDoubleNear(x2, y2, eps) && ... && qgsDoubleNear(xn, yn, eps)` are possible.
2023-12-14 20:17:25 +01:00
Loïc Bartoletti
b5c5029e93 qgis.h: proposes a generic templated method from qgsDoubleNear and qgsNumberNear 2023-12-14 19:55:36 +01:00
Alessandro Pasotti
431495689a
Merge pull request #55284 from elpaso/feed-enhancements
NewsFeed enhancements
2023-12-14 16:31:58 +01:00
Alessandro Pasotti
2bc6aaac92 qt6 2023-12-14 13:23:33 +01:00
Alessandro Pasotti
d85ff3ced9 Fix spelling workflow (unescaped paths) 2023-12-14 13:04:11 +01:00
Loïc Bartoletti
2910e24d87 Add const SIP_FACTORY for measuredLine methods 2023-12-14 05:52:21 +10:00
Alessandro Pasotti
8fd88f62b9 Qt6 SIP 2023-12-13 11:59:54 +01:00
Nyall Dawson
9e8d8d845c
Sipify 2023-12-13 09:54:47 +10:00
Julien Cabieces
1ead52c9b4 update sip PyQt6 after rebase 2023-12-13 05:36:44 +10:00
Julien Cabieces
e8093a8ce5 Only mock non class enums 2023-12-13 05:36:44 +10:00
Julien Cabieces
7f586d8742 PyQt6 sip files 2023-12-13 05:36:44 +10:00
Julien Cabieces
bb3c36a69b Initialize sip bindings for PyQt6
use exactly the ones from PyQt5 so we can study the difference when
generating for PyQt6
2023-12-08 03:38:42 +10:00