5673 Commits

Author SHA1 Message Date
Nyall Dawson
3bd3aba25b [needs-docs] [labeling] Allow data defined control over line placement options
Allows users to override the line placement settings (e.g.
above/below/on line options) on a per-feature basis. Somehow
this one was the only(?) setting from labeling which
was missing a data defined control...
2019-06-20 10:24:16 +07:00
Nyall Dawson
de672e3127 Allow storing layer WKB type in QgsMimeDataUtils::Uri 2019-06-17 18:17:10 +10:00
Nyall Dawson
52d22b8050 QgsDataSourceURI doxygen improvements 2019-06-16 10:00:59 +10:00
Alex
a02a4ede6e Allow calculating aggregates using a subset of fids only 2019-06-16 07:00:26 +10:00
Nyall Dawson
78a606188c Expose some more auth manager methods to Python
These methods either
- only wrap QSettings values (so there's no added security gained
by not exposing them -- it's currently easily possible to achieve
the same results via direct QSettings manipulation)

OR

- are required to allow fully automated QGIS deployment/startup
scripts which rely on auth manager functionality
2019-06-14 08:54:44 +10:00
Nyall Dawson
d56ddc25fb Minor refactor of QgsMapLayerProxyModel 2019-06-13 04:57:37 +10:00
Nyall Dawson
760af67d0f Cleanup handling of QgsMimeDataUtils::Uri corresponding to project layers
And add tests
2019-06-13 04:57:37 +10:00
Alessandro Pasotti
e740688faa
Merge pull request #30151 from elpaso/bugfix-gh30115-value-relation-widget-match-name-if-id-fails
When loading a QLR, try to match the layer name if id does not
2019-06-11 11:20:30 +02:00
Alessandro Pasotti
2d45ba8d68 Move the QgsProject singleton problem one step up 2019-06-11 09:22:31 +02:00
Alessandro Pasotti
103ef762ca Factor out generateId for layers and fix QLR mutiple layers id import 2019-06-10 17:58:22 +02:00
Alessandro Pasotti
a295701023 ResolveLayer returns a layer instance instead of an ID 2019-06-10 15:39:52 +02:00
Alessandro Pasotti
13099cc4fa
Merge pull request #30137 from elpaso/bugfix-gh30131-postgres-json
Fix json hanlding of bools and complete json(b) PG support
2019-06-10 14:22:14 +02:00
Alessandro Pasotti
f9b50b5b38 Move layer resolver into a static method 2019-06-10 14:10:11 +02:00
Alessandro Pasotti
79219dae23 Forward port of histogram binding fix with a bonus test
Fwd port of PR #30033
Fixes #29700

