Fix addEntry for reference relation widget and use referenced field
index and not referencing one
Merge pull request #30809 from qgis/backport-30748-to-release-3_8
[Backport release-3_8] Fix addEntry for reference relation widget
[bugfix] Fix the whole text instead of the selected part in db_manage…
…r save SQL file. fixes #30616
Merge pull request #30849 from qgis/backport-30845-to-release-3_8
[Backport release-3_8] [bugfix][db manager] Save the whole text instead of the selected part
Cache painter path for font marker when it doesn't change
Speeds up font marker rendering by around 2x
Co-Authored-By: Nyall Dawson <nyall.dawson@gmail.com>
Fix some dialogs never remember geometry when using enableAutoGeometr…
…yRestore If a dialog is created but never shown, we shouldn't save the geometry or we'll be saving a default state only
Direct conversion from ogr multilinestrings to QgsGeometry
Avoid expense of converting to/from wkb
Add a reserve method to QgsGeometryCollection
Attempts to allocate memory for at least the specified number of geometries. If the number of geometries is known in advance, calling this function prior to adding geometries will prevent reallocations and memory fragmentation.
Optimise checking for active properties
Avoid copying QgsProperty values and instead use references only
Optimise reading of multipoints from OGR
Avoid WKB conversion on OGR side, and parsing on QGIS side, and just handle the direct conversion of OGR geometries instead
Fix unnecessary calculation of marker symbol bounds when labeling is not
required for a layer and symbols layers are in place Speeds up rendering of simple marker points matching this situation by ~3x
Fix large speed regression in evaluating string equality expressions
QgsExpression::isIntervalSafe is VERY expensive and should not be used unless we HAVE to
Add move operators to QgsEffectStack
Results in a (very slight) performance boost with symbol copies
Merge pull request #30873 from qgis/backport-30869-to-release-3_8
[Backport release-3_8] allow to follow redirect for custom plugin repo url
Merge pull request #30904 from qgis/backport-30901-to-release-3_8
[Backport release-3_8] Use https for openstreetmap
Merge pull request #30899 from qgis/backport-30892-to-release-3_8
[Backport release-3_8] Add a reserve method to QgsGeometryCollection
Avoid storing and cloning paint effects for layers if they are just
the default stack unchanged Speeds up cloning of symbol layers
[API][FEATURE] Allow setting a custom path pre-processor for QgsPathR…
…esolver
QgsPathResolver::setPathPreprocessor allows setting a custom path pre-processor
function, which allows for manipulation of paths and data sources prior
to resolving them to file references or layer sources.
The processor function must accept a single string argument (representing the
original file path or data source), and return a processed version of this path.
The path pre-processor function is called before any bad layer handler.
Example - replace an outdated folder path with a new one:
def my_processor(path):
return path.replace('c:/Users/ClintBarton/Documents/Projects', 'x:/Projects/')
QgsPathResolver.setPathPreprocessor(my_processor)
Example - replace a stored database host with a new one:
def my_processor(path):
return path.replace('host=10.1.1.115', 'host=10.1.1.116')
QgsPathResolver.setPathPreprocessor(my_processor)
Example - replace stored database credentials with new ones:
def my_processor(path):
path= path.replace("user='gis_team'", "user='team_awesome'")
path = path.replace("password='cats'", "password='g7as!m*'")
return path
QgsPathResolver.setPathPreprocessor(my_processor)[labeling] Ensure short lines (wrt font size) still generate sufficient
candidates to ensure centered placement of labels
Register the app bad layer handler before loading plugins
This gives plugins a chance to replace the handler without their changes being overwriting immediately afterwards
Keep the destination image of the same size
Use a bigger extent for getFeatures but keep the destination image of the same size.