59007 Commits

Author SHA1 Message Date
Nyall Dawson
ea5b4234ab Default to label placement engine v2 for newly created projects (for QGIS 3.12) 2019-12-03 13:48:45 +10:00
Nyall Dawson
9904fe8621 Refine behavior of obstacle weight slider to match feature weight slider 2019-12-03 13:48:45 +10:00
Nyall Dawson
435287260c [labels] Ensure that we show labels where we've ripped away all the candidates
when showing "unplaced labels"
2019-12-03 13:48:45 +10:00
Nyall Dawson
2c7f89a769 Fix tests 2019-12-03 13:48:45 +10:00
Nyall Dawson
19b8d43388 [needs-docs] When running in label engine v2 mode, discard any candidates where
they collide with an obstacle feature of greater weight when compared
to the label's priority

Previously, obstacle weight was used ONLY to rank a features' label
candidates relative to each other, but was never used to actually prune candidates
completely. This meant that the labeling obstacle functionality was
confusing and frustrating for users to work with -- because despite
setting layers as the maximum possible blocking weight, you'd still
see labels being placed over these features (e.g. where the labeling
engine had no other choice).

Now, (when a project is set to v2 labeling engine mode), labels will
NEVER be placed over obstacles of greater weight. This means that
labels will potentially be omitted if the only choice is to place
them over a high weighting obstacle. But ultimately, that's much
more understandable for users -- they've manually set a particular
layer to a high obstacle factor, so we should respect that and
never place labels on these features.

In the end, this change makes the labeling placement much simpler
to understand for users, and should give power users a much
nicer experience all round.

Funded by the QGIS grants program
2019-12-03 13:48:45 +10:00
Nyall Dawson
bee6ab846e Fix obstacle factor is ignored when a layer is set to blocking mode
It was only correctly being respected for fully labeled layers
2019-12-03 13:48:45 +10:00
Nyall Dawson
7f4226d209 Update labeling tests to use engine v2, update expected reference images 2019-12-03 13:48:45 +10:00
Nyall Dawson
499f240ca7 More raw double arrays to vectors 2019-12-03 13:48:45 +10:00
Juergen E. Fischer
fe9dcf1f33 azure-pipelines: fix dependency package reference 2019-12-03 01:10:18 +01:00
Alessandro Pasotti
af1c087919
Merge pull request #33185 from elpaso/mxe-64bit
Mxe 64bit
2019-12-02 10:47:02 +01:00
Matthias Kuhn
678a877704
Merge pull request #33163 from m-kuhn/dxf_server_params
Add DXF server export params NO_MTEXT and FORCE_2D
2019-12-02 08:17:06 +01:00
Matthias Kuhn
574e0ebaa1 [db_manager] Allow opening .sql files
and not only .SQL files
also allow any file extension

Fix #33173
2019-12-02 01:43:28 +10:00
Matthias Kuhn
0eee45aa16 Remove empty file 2019-12-02 01:43:06 +10:00
Matthias Kuhn
66ef33b48b
Merge pull request #33171 from DelazJ/patch-11
Remove wrong tooltip applied to any unset vector properties tab
2019-12-01 10:01:59 +01:00
Harrissou Sant-anna
6b1dfa771a
Remove wrong tooltip applied to any unset vector properties tab
and add one to the mask tab
2019-12-01 01:23:58 +01:00
Juergen E. Fischer
4c234f21b4 add azure pipeline badge 2019-11-30 21:10:32 +01:00
Juergen E. Fischer
d33a5b56a9 azure-pipelines support
(blood, sweat and tears w/squ-ashed away)
2019-11-30 20:34:16 +01:00
Alessandro Pasotti
bc00621dfd
Merge pull request #33170 from elpaso/bugfix-gh33168-set-center-crash
Check for empty rect before calling setExtent
2019-11-30 18:57:29 +01:00
Alessandro Pasotti
21684cf927 Rename artifact to something meaningful 2019-11-30 18:19:59 +01:00
Alessandro Pasotti
dfb90bf074 64bit MXE build 2019-11-30 18:19:33 +01:00
Alessandro Pasotti
38ae1708a8 Check for empty rect before calling setExtent
this prevents an infinite recursion from setCenter

Fixes #33168
2019-11-30 17:58:26 +01:00
Even Rouault
80cf602aea
Merge pull request #33150 from rouault/cleanup_pal_constructor_destructor
[cleanup] pal.cpp: remove useless constructor and destructor
2019-11-30 10:48:02 +01:00
Even Rouault
c2dac183f7
pal.cpp: use default implementation for constructor and destructor
It is obvious that the constructor was a no-op.