With a new test for the bug.
2019-06-09 10:25:50 +02:00
Alessandro Pasotti
d2a93501f2 Remove empty lines 2019-06-08 20:32:02 +02:00
Alessandro Pasotti
3ea542a433 Fix json hanlding of bools and complete json(b) PG support
Fixes #30131 and add tests for jsonutils
2019-06-08 20:29:48 +02:00
Alessandro Pasotti
96c3357915
Merge pull request #30100 from elpaso/bugfix-gh29937-duplicated-datefield-crash
Do not emit dateChanged signal if value has not changed
2019-06-07 08:18:47 +02:00
Alessandro Pasotti
58fcd60f49
Emit newProject after save project as ... (#30025)
* Emit newProject after save project as ...

Fixes #29919

* Use QgisApp::projectSavedAs signal when project is saved with a new path

* Update browser project home path when saved as

* Set home path when reading a project

* Emit homePathChanged in any case
2019-06-06 12:04:22 +02:00
Alessandro Pasotti
8ffdb4ae28 Remove old incomplete documentation 2019-06-06 11:57:19 +02:00
Nyall Dawson
8b16e05998 Cleaner handling of raster provider native resolutions 2019-06-06 17:11:06 +10:00
Nyall Dawson
a98d12e1e0 Dox 2019-06-04 06:18:17 +10:00
Nyall Dawson
1bc716fc61 [labeling] Fix incorrect bounding box of labels used when
map is rotated

Fixes #24680
2019-06-04 06:18:17 +10:00
Nyall Dawson
004b7d879a [labeling] Fix cannot use labeling map tools when canvas is rotated
Fixes #25384
2019-06-04 06:18:17 +10:00
Nyall Dawson
789dbb570b Add friendly, descriptive errors when opening a project which has
preset non-default coordinate operations set between a crs pair,
which use grids that are not available on the local system
2019-06-03 16:46:54 +10:00
Nyall Dawson
f758bb7214 Add mechanisms to set handlers for coordinate transform creation errors and warnings 2019-06-03 16:46:54 +10:00
Nyall Dawson
d754a09296 Refactor to extract useful method 2019-06-03 16:46:54 +10:00
Nyall Dawson
a4e5e6a598 [needs-docs] Append a local, user writable folder to proj 6 search paths
Now, proj will search in the current user profile "proj" folder (e.g.
.local/share/QGIS/QGIS3/profiles/default/proj" on linux) for
grid files and other proj helper files.

This allows users (and plugins) to install grid files and make them
available for use in QGIS without requiring administrator access
to the system.
2019-06-03 10:38:22 +10:00
Nyall Dawson
c82d3b643f Upgrade QgsCoordinateTransformContext for proj 6
This reworks (on proj 6 builds only!) QgsCoordinateTransformContext
to use proj strings of proj coordinate operations to handle the
users' preferred list of operations when transforming coordinates
between two CRSes.

Previously, the context heavily utilised internal transform ID
numbers, which were QGIS specific and relied on matching entries
from the QGIS srs.db file. This approach was undesirable because
it meant QGIS had to maintain and carry it's own table of
possible transform pathways between CRS pairs (which was difficult
to update, impossible to track, and most likely severely out of
date).

Now we can utilse Proj 6's (wonderful!) logic for determining the
best coordinate operation to utilise between two CRSes. All the
old API has been deprecated and no longer works under proj 6, but
that's unavoidable (and unlikely to be in use by plugins anyway,
it's VERY low level stuff).

A further bonus of this work is that QgsCoordinateTransform no
longer relies on proj strings of the source/dest CRS to build
the transform -- the issue with that approach was that proj
strings are lossy (and not always possible to generate), so
now by default we are generating better pathways between CRS
pairs.

This resolves issues with transforms which rely on pivot datums,
such as GDA94 - GDA2020 conversions.

Sponsored by ICSM
2019-05-31 10:38:08 +10:00
Nyall Dawson
0cf4ecf491 Deprecate a QgsCoordinateTransformContext members which don't
apply in proj >= 6.0 builds
2019-05-31 10:38:08 +10:00
Nyall Dawson
c61fb85ed6 Remove unused support for single source/dest settings in QgsCoordinateTransformContext
This has been #ifdef'ed out since it's original implementation,
and it has no meaning in the world of Proj >= 6.0
2019-05-31 10:38:08 +10:00
Nyall Dawson
7213030ad9 [labeling] Fix missing labels when multilinestring features are used in
conjunction with the "merge connected lines" setting

Refs #12173
2019-05-30 17:27:00 +10:00
Alessandro Pasotti
3f1ba81b7e Address PR comments (minor changes) 2019-05-27 09:20:34 +02:00
Alessandro Pasotti
564fd50e43 Fix spatialite handling of JSON arrays
Fixes #21986

plus:

- fix multiple string keys with commas in value relation widget
- more robust JSON and array (un)marshalling
- uniform array representation in value relation widgets
- lot of test coverage
- automatic QVariant type conversions in JSON utils
2019-05-27 09:20:34 +02:00
Denis Rouzaud
d7fa0286c4
do not insert layers in embedded groups (#10004)
fixes #29678
2019-05-26 23:25:15 -05:00
Nyall Dawson
85e207897b Add API to retrieve avaiable coordinate operations between a source
and destination QgsCoordinateReferenceSystem on proj >= 6 builds
2019-05-27 08:26:34 +10:00
Nyall Dawson
b4d18f8e0c Mark older datum transform methods as deprecated - they don't work under proj 6 2019-05-27 08:26:34 +10:00
Nyall Dawson
bed77bbfa8 Add method to retrieve underlying PJ object from a QgsCoordinateReferenceSystem
proj 6 only
2019-05-27 08:26:34 +10:00
Mathieu Pellerin
a888986567
[needs-docs][processing] Avoid field collision via optional prefix in overlay algorithms (#10092)
Makes for a more predictable collision avoidance, which
can be neccessary for some models.
2019-05-24 19:00:28 +07:00
nirvn
f9810a4534 [effects] Fix blur radius not taking dpi into account (fixes #14885) 2019-05-23 11:34:15 +07:00
Nyall Dawson
d8a5dfef06 Add missing dox to QgsRenderContext 2019-05-22 07:12:06 +10:00
Nyall Dawson
e23ceaa806 Mark render features methods as throwing QgsCsException, to allow it to be nicely caught in Python 2019-05-22 07:12:06 +10:00
Nyall Dawson
60deffbfa8 Add method to QgsRasterBlockFeedback to collect error messages
And append raster errors to rendering errors whenever encountered
2019-05-22 03:46:00 +10:00
Bas Couwenberg
2628c480c5 Don't include revision in sources.
Prevent changes to files that weren't changed between releases.
This eases review of the changes between releases significantly.
2019-05-17 16:47:47 +02:00
rldhont
943c7d5d90 [Processing] Define boolean output
In processing, if an algorithm has a boolean as an output, it cannot be defined as boolean but as a number.

To be more precise in algorithms description, the commit add QgsProcessingOutputBoolean.
2019-05-17 08:21:57 +10:00
Matthias Kuhn
00d31f6003 Revert "Merge pull request #10002 from m-kuhn/qgz-attachments"
This reverts commit 0804e342c863455fe7114e4fa84d8b9931656f8c, reversing
changes made to e07741f00b7d69cada35521f10d3703ff404083f.
2019-05-16 13:15:07 +02:00
Matthias Kuhn
a55c25bbeb Allow adding attachments in qgz files 2019-05-15 08:21:49 +02:00
Juergen E. Fischer
e9a80d6799 fix build 2019-05-12 17:19:50 +02:00
Alessandro Pasotti
9a612d4e19
Merge pull request #9832 from elpaso/qjson-nlohmann
Fast (and beautiful) json serializing
2019-05-10 11:33:10 +02:00
Nyall Dawson
85ff9aea31 Add method to retrieve map extent to QgsRenderContext
Previously only a "layer clipping extent" was available for retrieval
from a QgsRenderContext instance, yet there's a need for rendering
operations to have access to the original full extent of the map
being rendered.
2019-05-10 06:31:00 +10:00
Nyall Dawson
6b16218c0f Allow setting order by clause for aggregate calculation 2019-05-10 06:23:56 +10:00