Moves all the drawing code out of labeling into a new class
which just handles rendering text. This allows other parts
of the code to utilise all the advanced formatting options
that labeling supports, eg rendering text with shadows,
buffers and backgrounds.
From the clazy docs:
Finds places using QFileInfo("foo").exists() instead of the faster
version QFileInfo::exists("foo"). According to Qt's docs: "Using
this function is faster than using QFileInfo(file).exists() for
file system access."
From the clazy docs:
Finds places where QString::fooRef() should be used instead of
QString::foo(), to avoid temporary heap allocations
eg
str.mid(5).toInt(ok) // BAD
str.midRef(5).toInt(ok) // GOOD
When moving or deleting a geometry that previously touched the layer extent,
the layer extent was never shrinked.
This fix requires GDAL 2.1.2 or above as well.
Fixes#15273
If the layer has only one legend node, it is embedded in parent.
In QGIS Server the user can specify no layer title, so the layer title has not be displayed.
Previously pictures could only be synced to grid north, which
can be totally wrong for many CRSes (especially in polar areas)
Users now are given a choice of grid or true north, and can also
enter an optional offset to apply if eg magnetic north is instead
desired.
When synced to true north the bearing is calculated using the
centre point of the linked map item.
Fix#192, #4711
This fix was sponsored by the Norwegian Polar Institute's
Quantarctica project (http://quantarctica.npolar.no) and
coordinated by Faunalia.
Adds a new checkbox at the bottom of each symbol layer's
properties which allows you to control whether the layer is
enabled or not.
Disabled layers are not drawn, but are saved and can be
enabled at a later stage.
This makes it easier to tweak symbol appearance without
having to totally delete a symbol layer.
When saving a vector layer into an existing file, depending on the capabilities
of the output driver, the user can now decide whether:
- to overwrite the whole file
- to overwrite only the target layer (layer name is now configurable)
- to append features to the existing target layer
- to append features, add new fields if there are any.
All above is available for drivers like GPKG, SpatiaLite, FileGDB, ...
For drivers like Shapefile, MapInfo .tab, feature append is also available.
This reverts commit 92f71b696ca93c792ae5602ed82863fcef0e5006,
which broke import of legit shapefiles by assuming wrong
semantic for the non-constraining QgsField length/precision
attributes.
Closes#15188
Includes test