16361 Commits

Author SHA1 Message Date
Nyall Dawson
1899f90a04 [needs-docs] Rework label engine "maximum line candidates" and "maximum polygon candidates"
settings and logic

The previous approach of a single fixed value which applied to ALL line and ALL polygon
features was... not ideal. It meant that all line features would be assigned the same
number of candidates, regardless of length. So a road of length 1 cm on the rendered
map would have an identical number of candidates as a 30cm road covering the length of the
whole map!! This resulted in both a lot of wasted calculations (generating a ridiculous
number of candidates for small lines at barely discernable distances from each other)
AND an insufficient number of candidates for lengthy features (resulting in worse label
placement for these features).

(The situation was similar, but even worse for polygons)

Now, the setting is reworked to "Number of line candidates per cm" and "number of
polygon candidates per cm2". This means that small features get much less candidates,
and large features get much more features! Both a win for map rendering speed in many
circumstances AND good cartography... now that's a nice Christmas gift for QGIS :)
2019-12-26 13:18:10 +10:00
Nyall Dawson
df102a98da [needs-docs] Drop setting for maximum number of point label candidates
This setting is easily replaced by automatically calculated, optimised
values for each separate point plcaement mode individually
2019-12-26 13:18:10 +10:00
Matthias Kuhn
4f625ce733
Merge pull request #33476 from dmarteau/fix-project-relation-manager
Fix inconsistent dependency to project in QgsRelation/QgsRelationManager
2019-12-23 07:23:08 +01:00
Nyall Dawson
fb5b440d5d [FEATURE] Allow dropping a map layer from the layer tree onto
a projection selection widget to set the projection to match that layer

Just a little timesaving shortcut!
2019-12-23 05:17:40 +10:00
Nyall Dawson
d5821feb9f [api] Add api to allow panel widgets to show a "hamburger" style
menu in the top right of the panel

This gives the panel a place to add menu actions like help links
for the panel.
2019-12-22 20:33:55 +10:00
David Marteau
907b27309c
Add missing parameter documentation 2019-12-21 13:28:31 +01:00
David Marteau
5bf8d2cd26
Pass project when creating relation from Xml
Fix dependency inconsistency to project from QgsRelationManager
    by forcing  'QgsRelation::createFromXml' to rely on project passed
    to 'QgsRelationManager' instead of using 'QgisProject::instance()'
2019-12-20 23:56:17 +01:00
Nyall Dawson
521080cd13 Add API to auto set QgsCoordinateOperationWidget selection to match
a QgsCoordinateTransformContext's state
2019-12-21 05:07:39 +10:00
Nyall Dawson
b8b668888c Allow algorithms to link to multiple depandant parameters in modeler scene 2019-12-21 05:07:39 +10:00
Nyall Dawson
3e9aaaa6ea Move variant to CRS resolution out to QgsProcessingUtils for wider
usability
2019-12-21 05:07:39 +10:00
Nyall Dawson
fe622dd24a [API][processing] New parameter type for coordinate operations
Allows selection of the proj coordinate operation to use when
reprojecting between two CRSes
2019-12-21 05:07:39 +10:00
Nyall Dawson
c04d4faf7f Allow double-clicking on coordinate operation to quickly select them 2019-12-21 05:07:39 +10:00
Nyall Dawson
f0f63d3802 Use QgsCoordinateOperationWidget in QgsDatumTransformDialog 2019-12-21 05:07:39 +10:00
Nyall Dawson
cb8b4a8831 Move guts of datum transformation dialog to a new standalone widget
QgsCoordinateOperationWidget

