And API mechanism to propagate these from layout exports down
to the render context
Gives us a place to specify fine-tuned control over masking
settings for map renders
Add QgsAbstractGeometry::simplifyByDistance, which is a direct
port of GEOS Douglas Peucker algorithm.
This is a trivial algorithm to implement, and we benefit from
avoiding the conversion to/from GEOS geometries.
Adds a new "QgsDataItemGuiProviderUtils" class, with a generic
function for handling deletion of browser connection items.
Replace all the duplicate connection deletion logic from the
different browser connection providers with calls to the
generic function.
In addition to removing a lot of duplicate code, the new
generic function correctly handles deletion of multiple
selected connections (previously, only the first connection
would actually be removed).
Fixes#26276
This isn't exposed in the GUI, but allows users to
set a specific editor command to use when opening
Python files in the external editor.
Use the token <file> to insert the filename, <line>
to insert line number, and <col> to insert the column number.
Eg:
QgsSettings().setValue(
'gui/code-editor/python/external-editor',
'kate -l <line> -c <col> "<file>"')
Avoid calling expensive sipConvertFromNewType method when feature
attribute is a trivial type
Also avoid a copy of the feature attributes which we don't require
This allows the editor to be opened in a proper detached process,
avoiding the editor being closed when QGIS is exited.
Move to a blocklist for terminal text editors instead of the fragile
polling approach (which eg doesn't work if the editor is set to
pycharm)
Filters must be configurable for each individual expansion level,
as we can't achieve the same results by a single top-level filter.
For instance, this prevents filtering children from the expansion
to return just the most recent observation.
If the 'map/maskBackend' QSettings key is set to 'geometry', then
QgsGeometryPaintEngine will be used for calculating clip paths
for label masking instead of QPainterPath
The intention here is that we gain improved flexibility to optimise
the creation and logic behind clipping path generation, vs the
limited API we get from QPainterPath.
Deprecating QgsGeometry::addPart in favor of QgsGeometry::addPartV2
to use Qgis::WkbType instead of Qgis::GeometryType because the latter
can't handle curved geometries (not specific enough).
Fixes#57255