should use symbol levels whenever that symbol is used by the renderer
Not exposed to users -- only settable via API, but IS saved in the
symbol's XML definition and restored when loading a symbol from XML.
which are subrenderers for other renderers
Symbol layers have no effect in this situation (e.g. when a categorized
renderer is used as a subrenderer for point displacement renderer), so
don't show the option in the GUI
Instead of directly changing the renderer in place in the symbol levels
widget, we delegate responsibility for handling the changes to symbol
levels to the parent QgsRendererWidget subclass. This allows us to
implement different logic in the various subclasses which correctly
handle how that particular widget subclass should update any internal
symbol references and ultimately update the renderer.
Fixes instability and crashes after editing symbol levels.
Fixes#42671
- Trim trailing newline when reading .env lines
- Skip empty, commented and non "key=value" lines
- Allow = chars in values using maxsplit=1
- No special quote handling, use values as is
Fixes#43308
* fix PyQGIS API docs building
The current building of the PyQGIS API doc relies on the fact that the first line is a signature.
If not given, it should be empty.
* Update qgssettingsentry.py
not QgsPointXY as indicated by the documentation
Also add support for constructing QgsLineString using arrays of
arrays of floats, given that we're having to hand-roll sip conversion
code anyway!
Now the following is supported:
line = QgsLineString([[1,2], [3,4], [5,6]])
which is much nicer and more "pythonic" then the explicit
QgsPoint/QgsPointXY sequences!
Fixes#43200
project are not available when loading that project on a system
without the required fonts installed
Currently shown for any QgsTextForamt or font marker symbol layer
restored when opening the project
Avoids the need to remove const from all the QgsReadWriteContext
references used throughout QGIS XML loading just to be able to
push warning messages to the context.
Returns a reference to the simplest lossless representation of this geometry,
e.g. if the geometry is a multipart geometry type with a single member geometry,
a reference to that part will be returned.
This method employs the following logic:
- For multipart geometries containing a single part only a direct reference to that part will be returned.
- For compound curve geometries containing a single curve only a direct reference to that curve will be returned.
This method returns a reference only, and does not involve any geometry cloning.
configuration is set when changing a vector layer's style preset
This causes the layer styling dock to update before the layer's
new labeling settings are set, so the dock shows the incorrect
label settings for the previously used style
Fixes#42310
QgsMapCanvas::zoomToFullExtent
In 3.18 these methods changed their meaning from the "full extent
of all layers visible in the canvas" to "the full extent of the
associated project".
These are actually two different, equally valid use cases, so
disambiguate by adding new explicit methods projectExtent()
and zoomToProjectExtent(), and revert fullExtent() and
zoomToFullExtent() to their pre-3.18 behavior.
Fixes#43303
In QgsVectorLayer, it is possible through the flag trust layer metadata to use extent read in XML
instead of extent provided by the provider.
The QgsMapLayer::ReadFlag::FlagReadExtentFromXml can be used inlayer readXML to read Extent from XML for raster, point cloud and other layers.
Funded by Ifremer
These utilities are used in a LOT of places in QGIS, but the
qgslayeritem.h include is a very heavy dependency. It makes sense
to have these utilities in a nice lightweight generic class.
class
This avoids an ugly include of qgsvectorlayerexporter.h in
qgsproviderregistry.h/qgsprovidermetadata.h, which in turn
triggers an inclusion of qgsvectorlayer.h and a bunch of
other heavy dependencies.