* Add label rendering into VPC tiles
* Move tile labels rendering into QgsPointCloudExtentRenderer
* Rework showLabels flag once more & connect it to widget
* Add widget for label TextFormat WIP
* Rework and fix text format widget issues
* Improve default text format used in VPC labels
* Fix banned keywords issue
* Fix QgsTextFormat review issue
* Fix labels drawing efficiency issue
* Fix formating issues
* Fix review issues
Allows raster iterator to calculate blocks which are exactly
multiples of the resampling factor, to aid in cases where the
iterator will be used to fetch resampled raster blocks
Double-clicking a handle will auto-size the label to exactly fit
the contained text (growing or shrinking as needed). The opposite
side of the label will remaining fixed in place, so eg double-click
the bottom-right handle causes the bottom-right corner of the label
to move.
This is similar to what is achieved in
`QgsRasterLayer::refreshRenderer()` to refresh the renderer according
to an extent. Contrary to the first one, this method does not perform
any GUI update or emit any signal.
It is not used at the moment. This will replace the logic to refresh a
renderer in the following commits.
This is similar to what is achieved in
`QgsRasterLayer::refreshRendererIfNeeded()` to check if the renderer
needs to be refresh according to an extent. It does not perform any
refresh.
It is not used at the moment. This will replace the logic to refresh a
renderer in the following commits.
This commit adds support for the CSS ``background-color`` and
``background-image`` properties when used with HTML labels.
- Backgrounds are supported for block items (eg ``<div>``) or inline
items (eg ``<span>``)
- For images, the CSS should be formatted as ``background-image: url(xx)``.
It supports local file paths, http links, or base64 embedded content
- Backgrounds are not supported for curved text
- HTML backgrounds are always rendered above any background shape for
the label, and below drop shadows/buffers
Sponsored by City of Freiburg im Breisgau
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.
The old method was very inefficient, as it required a re-load and
re-parse of the associated SVG file content with every clone, only
for many of the parsed properties to be immediately overwritten.
Optimise by just directly copying members, avoiding all unnecessary
work.
This is frequently seen as a hotspot when profiling map renders,
as that involves cloning all symbol layers upfront.
Speeds up a benchtest cloning 100k markers from 4.3 seconds to
150ms.