This commit adds a new fill symbol layer type "Random marker fill". It
allows polygon features to be rendered using a marker symbol placed
at random locations within the polygon boundary.
Options include:
- number of marker symbols to render for the polygon
- whether markers rendered near the edges of polygons should be clipped
to the polygon boundary or not
- an optional random number seed, to give consistent placement
of markers whenever maps are refreshed (also allows random placement
to play nice with QGIS server and tile-based rendering)
Sponsored by the SLYR project
The line edit also supports pasting of unicode code in decimal or
hexadecimal format (i.e. 123 or 0x2713).
In addition, the character widget now grabs the keyboard
focus and will change the selected character based on
key stroke.
- remove "Change" label and replace with larger dash preview icon.
The "change" text is unnecessary and adds to dialog clutter, better
to use the space for a wider preview icon (especially given that
the previous narrow icon never really showed enough of the pattern
to be useful!)
- don't offset the line in the preview if the symbol has an offset
set
- respond correctly to dash pattern, line width unit changes, cap
style changes
- show a nice big preview tooltip on hover
This line symbol type is designed to replicate the ArcGIS Hash Line
symbol layer type. It allows for a repeating line segment to be
drawn over the length of a feature, with a line-sub symbol used
to render each individual segment.
To reduce code duplication, this is heavily based off the current
line marker symbol layer, since the functionality is almost
identical (draw some sub symbol at some interval along a line).
Accordingly, I've split off QgsMarkerLineSymbolLayer to move
as much of the common functionality as possible to a new abstract
base class, so that only the actual marker/line segment rendering
occurs in the marker line/hash line subclasses.
This also gives the hash line all the existing placement options
permissible for marker lines -- e.g. first/last vertex, mid points,
regular intervals, etc.
The hash line length and angle can have data defined overrides,
which are evaluated per-line segment, allowing for the hash line
to change size and angle over the length of a single rendered
feature.