Regarding the destructor, taking a mutex around an object doesn't
make sense because both the mutex and the object are member variables,
so if the pal object is used correctly, the destructor should only
be called after any other use of the object. And explicit clearing of
a unordered_map is unnecessary.
2019-11-29 21:51:00 +01:00
Matthias Kuhn
841086046f Change variable name to clarify the getter purpose 2019-11-29 18:15:42 +01:00
Matthias Kuhn
d10ec078d1 Add DXF server export params NO_MTEXT and FORCE_2D 2019-11-29 17:55:37 +01:00
Alessandro Pasotti
23fb486965
Merge pull request #33064 from elpaso/elpaso-gh-workflow-2
MXE build workflow
2019-11-29 17:36:23 +01:00
Denis Rouzaud
27341850b0
log message when adding feature fails (#33151) 2019-11-29 16:07:08 +01:00
Juergen E. Fischer
7333adecaf Fix windows build 2019-11-29 14:00:45 +01:00
Vincent Cloarec
6d4c995a28 [FEATURE] API for rendering frames for mesh vector dataset animation (particles) (#33110)
* [FEATURE] API for rendering frames for mesh vector dataset animation (particles) 

Adds a renderer to generate frames that represent particle traces in a vector field of a mesh layer. The renderer cannot be chosen in the current GUI, however crayfish plugin can use API to generate avi/gif files with nice animations representing the movement of (random) particles in the mesh layer vector field.
2019-11-29 09:06:47 +01:00
Nyall Dawson
a1002c4574 Dox++ 2019-11-29 13:03:03 +10:00
Nyall Dawson
09b8612761 [pal] Provide more exit points for early cancelation
When a rendering operation was canceled, PAL had very few early
exit points. This often resulted in many canceled rendering operations
burning away in background threads as labeling candidates and solutions
were being generated for jobs which were no longer needed.

Add more exit points and cancel checks throughout various expensive
pal operations, allowing labeling jobs to terminate quickly.

Fixes #32489
2019-11-29 13:03:03 +10:00
Nyall Dawson
8878e9b30b Use QMutexLocker 2019-11-29 13:03:03 +10:00
Nyall Dawson
fc64c3fa3c Use std::vector instead of raw pointer array 2019-11-29 13:03:03 +10:00
Nyall Dawson
4351c30fa5 More memory management fixes in pal, stack allocation rather than heap 2019-11-29 13:03:03 +10:00
rldhont
6fdc99be1e [Tests][Server] Add WMS GetFeatureInfo GML tests 2019-11-29 11:58:59 +10:00
Nyall Dawson
85095a70ff Alternative approach to fixing #32819
Partially reverts 5d27d7c, fixes #33133
2019-11-29 11:58:39 +10:00
Nyall Dawson
d8be3f5a43 [layouts] When dropping a picture to a layout, place the center of
the picture item at the cursor drop location instead of the top left

We want the drop location to be the center of the placed item,
because drag thumbnails are usually centered on the mouse cursor
2019-11-29 11:16:31 +10:00
Nyall Dawson
6ef3746bfb [processing] Fix exceptions when reporting errors during batch execution
Fixes #33105
2019-11-29 11:16:09 +10:00
Even Rouault
1002c61f7a pal.cpp: fix compilation error with gcc 5.5
Unfortunately the compiler cannot figure out that the type of
the { } is a std::pair, so we have to be explicit about that
2019-11-29 10:15:38 +10:00
Nyall Dawson
a99d94e5aa On proj6 builds, never apply a lossy conversion from WKT to proj strings
when attempting to identify a CRS specified via WKT

Because:
1. Proj string conversion is lossy, so we will end up with misleading results
2. If proj can't identify the CRS based on the WKT alone, then any CRS it
identifies from a lossy proj conversion will be incorrect
3. Proj is smarter than QGIS, we should trust it and not rely on downstream hacks

(4. I want to implement creation of user CRS via WKT instead of only proj, and
having this hack in place will break things)
2019-11-29 09:57:20 +10:00
Nyall Dawson
3f94d55384 Fix identification of TAB file in GDA2020 CRS
Fixes #33007 (also requires GDAL master)
2019-11-29 08:27:47 +10:00
Alessandro Pasotti
a4715a30c9
Merge pull request #33132 from elpaso/bugfix-gh33130-pg-executesql-bools
PG provider connection API: convert to bools
2019-11-28 20:30:17 +01:00
Alessandro Pasotti
8d9565099a PG provider connection API: convert to bools
Fixes #33130
2019-11-28 18:58:07 +01:00
Nyall Dawson
f3eab35cde When exporting CRS information from GDAL >= 3.0, use WKT2 format
to avoid loss of CRS information
2019-11-29 03:31:16 +10:00
signedav
6ca436d1fd
Merge pull request #32383 from signedav/test_rulelabel
Display Rulelabel when requested in GetLegendGraphics
2019-11-28 11:42:07 +00:00
David Signer
e465168539 changing temp location in the settings an recalculate the temp file path 2019-11-28 21:19:34 +10:00
David Signer
ef8e251cf8 check if TEMP_PATH in the settings changed 2019-11-28 21:19:34 +10:00
David Signer
8274566b62 temp path for processing output configurable 2019-11-28 21:19:34 +10:00
Nyall Dawson
0f73eb6326 Dox++ 2019-11-28 21:15:30 +10:00
Nyall Dawson
938ddfd6d5 Pass labeling engine version to pal 2019-11-28 21:15:30 +10:00