3212 Commits

Author SHA1 Message Date
Nyall Dawson
be803e935d [feature] Users can set a custom icon color for different folders
in the browser

Effectively allows users to "tag" folders, aiding in rapid
browser navigation of complex folder structures.
2021-05-17 10:54:44 +10:00
Nyall Dawson
2aa70400ce Allow fill/stroke color to be specified for QgsDataItem::iconDir/openDirIcon 2021-05-17 10:54:44 +10:00
Nyall Dawson
cd6aa7f665 Add parameterized color support to QgsApplication::getThemeIcon
Adds framework to allow for icons which can have dynamic coloring
2021-05-17 10:54:44 +10:00
Mathieu Pellerin
8ebef88e27
Merge pull request #43229 from nirvn/close_browser
[network access manager] handle abortion of browser login request
2021-05-15 20:23:49 +07:00
nirvn
8513b8051f [authentication manager] Allow configurations to be overwritten when importing 2021-05-15 17:25:02 +07:00
nirvn
8647ec54d6 Address review 2021-05-15 15:40:19 +07:00
nirvn
1e47ca1a6c [network access manager] handle abortion of browser login request 2021-05-15 13:59:06 +07:00
Denis Rouzaud
d2ccd82cd9
add utility methods to convert map of QgsProperty to/from QVariantMap (#43178)
* add utility methods to convert map of QgsProperty to/from QVariantMap

* add test

* fix test

* fix test
2021-05-14 11:58:47 +02:00
Nyall Dawson
75eba31996 Introduce qgsNanCompatibleEquals for readability 2021-05-13 19:33:15 +10:00
Nyall Dawson
bd26ae1d29 Add basic support for coordinate epoch of dynamic (not plate fixed) crs
to QgsCoordinateTransform

QgsCoordinateTransform class can perform time-dependent transformations
between a static and dynamic CRS based on either the source OR destination CRS coordinate epoch,
however dynamic CRS to dynamic CRS transformations are not currently supported.

Using the same approach as the GDAL changeset in https://github.com/OSGeo/gdal/pull/3810
2021-05-13 19:33:15 +10:00
Nyall Dawson
0b5a95ce44 Deprecate constructor which should have been deprecated a long time ago 2021-05-13 19:33:15 +10:00
Nyall Dawson
5e98648913 [feature][layout] Add ""Convert to Static Text" option to dropdown
menu next to "Insert/Edit Expression…" in layout label properties
widget

When selected any dynamic parts of the label's contents will be
evaluated and replaced with their current values.

Provides an easy way to convert a dynamic label to a static one,
so that the user can then manually tweak the resulting tweak
when needed.
2021-05-13 17:11:13 +10:00
Mathieu Pellerin
e3cb3e5a01
Merge pull request #43193 from nirvn/auth_imex
[authentication] Add a pair of APIs to export and import configurations to/from XML
2021-05-13 12:55:06 +07:00
nirvn
ad1c94c227 Address review, export config string map as DOM element (eases editability) 2021-05-13 08:58:22 +07:00
Nyall Dawson
03e84c775c Hold the GIL when checking QgsFeedback.isCanceled() 2021-05-13 04:34:54 +10:00
nirvn
3d70259fe4 Fix dox 2021-05-12 17:52:24 +07:00
nirvn
f916c06a8e [authentication] Add a pair of APIs to export and import configurations to/from XML 2021-05-12 16:05:38 +07:00
Even Rouault
a11baa0e5a Workaround a gcc warning for switch() { case X: return ...; } constructs
Fixes warnings like the following one with gcc 9.3
```
/home/even/qgis/qgis/src/gui/qgsfilecontentsourcelineedit.cpp: In member function ‘virtual QString QgsPictureSourceLineEditBase::fileFilter() const’:
/home/even/qgis/qgis/src/gui/qgsfilecontentsourcelineedit.cpp:307:1: warning: control reaches end of non-void function [-Wreturn-type]
  307 | }
      | ^
```
2021-05-12 08:12:57 +10:00
Denis Rouzaud
6817d9416a [FEATURE] supports dynamic SVGs in layouts
also fix a UX bug where you couldn't switch between raster and SVG radios if the data defined property was active (unreported in tracker)
2021-05-11 11:15:55 +02:00
Nyall Dawson
21edff4ed7 Show more details about layer CRSes in the layer properties information
screen
2021-05-11 14:25:53 +10:00
Nyall Dawson
b6f60f6120 Add QgsCoordinateReferenceSystem::operation() for retrieving details
of the associated proj operation for a CRS

Allows callers to determine the projection used for CRS objects and
their details.

Also add QgsCoordinateReferenceSystemRegistry::projOperations() for
retrieving a complete list of all available PROJ operations
2021-05-11 14:25:53 +10:00
Nyall Dawson
7604b6e47e Add QgsCoordinateReferenceSystemRegistry::celestialBodies() for
retrieving a list of all known celestial bodies from PROJ

Requires PROJ 8.1+
2021-05-10 21:58:03 +10:00
Nyall Dawson
7e1f9d771d Add celestial body name to EllipsoidDefinition
Requires proj 8.1+
2021-05-10 21:58:03 +10:00
Nyall Dawson
95ed5ecc9c Add QgsCoordinateReferenceSystem::celestialBodyName
Returns the associated celestial body name (proj 8.1+ only)
2021-05-10 21:58:03 +10:00
Nyall Dawson
27085cf5f4 Use @ instead of () for epoch strings 2021-05-10 20:23:07 +10:00
Nyall Dawson
299c81db5f Show coordinate epoch in QgsCoordinateReferenceSystem __repr__ 2021-05-10 20:23:07 +10:00
Nyall Dawson
2aab133c0c Add QgsCoordinateReferenceSystem::setCoordinateEpoch()/coordinateEpoch() 2021-05-10 20:23:07 +10:00
Nyall Dawson
9e7e0d4bf6 Add QgsCoordinateReferenceSystem::isDynamic()
Returns TRUE if the given proj coordinate system is a dynamic CRS.

A dynamic CRS relies on a dynamic datum, that is a datum that is no
plate-fixed.
2021-05-10 20:23:07 +10:00
Nyall Dawson
94dc209e9e Add dedicated conversion for MapInfo marker symbols 2021-05-10 15:18:01 +10:00
Juergen E. Fischer
f616be29d3 fix msvc build 2021-05-10 12:29:16 +10:00
Nyall Dawson
bfb1dd7672 [api] Add QgsCoordinateReferenceSystem::factor()
Calculate various cartographic properties, such as scale factors,
angular distortion and meridian convergence for the CRS at a
given geodetic point (in geographic coordinates).

Depending on the underlying projection values will be calculated
either numerically (default) or analytically. The function also
calculates the partial derivatives of the given coordinate.

Internally uses the proj library proj_factors API to calculate the factors.

Fixes #41952
2021-05-08 07:49:27 +10:00
Nyall Dawson
31d1df320a Move projection/transformation related files to core/proj
Minor cleanup
2021-05-08 07:49:27 +10:00
Nyall Dawson
2c75fd0ca1 Sipify 2021-05-07 19:48:19 +10:00
Nyall Dawson
e9cf180dac [api] Add methods for retrieving datum ensemble details for a
QgsCoordinateReferenceSystem

Requires proj >= 8.0
2021-05-07 11:45:07 +10:00
Nyall Dawson
1a4d7b0288 Improved conversion of MapInfo line symbols
Many MapInfo line symbols don't translate well into OGR styles, so
in order to improve the quality of the conversion this commit introduces
a new QgsMapInfoSymbolConverter class which contains utility functions
for converting MapInfo symbols by ID to their QGIS equivalent.

Implemented for line symbols only for now.
2021-05-07 06:38:09 +10:00
Nyall Dawson
dce9c15f57 [layouts] Move methods for determining if a layout requires
rasterization or contains advanced effects to QgsLayoutExporter
instead of QgsLayoutDesignerDialog

This places them in a re-usable, testable location instead of
in private code
2021-05-06 18:23:36 +10:00
Nyall Dawson
be2c5382cb Add utility function QgsSymbolLayerUtils::condenseFillAndOutline
Attempts to condense a fill and outline layer, by moving the
outline layer to the fill symbol's stroke if possible.
2021-05-06 18:23:09 +10:00
Matthias Kuhn
bf2a8b11ed
Merge pull request #42890 from rldhont/unvirtualize-setdatasource
[API] Unvirtualize layer setDataSource method
2021-05-05 10:22:09 +01:00
vcloarec
89c069f695 address review 2021-05-05 09:03:13 +02:00
vcloarec
843eebc6ec do not use hybrid symbol layer type 2021-05-05 09:03:13 +02:00
vcloarec
9a3ad85533 interpolated line symbol layer 2021-05-05 09:03:13 +02:00
Matthias Kuhn
ef3d9a2c32
Merge branch 'master' into unvirtualize-setdatasource 2021-05-05 08:01:26 +01:00
Nyall Dawson
93b7a0c3d5 [api] Add option to QgsVectorFileWriter to store layer metadata for
created layer
2021-05-05 14:12:50 +10:00
Nyall Dawson
f5449a1fe9 (optionally) Store layer notes in QML/QLR and allow copying/pasting
when copying styles between layers

Sponsored by Alta Ehf
2021-05-05 08:44:22 +10:00
Nyall Dawson
3bdb2bbcbd Move layer notes utils to a new QgsLayerNotesUtils class so that they are accessible from core 2021-05-05 08:44:22 +10:00
Nyall Dawson
928e3ee2fe Dox 2021-05-05 06:57:58 +10:00
Nyall Dawson
2f77f6f015 Dox++ 2021-05-05 06:57:58 +10:00
Nyall Dawson
755182c134 Expose more geos methods 2021-05-05 06:57:58 +10:00
NEDJIMAbelgacem
d07a0b9a29 remove the use of QgsCustomPointCloudBlock 2021-05-04 10:11:21 +02:00
NEDJIMAbelgacem
7a03571fa7 code style review 2021-05-04 10:11:21 +02:00