56884 Commits

Author SHA1 Message Date
lbartoletti
e5cd1aa913 Topological editing: fix vertex tool (Z support) (#31163) 2019-08-14 09:00:58 +10:00
Nyall Dawson
2074f2c9fc Warnings 2019-08-14 06:46:19 +10:00
Nyall Dawson
89fd484ea4 More dox fixes 2019-08-14 06:46:19 +10:00
Nyall Dawson
be4e7b1088 More attempt to fix doxygen warning 2019-08-14 06:46:19 +10:00
Nyall Dawson
73f11242df Fix warning 2019-08-14 06:46:19 +10:00
Nyall Dawson
490b348e39 Always clear map layer ID after exporting a multi-layer item 2019-08-14 06:46:19 +10:00
Nyall Dawson
b4a172f87e Dox fixes 2019-08-14 06:46:19 +10:00
Nyall Dawson
2e186236d5 Reenable test 2019-08-14 06:46:19 +10:00
Nyall Dawson
f0d60952bf Dox++ 2019-08-14 06:46:19 +10:00
Nyall Dawson
4f81a88812 [layouts] Add flags to control whether labels are split to multiple
layers in multi-layer exports
2019-08-14 06:46:19 +10:00
Nyall Dawson
41f819a52f Add API to allow labels in QgsMapRendererStagedRenderJob to be
rendered by individual map layer

This allows seperation of labels belonging to different layers,
but may affect label stacking order as the order will become
layer-dependant, instead of per-label-dependant.
2019-08-14 06:46:19 +10:00
Nyall Dawson
3938e8f27c Make QgsLabelingEngine an abstract base class, and make QgsDefaultLabelingEngine
as the default concrete class implementation of this

Allows other labeling engine subclasses which can do things like
render labels belonging to each individual layer to different
QPainter devices.
2019-08-14 06:46:19 +10:00
Nyall Dawson
7e1cd25e31 Add direct storage of map layer ID to render jobs, to use as an identifer only 2019-08-14 06:46:19 +10:00
Nyall Dawson
997b07d59e Fix use of deprecated methods 2019-08-14 06:46:19 +10:00
Nyall Dawson
e3a6cfa2c5 SVG multilayered export no longer messes up label placement (yay!) 2019-08-14 06:46:19 +10:00
Nyall Dawson
de3b886313 Fix generation of layer names for exported multi-layer map exports 2019-08-14 06:46:19 +10:00
Nyall Dawson
56609123fc [layouts] Rework API for item export to multi-layered exports
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.
2019-08-14 06:46:19 +10:00
Nyall Dawson
07c8c54660 Split part iteration for staged render job to a manual API call 2019-08-14 06:46:19 +10:00
Nyall Dawson
90d55d8240 Correctly respect label blocking items during layered layout exports 2019-08-14 06:46:19 +10:00
Nyall Dawson
7faeaff5a9 Add isFinished method to staged render job 2019-08-14 06:46:19 +10:00
Nyall Dawson
9b512b0f6e Render labels in staged renderer job 2019-08-14 06:46:19 +10:00
Nyall Dawson
244eb92a82 Add QgsMapRendererStagedRenderJob
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).
2019-08-14 06:46:19 +10:00
Nyall Dawson
6c0fe012f7 Move more QgsMapRendererJob code to correct .cpp file 2019-08-14 06:46:19 +10:00
Nyall Dawson
da2df20712 Start splitting out parts of QgsMapRendererCustomPainterJob to an intermediate base class 2019-08-14 06:46:19 +10:00
Nyall Dawson
80f32aaa4c Fix some warnings 2019-08-14 06:46:19 +10:00
Nyall Dawson
3773f95d57 Move QgsMapRendererJob::needTemporaryImage to correct .cpp file 2019-08-14 06:46:19 +10:00
Nyall Dawson
dd27f72b0e Convert doxygen \throws to Sphinx :raises: syntax in sipify 2019-08-14 06:45:54 +10:00
Denis Rouzaud
9b4cb6f502
Merge pull request #31178 from 3nids/relation_composite_gui
[FEATURE] allow to define multiple field pairs for relations (composite keys)
2019-08-13 16:44:31 +02:00
Alessandro Pasotti
6d1c87cfae
Merge pull request #31191 from elpaso/bugfix-gh31177-server-gfi-cascading
Fix server WMS cascading getfeatureinfo
2019-08-13 11:07:24 +02:00
Nyall Dawson
a46803844a [layouts] Add an indicator in the status bar while a map redraw is
occurring in the background

Otherwise there's no way to tell if a redraw is humming away in
the background, or is completed...
2019-08-13 18:27:38 +10:00
Denis Rouzaud
bb775ddc60 simpler code to create strings 2019-08-13 09:33:50 +02:00
Nyall Dawson
71e8211016 Fix crash in categorized renderer widget (master only) 2019-08-13 12:47:20 +10:00
nirvn
67146aa0d2 Add test case for georeferencing of layouts exported to PDF 2019-08-12 19:21:17 +07:00
nirvn
4b0b8d4c93 [needs-docs][layout] Limit georeferencing of exported PDFs when reference map is on the first page 2019-08-12 19:21:17 +07:00
nirvn
69ff83bc30 Be more descriptive as to what 'RDF metadata' is 2019-08-12 19:21:17 +07:00
nirvn
f623c52fdf [needs-docs][layout] Give user explicit option to georeference (or not) PDF exports 2019-08-12 19:21:17 +07:00
Nyall Dawson
b3c1719e98 Fix unnecessary layer reloads triggering after project load, which
also causes a leak
2019-08-12 16:41:31 +10:00
Alexander Bruy
e3ad35bb32 add Ukrainian translation to tx config and update translators list 2019-08-12 09:15:10 +03:00
Nyall Dawson
79a7edcff2 Cleanup default item displayName formatting in export layers 2019-08-12 16:12:03 +10:00
Nyall Dawson
ba800662a0 Use reference instead of pointer 2019-08-12 16:12:03 +10:00
Nyall Dawson
8b154a1753 Remove unused layer 2019-08-12 16:12:03 +10:00
Nyall Dawson
071d8c777b Another tweak to export names: indicate source map item in map item sublayer names 2019-08-12 16:12:03 +10:00
Nyall Dawson
0f2a4828e4 Better display names for page items
These can't have ids set, so default to a nicer looking name
2019-08-12 16:12:03 +10:00
Nyall Dawson
6bf088a106 Much improved, more descriptive names for exported layers
E.g. use lists of item types to describe multi-item layers
2019-08-12 16:12:03 +10:00
Nyall Dawson
276a34fd12 Add API to set/retrieve plural variants of layout item type names (e.g. Labels instead of Label) 2019-08-12 16:12:03 +10:00
Nyall Dawson
2adfd27f4e [layouts] Don't export empty layers in layered exports 2019-08-12 16:12:03 +10:00
Nyall Dawson
98bcfe26b6 When multiple items of same type are on a layer, use type name as layer name 2019-08-12 16:12:03 +10:00
Nyall Dawson
508a03d7ce When an item is isolated on its own layer, use the item's id as the layer name 2019-08-12 16:12:03 +10:00
Nyall Dawson
208beb7f8c [layouts] Improve logic of splitting layouts into separate layers when
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
2019-08-12 16:12:03 +10:00
Nyall Dawson
b6ab6df69f Also allow retrieving map layer ID associated with a layout export layer 2019-08-12 16:12:03 +10:00