Allows text to be horizontally stretched or condensed by a %
factor. Handy for tweaking the widths of fonts to fit a bit
of extra text into labels (when used sparingly, that is...
you can certainly abuse font stretching with some horrendous
results!)
Requires Qt 6.3+ or KDE's 5.15 fork
Thanks for KDAB for fixing the upstream issues blocking this!
Adds two new capitalization styles for labels and text symbols:
- Small Caps: Renders lowercase characters as small caps
- All Small Caps: Renders all characters as small caps (regardless
of their original case)
Requires Qt 6.3+, or Qt 5.15 using KDE's fork and the cmake
HAS_KDE_QT5_SMALL_CAPS_FIX switch defined during build.
which is opt in, and consistently respect this for better quality
raster image markers, svg/raster fills when set
We don't set this by default (keep things light for server), but
do use it in the map canvas and layout exports whenever antialiasing
is enabled.
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
We no longer require paint engine hack for Qt 6.3 or KDE's fork, which
now means that pattern brushes and gradients are correctly exported
to PDF without forced rasterization.
Results in higher quality PDF outputs with smaller file sizes
Thanks to KDAB for the fix!
These are recommended for use instead of the existing force_rhr
function, due to the variability in definition of the "right hand
rule" between different software applications. Using an explicit
force_polygon_cw/ccw function removes user confusion when the
results vary between different applications.
This returns a new multilinestring geometry which represents the
input geometry with the dash pattern applied to the lines or rings
of the input geometry.
Options are available to set rules for the start/end of the pattern,
e.g. ending on a full dash or gap, or half dash or gap.
Sponsored by North Road, thanks to SLYR
This adds a new "Lineburst" symbol layer type, which renders
a gradient along the WIDTH of a line (as opposed to the interpolated
line renderer, which renders a gradient along the LENGTH of
a line). It's like the shapeburst fill symbol type, but for lines!
Sponsored by North Road, thanks to SLYR
This new symbol layer type renders a raster image following
a line feature's shape.
Options are present for:
- picture path (including data defined path)
- line width
- opacity
- line join/cap styles
Sponsored by North Road, thanks to SLYR
pattern fill
This allows users to control how lines in the fill should be
clipped to the polygon shape. Options are:
- Clip During Render Only: existing behaviour, lines are created
covering the whole bounding box of the feature and then clipped
while drawing. Line extremities (beginning and end) will not be
visible
- Clip Lines Before Render: lines are clipped to the exact
shape of the polygon prior to rendering. Line extremities (including
cap styles, start/end marker line objects, etc) will be visible,
and may sometimes extend outside of the polygon (depending
on the line symbol settings)
- No Clipping: no clipping at all is done - line will cover the
whole bounding box of the feature
Sponsored by North Road, thanks to SLYR
When exporting to a vector format (e.g. PDF) or when a line subsymbol
has dynamic (data defined properties), automatically switch to
a line-by-line based approach for rendering the fill instead of the
previous raster tiled pattern based approach.
While it's slower to render (not noticable for desktop users, but
likely enough to affect server deployments), this has many benefits:
1. Smaller PDF/SVG output file sizes, since the fills aren't rasterized
2. PDF/SVG files which are easier to modify in external apps for
post production, as each individual line in the pattern can be
modified.
3. Better quality PDF/SVG outputs, since the fill isn't DPI
dependant and looks awesome regardless of how close in you zoom
4. No visible artefacts at certain angles/distances/line symbol
styles
And even more excitingly, it opens the door for a range of
new symbol styles, eg.
- line patterns where the individual lines change color/width/dash/...
- line patterns with marker line symbols on center point/etc
- geometry generator effects per line, e.g. wavy line patterns, hand
drawn line styles, etc
Sponsored by North Road, thanks to SLYR
Fixes#16100
This is inconsistent with all other fill types, which don't
have a special outline subsymbol. Users should be creating
outline layers when they want an outline instead.
When reading an SVG fill symbol layer from XML, automatically
upgrade any outline subsymbol which is used by the fill to
be separate symbol layers for the parent fill symbol so
that existing symbols will appear as designed in older QGIS
versions.
Fixes qgis#14103
whenever a subsymbol component of a parent symbol is being rendered
This flag allows symbol layers to refine their behaviour based on whether
they are a subsymbol or not.
This optional setting allows each point to be randomly shifted up
to the specified maximum distance in the x/y directions. Maximum
offset can be set in mm, points, map units, etc OR "percentage"
(which is percentage of the pattern width/height)
An optional random number seed can be set to avoid patterns
jumping around between map refreshes.
Data defined overrides are also supported.
Sponsored by North Road, thanks to SLYR