Only create rules/categorized categories/graduated ranges if the
associated symbol could be converted to SLD, and is not an "empty"
symbol.
Otherwise we do not generate a rule, as SLD spec requires a
Symbolizer element to be present.
If snap on intersections is enabled, this specific edge search with the
locator was not in relaxed mode, whereas the standard snapping is
happening in relaxed mode.
As a result, trying to use the snapping during the first indexation was
freezing QGIS while the indexation is happening, waiting for it to end.
On a layer where the indexation is longer than the timeout (30sec, i.e.
a WFS layer as in issue #51179), the locator stops abruptly and resets
itself, crashing the indexation and QGIS.
Setting an explicit size for a legend node should override all other settings,
including the heights calculated from minimum/maximum symbol size.
This is because explicit fixed sizes are PER NODE, and can be used as a last-resort
for users to manually adjust the sizing of one particular legend node
Rework internals of QgsTextRenderer horizontal text rendering,
so that:
1. It's easier to read, cleaning up years of accumulated cruft
2. Split out bits into smaller functions
3. Reduce the amount of duplicate code for text layout, so that
there's only one function responsible for horizontal text layout
instead of multiple
4. Add shortcut optimisations for rendering text + buffer/shadow
at the same time, instead of always drawing these completely
independantly of each other and incurring the cost of text path
calculation multiple times for the same bit of text. In a simple
benchtest this reduces the time required for rendering many
text fragments with buffers from 40 seconds to 27 seconds.
There's still more we could do here, but it's a start...
Now when a feature is externally modified on save (database trigger for
example), the dataChanged signal is emitted for indexes and caches
reconstruction.
Implements a few newsorting options for the value relation widget:
- reverse order
- order by a specific field
the default behavior is unchanged (Key).
Fixes#54133
Funded by: Consorzio della Bonifica Renana
If not, mIsChanged state and multiedit button icon are not updated in
QgsAttributeFormEditorWidget. The former leads to not saving
modification issues when applying multi edit modifications because
widget could appear not changed.
* [processing] Brand new generate elevation profile image algorithm
* Add possibility to manually set the elevation profile distance/elevation min and max
* Address comment
* Add test coverage
Adds support for CSS margin properties for block elements in
the text renderer. Specifically:
- This is available for block type elements only, eg DIV, P, H1-H6.
- Margins are NOT available for spans or other non-block content (due to Qt
limitations)
- Margins can be specified in pt units only
- Margins can be specified either via "margin-left: 5pt; margin-right:
10pt" etc, or "margin: 5pt 0pt 10pt 0pt"
- Negative margins are supported for the bottom margin ONLY (due to Qt
limitations)
We add a new setOutputZUp(true) option to QgsTessellator so that
the coordinates on output do not get flipped from [x,y,z] to [x,-z,y].
The default is still the old behavior with flipped axes (to make sure
we do not break the API), but all uses in the QGIS code were upgraded
to use the new option.
This means we do not need to add rotation to polygon / buffered line
symbol's 3D entities in 3D map views (and there's only translation left, yay!)
* MDAL version 1.3.0
* change type
* change types
* fix clang-tidy issues
* fix error
* update expected 2DM mesh with scientific notation
* XMDF driver can have slash (/) in layer name (path in file)
This is a part of the continued quest to get rid of the [x,-z,y]
flipped axes "Y-up" convention used in 3D scenes. Now that the world
coordinates use "Z-up" convention, we also change the 4x4 transform
used for 3D point symbols to be consistent with the rest of the code.