57186 Commits

Author SHA1 Message Date
nirvn
bdf18ee0fd Add a QgsStringUtils function to substitute characters with vertical representation counterparts 2019-08-16 13:56:19 +07:00
nirvn
08c1df18de [labeling] replace characters with vertical presentation form counterparts 2019-08-16 13:56:19 +07:00
nirvn
e487e96954 [labeling] Prohibit non horizontal orientation for curved placement 2019-08-16 13:56:19 +07:00
Peter Petrik
5274c287b5 fix build when QT defines QT_NO_PRINTER 2019-08-16 08:25:17 +02:00
Matthias Kuhn
fc482cbe05
Merge pull request #31158 from m-kuhn/geom_gaps_allowed
"Allowed gaps" layer for gap check
2019-08-16 08:00:42 +02:00
David Signer
f2073bd3b1 do only return true if both values are null and none of them is invalid 2019-08-15 22:22:11 +02:00
Matthias Kuhn
3c52497a08
Merge pull request #31264 from m-kuhn/fix_json
Fix variant to json array handling
2019-08-15 18:32:37 +02:00
David Signer
6bbf5da33b using qgsVariantEqual 2019-08-15 15:48:28 +02:00
Stephen Knox
371c7c7c8d Fix variant to json array handling 2019-08-15 14:34:46 +02:00
Stephen Knox
2af4ad936a Cascade change to variable initialisation to other files 2019-08-15 14:32:12 +02:00
David Signer
38e4bacb7d missing sip 2019-08-15 11:03:19 +02:00
David Signer
9b236a07fe handles two null values as equal, since they can be handled as not equal by == comparison. 2019-08-15 11:02:37 +02:00
Nyall Dawson
992d26135d Fix replacement of fill/stroke opacity in parameterized svgs with opacity in style attributes 2019-08-15 18:54:23 +10:00
Matthias Kuhn
486a72140e
Merge pull request #31072 from DelazJ/vectorlayertooltip
Add tooltips to vector layer properties tabs
2019-08-15 08:58:08 +02:00
nirvn
27124a5d27 [layout] Skip empty multiframe items when writing xml 2019-08-15 09:50:33 +07:00
nirvn
ecf7b50736 [layout] Fix crash an attribute table item tries to access a destroyed map 2019-08-15 09:50:33 +07:00
Matthias Kuhn
e7e87804d2 Add ingroup 2019-08-14 10:04:51 +02:00
Matthias Kuhn
0659dd7236 Dox 2019-08-14 10:04:51 +02:00
Matthias Kuhn
9f682a0663 struct class 2019-08-14 10:04:51 +02:00
nirvn
3e2179e147 [expression] Update the format_date function help hyperlink to point to qt5 doc 2019-08-14 12:54:46 +07:00
nirvn
30a28e66c8 [virtuallayer] Properly register expression function containing optional parameters 2019-08-14 12:54:46 +07:00
nirvn
b58a2a6c21 [FEATURE][expression] Optional format parameter for to_date, to_datetime, to_time functions 2019-08-14 12:54:46 +07:00
nirvn
3a19a5f2a9 [ui] Fix function help hyperlinks not working 2019-08-14 11:51:50 +07:00
lbartoletti
2ef9dc9cbd obviously 2019-08-14 09:05:13 +10:00
lbartoletti
5077a78fb3 prevent potential misuse and remove duplicate nodes for some topological cases 2019-08-14 09:05:13 +10:00
lbartoletti
cf081140d1 avoid potential crash 2019-08-14 09:05:13 +10:00
lbartoletti
57a9155d27 topological editing: fix topological editing for trim/extend map tool 2019-08-14 09:05:13 +10:00
lbartoletti
8ff30072da topological editing: fix copy/move feature 2019-08-14 09:03:51 +10:00
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