This widget shows a list of the available operations between a source
and destination CRS along with their properties
2019-12-21 05:07:39 +10:00
Matthias Kuhn
2a01772e46
Merge pull request #33436 from signedav/relating_values
List referenced layer values in Expression Builder
2019-12-20 17:29:10 +01:00
David Signer
ea912a170c since information 2019-12-20 09:39:50 +01:00
Peter Petrik
d211de2204
Other average methods 3d mesh (#33426)
[FEATURE] [MESH] add new 3d stacked mesh averaging methods (top, bottom, sigma, depth, height, elevation)

see https://fvwiki.tuflow.com/index.php?title=Depth_Averaging_Results for description of the methods. method can be selected for 3d stacked mesh dataset in the new widget added for QGIS 3.12 in the mesh layer styling dialog
2019-12-20 07:48:39 +01:00
Nyall Dawson
80be192d8f Fix doxygen warning 2019-12-20 12:13:06 +10:00
Nyall Dawson
b7a440938c Layout fixes 2019-12-20 12:13:06 +10:00
Nyall Dawson
fdf211a8a3 Add a method for retrieving a user friendly descriptive string for
a CRS

And use this wherever we show CRS values to users
2019-12-20 12:13:06 +10:00
Nyall Dawson
e152685d97 Cleanup handling of recent CRS list, add tests 2019-12-20 12:13:06 +10:00
Nyall Dawson
cbc1ee56cc Deprecate most methods which construct CRSes from internal CRS ids
These should NOT be used, and auth:code or WKT definitions used instead.

Unfortunately some use of these methods are very heavily entangled around
other code, so we can't deprecate all of them until 4.0
2019-12-20 12:13:06 +10:00
Nyall Dawson
c76813c434 Deprecate methods for constructing CRS from Postgis srids
Constructing CRS using Postgis srids is highly discouraged,
and instead CRSes should always be constructed using auth:id
codes or WKT strings.

QGIS 4.0: The logic should be isolated into the postgres
provider alone, and not exposed to stable API
2019-12-20 12:13:06 +10:00
Nyall Dawson
b37dd0984e Rip off a band aid, and deprecate all "proj4" calls from the API
Alias these across to new "proj" methods, which don't include the
version number.
2019-12-20 12:13:06 +10:00
David Signer
1f1a3fe6b7 pass field formatter context as a reference instead of a pointer to implify his not optionality 2019-12-19 21:08:02 +01:00
signedav
7f9aa3d2bb
Merge branch 'master' into relating_values 2019-12-19 14:12:38 +00:00
David Signer
e8b82c15b8 use of context to pass project and avoid QgsProject::instance() 2019-12-19 15:07:52 +01:00
Alessandro Pasotti
90ac90b4a9 Weak relations and auto-restore when loading a style 2019-12-19 10:33:24 +01:00
David Signer
9e5657c8fe use of QVariantList instead of QList<QVariant> 2019-12-19 10:15:33 +01:00
Alessandro Pasotti
ecff2e6e04
Merge pull request #33462 from elpaso/stored-expressions-no-groups
[feature] User expressions followup
2019-12-18 20:59:27 +01:00
Alessandro Pasotti
a8c0e4cbf6 User expressions followup
- renamed the group to "User"
- added help text for the group
- added QgsSettings Expressions namespace
- reworded tooltips for store/remove actions
2019-12-18 14:24:02 +01:00
Peter Petrik
e1068e61cb
Merge pull request #33388 from PeterPetrik/mesh3d_averaging_methods 2019-12-18 09:57:22 +01:00
Peter Petrik
a6bc4e3cdf fix doc 2019-12-18 07:51:07 +01:00
Nyall Dawson
8bfca7f2c8 Expose control over whether custom projections are stored using proj or WKT strings 2019-12-18 12:44:43 +10:00
Alexander Bruy
a0b392da12 [processing] url-encode path to tiles in XYZ algorithm (fix #32589) 2019-12-18 08:50:23 +10:00
Alessandro Pasotti
89cacd7180
Merge pull request #33437 from elpaso/stored-expressions
[feature] Stored expressions
2019-12-17 20:13:32 +01:00
Alessandro Pasotti
fd6075e80b Renamed stored expressions to user expressions 2019-12-17 17:10:43 +01:00
Denis Rouzaud
105ebc4683
test commit for backport bot (#33444) 2019-12-17 16:25:39 +01:00
Alessandro Pasotti
6b232414f2 Added new files header 2019-12-17 15:00:48 +01:00
Vincent Cloarec
c252a3ad4c [mesh] Fixes time reference for mesh layer #32186 #33399 #31933 (#33410)
[FEATURE] [mesh] Load reference time from MDAL when available

Also adds combo box to let the user set the provider time unit. This is particularly useful when MDAL incorrectly recognised the time units in the raw dat format (for example format does nof follow spec and it is not possible to determine if time interval is in hours or days)

fix #32186 
fix #33399
fix #31933
2019-12-17 14:56:49 +01:00
signedav
4cbd9a1ee3
Merge pull request #33197 from signedav/searchtags_functions
Search tags on expression functions
2019-12-17 09:28:26 +00:00
Alessandro Pasotti
e4b4459af0 Use QStringLiteral 2019-12-17 10:19:16 +01:00
nirvn
3404dff67e [labelling] Fix masked symbol layers loss when
- opening layer properties window; or
- changing label settings in style dock
2019-12-17 15:15:49 +07:00
David Signer
83be397f8d menu action to only display the used values if formatter can provide available values 2019-12-16 18:28:18 +01:00
David Signer
5e6e75662f available values in value relations 2019-12-16 18:28:18 +01:00
David Signer
54f4efbd86 available values of value map 2019-12-16 18:28:18 +01:00
David Signer
a02cdbc39a CanProvideAvailableValues as a flag on fieldformatter 2019-12-16 18:28:18 +01:00
David Signer
6baaae5340 get availableValues over the fieldFormatter 2019-12-16 18:28:18 +01:00
Alessandro Pasotti
09345b5130 Add QgsExpressionStoreDialog 2019-12-16 17:29:30 +01:00
Alessandro Pasotti
2ab794bcc5 Add tests and utility methods 2019-12-16 17:29:30 +01:00