Make sure Python exceptions are converted into
QgsServerException and catched by the main
service executor.
Without this patch, the server process is terminated
(aborted).
Either "ISO3200 extension" or "OGC 'best practice'" options are availab.e
ISO3200 format is recommended, and results in Geospatial PDF files compatible
with the built-in Acrobat geospatial tools.
The OGC Best Practice format results in GeoPDF files compatible with the TerraGo
suite of tools, but can break compatibility with the built-in Acrobat
geospatial tools (yes, GeoPDF format is a mess!).
This is the implementation of the new DB connections API (grant proposal 2019).
Summary
The new API makes it available to QGIS core a new interface for provider connections and will allow to:
replace the provider specific QgsSettings management in QGIS4 (save/load connections from the settings) NOT IN SCOPE FOR NOW.
provide a unified API for common operations on DB connections:
executeSql and get the results
list tables names and properties and schemas
create a new vector table (no rasters for now)
create/rename/drop schemas and tables
vacuum
....
Reworks the QgsLayoutItem API for handling multi-layered exports
to work as an iterator. The advantage with this is that it avoids
items needing to calculate in advance how many layers they require
in the output file.
This map renderer job subclass is designed for step-by-step rendering
of a map to different QPainters.
It exposes an API which lets callers iterate over parts of a map
(e.g. individual map layers, labels), specifying a destination
QPainter for each step in the iteration.
This is designed to improve the existing print layout export to
layered output map rendering, where currently the maps are rendered
by multiple renderer jobs, each only rendering one layer at a time.
This current approach of rendering individual layers are separate
jobs is fundamentally broken (and cannot be fixed), because it
prevents any handling of interactions between map layers (e.g. shifting
colliding labels).
exporting to a multi-layer format
Now, items are either
- placed onto the same layer as other items (simple items like labels, lines, pictures)
- placed onto the same layer as only other items of equal types (semi-complex items like scalebars or pages)
- placed onto their own unique layers (complex items like legends, maps)
Plus lots of tests covering this, where previously there was few