The `QgsMapToolAddRing` adds a ring through the `addRing` method of
`QgsVectorLayerEditUtils` called by this of `QgsVectorLayer`.
The bug described in #23113 indicates that only one of the entities receives the
ring addition when using the map tool.
This is consistent with the documentation of the `addRing` methods.
So, it is by design that the tool works like this.
However, as stated in the ticket, it is best to add the ring to all entities.
In order to avoid an api break, I added a new addMultiRing method that adds the ring on all entities.
Fixes#23113
To be able to open vector layer in a read-only mode, a new vector layer option has been defined to do it.
This option is used to open world_map.gpkg and fixes#35383
In most cases of use of QGIS Server, it is not necessary to access the layers in write mode.
The read-only mode is sufficient.
We would like to introduce a new flag Qgis::ProjectReadFlag::ForceLayerReadOnly to
open layers in a read-only mode.
Choices are "individual features" (the default behavior) or "continuous
surface". The new Continuous Surface option is designed for vector
layers which represent a continuous elevation surface, e.g contour
lines or surveyed elevation points. When selected, the elevation
chart will be rendered as a surface instead of separate features
by joining the sampled elevation results into a continuous line.
There's also the same option exposed as for raster and mesh layers
where the appearance can be toggled from a single line to a "fill
below" symbol.
Fixes#48341
symbology, and add checkbox to disable this in their elevation
properties page
This means that vector results in elevation profile charts will default
to showing features using their corresponding 2d renderer, allowing
eg categorized classes to be visible on the profile chart. (In the
case that a profile symbol type doesn't match the layer's renderer
symbol types, we just take the symbol color from the renderer)
Allows elevation properties to be set for vector layers, including:
- altitude binding
- altitude clamping
- extrusion
- scale
- offset
These properties can be set through the new "Elevation" tab in
the vector layer properties dialog
Pass widget as parent to the dialog to avoid "orphaned" child dialogs. The widget is passed as parent to QgsFeatureAction. When creating a dialog the widget is passed as parent to the dialog and the dialog is set as parent to the QgsFeatureAction (last like before).
To avoid confusion with opened dialogs the parent's visibility is set to hidden, when child dialog is opened.
This fixes#47193
Long story short, the `layer.committedFeaturesAdded` signal is not fired after `layer.commitChanges()` when in transaction mode.
If the layer is using the `QgsVectorLayerEditBuffer` the `commitedFeaturesAdded` signal is fired.
But if transaction is used and the `layer.editBuffer()` returns `QgsVectorLayerEditPasstrough`, then there is no signal.
The `QgsVectorLayerEditPasstrough` class is quite empty and lacking implementation of these events, so they don't work on layers in a transaction group.
Also, make sure that non enforced constraints
do not block commits and do not report as violated
constraints (Fix#46364).
Followup #46439 because the constraints were
not checked agains the widget value but against
the attribute value.
The method returns TRUE if the layer is a query/sql layer.
This allows to selectively show the "Update SQL Layer..." menu
entry in the legend.
Partial fix for #45796