2813 Commits

Author SHA1 Message Date
Denis Rouzaud
1656ef2987
move the config to QgsAttributeEditorRelation + fix cloning (#40941) 2021-01-11 21:47:09 +01:00
Nyall Dawson
f8e5e0bf7e Improve python repr string for QgsCoordinateReferenceSystem
- Indicate invalid crses
- If crs doesn't have an authid, use wkt representation
2021-01-11 13:06:05 +10:00
Matthias Kuhn
e0ad337a2f NMEA calculate 3D RMS 2021-01-11 12:25:05 +10:00
Nyall Dawson
ddf19ac4c3 Add method to retrieve exit status of process 2021-01-09 07:16:14 +10:00
Denis Rouzaud
0fc4aee612
Merge pull request #40721 from suricactus/relregistry
Support multiple relation editors via relation widget registry
2021-01-08 21:39:39 +01:00
Ivan Ivanov
6620bb900e Removed the deprecated methods, will be implemented in Python only 2021-01-08 16:03:50 +02:00
Denis Rouzaud
6061030f96
enable dynamic SVGs for fill symbol (#40902) 2021-01-08 12:02:31 +01:00
Denis Rouzaud
17500a7ee7
Merge pull request #40596 from 3nids/dynamic_svgs
core part to handle dynamic SVGs
2021-01-07 14:57:57 +01:00
Nyall Dawson
a39e1625c0 [api] Add new class to run a process in a blocking manner without
QEventLoop related issues on the main thread

This class should be used whenever a blocking process run is required.
Unlike implementations which rely on QApplication::processEvents()
or creation of a QEventLoop, this class is completely thread safe
and can be used on either the main thread or background threads without
issue.

Execution supports use of a QgsFeedback object to support termination
of the process.
2021-01-07 06:01:39 +10:00
Nyall Dawson
d1761bdb15 Port QProcess::splitCommand from qt 5.15
This is a useful method, and desirable in Qt < 5.15. It's also not
exposed currently to Python, so this doubles as a way for plugins
to use this method.
2021-01-07 06:01:39 +10:00
Denis Rouzaud
98d1be22f2 also update usedAttributes with attributes used in SVG parameters 2021-01-06 16:59:54 +01:00
Denis Rouzaud
130cbae947 prepare expressions of properties for SVG parameters 2021-01-06 16:59:54 +01:00
Denis Rouzaud
3881c81184 fix bad rebase 2021-01-06 16:33:23 +01:00
Denis Rouzaud
2e90da4b26 drop QgsSymbolLayerUitls::readSerializedProperties and serializeProperties 2021-01-06 16:11:14 +01:00
Denis Rouzaud
3201fa4ecb use QgsProperty to handle SVG parameters 2021-01-06 11:25:21 +01:00
Denis Rouzaud
9116a1a181 add a simple class to hold parameters information
this makes it more futureproof to introduce type (string/number) or domain (attribute vs node value)
2021-01-06 11:25:21 +01:00
Denis Rouzaud
9c0ee358ff core part to handle dynamic SVGs
this allow to use a map of parameters to dynamically replace attributes or nodes values in the XML of the SVG
2021-01-06 11:25:17 +01:00
Denis Rouzaud
fd7406cb08
Merge pull request #40716 from 3nids/qvariant-properties
use QVariantMap instead of QgsStringMap for symbol layer properties
2021-01-06 11:21:41 +01:00
Nyall Dawson
3d23cb62af Add missing QgsInterval != operator 2021-01-06 13:28:16 +10:00
Samweli
a75211cc5a fix for additional review comments 2021-01-06 13:28:16 +10:00
Samweli
21c28bc9dc addressed review comments 2021-01-06 13:28:16 +10:00
Samweli
4513033c05 returned setFrameDuration and frameDuration functions in the temporal navigation object 2021-01-06 13:28:16 +10:00
Daniel Minor
8aac2388c2 Use time step when exporting animation 2021-01-06 13:28:16 +10:00
Daniel Minor
f2d5d5f4db Address review feedback 2021-01-06 13:28:16 +10:00
Daniel Minor
d07cb9720f Rerun sipify after documentation fix 2021-01-06 13:28:16 +10:00
Daniel Minor
9da580cb3d Pass time step and time step unit into QgsTemporalNavigationObject
Currently, we pass the frame duration as a QgsInterval and use the average
duration of a month or year during the animation, for instance, 30 days
rather than a month. This makes it impossible to have an animation that
displays on a particular day each month, as the day in the next month will
change depending on the number of days in the previous month.

This changes QgsTemporalNavigationObject to take the time step and time
step unit as separate arguments. The settings in
QgsTemporalUtils::exportAnimation are left unchanged, because in this case
the user interface is already set up to use an interval.

If the time step has a fractional value, the frame duration is calculated
using a QgsInterval as before. If it has an integer value, the calculation
uses QDateTime to advance by the specified time step instead. So a value of
1.5 months results in a frame duration of 45 days, but a value of 1 month
will result in a duration that depends on the length of the current month.

Fixes #37829.
2021-01-06 13:28:16 +10:00
Nyall Dawson
3ca2137f82 Improve QgsSvgCache documentation, add note about origin of QPictures
returned by svgAsPicture
2021-01-06 09:02:53 +10:00
Nyall Dawson
bb05c3bcfb Allow plugins to set control image path for QgsRenderChecker, so that
they can reuse this class for plugin specific tests
2021-01-06 04:44:59 +10:00
Nyall Dawson
b740bf201a [processing] Fix exception when calling "Select from Files" in batch mode
on a file parameter

Fixes #40705
2021-01-05 08:32:10 +10:00
Nyall Dawson
923af4e833 Older sip versions DO require custom conversion code! 2021-01-04 13:05:54 +01:00
Nyall Dawson
30084f61a8 Fix identify tool not finding points when using a single point click
and map crs != layer crs
2021-01-04 13:05:54 +01:00
Nyall Dawson
c69b80453c No need for custom conversion code when QVariantMap type is returned 2021-01-04 13:05:54 +01:00
Nyall Dawson
8f63af56a9 Use QVariantMap instead of QMap<QString, QVariant> 2021-01-04 13:05:54 +01:00
Nyall Dawson
72065310f5 Dox++ 2021-01-04 13:52:18 +10:00
Nyall Dawson
16c4bead0c Fix dox warning 2021-01-04 13:52:18 +10:00
Nyall Dawson
7fba697bf3 [FEATURE] New "Merged feature" renderer for polygon and line layers
This renderer merges (or unions/dissolves) the line or polygon features
from a layer prior to rendering them. It's useful for rendering
a polygon layer with overlapping features as one single "coverage" feature,
or a line layer consisting of many smaller component line features
using a regularly spaced marker line or similar.

Internally, this just moves the guts of the existing inverted polygons
renderer to a new base class, as that renderer already had an option
to merge features prior to rendering. Basically it just exposes a new
renderer to users which is the inverted polygon renderer without
the inversion step!
2021-01-04 13:52:18 +10:00
Belgacem
8c72321509 sipify identify function in dataprovider 2021-01-04 10:20:04 +10:00
Belgacem
72d9eeeb0a remove SIP_SKIP and qDebug() 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
8ec26000b4 remove layer and elevation properties 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
ef9d2727a6 make single click identify work 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
839636635b add docs 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
6b7be9c909 fix spelling 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
8178add788 Address Nyall suggestions 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
9358c9bd3e change to variant and remove QgsPointCloudIdentifyResults 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
2d274af355 Add classified renderer filtering behaviour 2021-01-04 10:20:04 +10:00
Denis Rouzaud
0cae2bea6a add missing doxymentation 2021-01-03 20:33:27 +01:00
Denis Rouzaud
eb46defa6c fix bindings 2021-01-03 20:16:56 +01:00
Denis Rouzaud
2cc632ee5d follow up QVariant 2021-01-03 20:16:56 +01:00
Denis Rouzaud
f77bb217e2 use QVariantMap instead of QgsStringMap for symbol layer properties 2021-01-03 20:16:56 +01:00
Harrissou Sant-anna
a1ee2ffc96 Fix typo 2021-01-02 08:06:13 +10:00