20257 Commits

Author SHA1 Message Date
Nyall Dawson
ec41cb59b4 Don't expose an outline subsymbol for SVG fill symbol layers
This is inconsistent with all other fill types, which don't
have a special outline subsymbol. Users should be creating
outline layers when they want an outline instead.

When reading an SVG fill symbol layer from XML, automatically
upgrade any outline subsymbol which is used by the fill to
be separate symbol layers for the parent fill symbol so
that existing symbols will appear as designed in older QGIS
versions.

Fixes qgis#14103
2021-10-23 23:50:52 +10:00
Nyall Dawson
40279cb996 Set new Qgis::RenderContextFlag::RenderingSubSymbol flag on render contexts
whenever a subsymbol component of a parent symbol is being rendered

This flag allows symbol layers to refine their behaviour based on whether
they are a subsymbol or not.
2021-10-23 20:06:32 +10:00
Nyall Dawson
757c69e1ef [feature][symbology] Add random point offset for point pattern fills
This optional setting allows each point to be randomly shifted up
to the specified maximum distance in the x/y directions. Maximum
offset can be set in mm, points, map units, etc OR "percentage"
(which is percentage of the pattern width/height)

An optional random number seed can be set to avoid patterns
jumping around between map refreshes.

Data defined overrides are also supported.

Sponsored by North Road, thanks to SLYR
2021-10-23 19:05:33 +10:00
nirvn
6a37ee72fa [FEATURE][symbology] Add coordinate reference mode (i.e. pattern alignment) to line pattern and point pattern symbol layer types 2021-10-22 22:45:33 -07:00
Nyall Dawson
b56e86181c [feature][symbology] Add option to control marker clipping for
point pattern fill

A new option exposes the ability to clip markers in the fill by:

- "Clip to shape": default behaviour, same as previous versions. Markers
are clipped so that only the portions inside the polygon are visible
- "Marker centroid within shape": only markers where the center of
the marker falls inside the polygon are drawn, but these markers
won't be clipped to the outside of the polygon
- "Marker Completely Within Shape": only markers which fall
completely within the polygon are shown
- "No clipping": any marker which intersects at all with the polygon
will be completely rendered

The clipping mode can be overridden via a data driven expression if
desired.

Sponsored by North Road, thanks to SLYR

Fixes #37825
2021-10-23 12:58:13 +10:00
Nyall Dawson
7c03c9ec4a Calling QgsGeometry.asPoint on a multipoint with a single point part
should be allowed
2021-10-23 05:18:09 +10:00
Nyall Dawson
430c5b24b0 [api] Add methods to create triangular, square, and sine-like waves
along a geometry's boundaries

also includes variations on these which allow for randomized
triangle/square/sine-like waves, with amplitude and wavelength
randomly generated using a specified range
2021-10-23 05:17:07 +10:00
Nyall Dawson
6453d5f35a Condense duplicate enums 2021-10-23 05:16:41 +10:00
Nyall Dawson
9752abe10b Fix python startup 2021-10-23 05:16:41 +10:00
Nyall Dawson
999213f97e Complete documentation for QgsPointPatternFillSymbolLayer 2021-10-23 05:16:41 +10:00
Nyall Dawson
e976479b59 Fix python issue with enum doc 2021-10-23 05:16:41 +10:00
Nyall Dawson
fc0d1869bc Promote some symbol layer enums to enum classes, move to Qgis 2021-10-23 05:16:41 +10:00
jfbourdon
297ee72568 definition annotation 2021-10-22 10:34:13 +10:00
jfbourdon
dfe2638de5 add return value 2021-10-22 10:34:13 +10:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
Harrissou Sant-anna
ffec1cc138
Fix some labels (#45549)
* [needs-docs] Correct name for mesh calculator output

* [needs-docs] Use same label for input layer

as in the "join attributes by location" alg
2021-10-19 08:21:40 +02:00
nirvn
7cc5533f7d [api] Provide a mean to know whether QgsVectorLayerUtils' guessFriendlyIdentifierField function picked a friendly identifier 2021-10-18 22:07:37 -07:00
Alessandro Pasotti
a329b88289 Fix DB manager trigger info dlg (less than)
Fix #45420
2021-10-19 05:37:20 +10:00
Sandro Santilli
27ae2c9516 Avoid re-preparing geos geometry from QgsVectorLayerFeatureIterator
Does so by exposing a referenceGeometryEngine method to
QgsFeatureRequest and copying the engine rather than creating
a new one on each iteration.
2021-10-18 15:26:33 +02:00
Nyall Dawson
a81b872bf4 Add some more SIP downcasts for map tools 2021-10-18 17:07:10 +10:00
Etienne Trimaille
4284beb004 Add API in expression to set help string on a variable 2021-10-16 06:36:15 +10:00
Vincent Cloarec
697f2bc474
Improve robustness of mesh editing (#45497)
* renaming and typo

* QgsMeshEditor:checkConsistency returns error

* change approach for remove vertex filling hole on boundary

* split QgsMeshEditor::removeVertex (with/without filling holes)

* check edited mesh before saving

* send start/save editing message to message bar
2021-10-15 08:43:51 -04:00
Even Rouault
0f3011b5ec
Merge pull request #45174 from elpaso/bugfix-gh45139-geojson-field-order
Fix geojson attr table field order
2021-10-14 16:55:13 +02:00
Loïc Bartoletti
548d59b365
Merge pull request #45194 from nicogodet/fix-vrectify
Fix v.rectify
2021-10-13 08:41:00 +02:00
Nyall Dawson
57fda412fa Further fixes to ensure geometry generator symbol icons are correctly
generated
2021-10-12 17:40:37 +10:00
nirvn
ce49784823 All public now 2021-10-12 16:34:05 +10:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
a6645d9cba fix test + rebase 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
Nyall Dawson
e8bb89855d Update tests 2021-10-12 14:54:26 +10:00
Nyall Dawson
e733b517b3 Split QgsVertexId out to own file, promote type to enum class 2021-10-12 14:54:26 +10:00
Alessandro Pasotti
8cc230d8a0 Add action info to the form d&d panel 2021-10-12 05:31:33 +10:00
Vincent Cloarec
a840cbf98c
fix aggregate functions with mesh virtual dataset group (#45446) 2021-10-11 08:28:11 -04:00
Loïc Bartoletti
18a782f1fb
Merge pull request #45272 from lbartoletti/geometryvalidator_curve_support
[FIX] GeometryValidator init curve support
2021-10-11 12:11:08 +02:00
Vincent Cloarec
d16cced882
fix time handling of mesh layer when gap of reference time (#45456)
fix time handling of mesh layer when gap of reference time
2021-10-11 11:31:08 +02:00
nirvn
7a0fb2acdd [ui] Fix unmet expectation: when navigating the processing toolbox panel via keyboard, hitting return/enter should launch focused algorithm 2021-10-10 23:36:37 -07:00
nirvn
f774de996e [ui] Fix unmet expectation: when navigating the browser panel via keyboard, hitting return/enter should load focused dataset 2021-10-10 23:36:37 -07:00
Nyall Dawson
1f73983725 Expose some useful API from QgsLegendPatchShape 2021-10-11 12:03:13 +10:00
Vincent Cloarec
56b9d808ff
add missing text for mesh editing undo/redo 2021-10-10 13:43:59 -04:00
nirvn
24a61fafb1 [ui][processing] Also allow the enter key to launch the selected algorithm 2021-10-10 04:26:41 -07:00
Alessandro Pasotti
8ba18051e4 Fix landing page after d61df93315e
Handle the messy initial / by making sure the
paths matches are evaluated against a sanitized
URL that always starts with a /
2021-10-08 12:57:59 +02:00
Alessandro Pasotti
2b1a1c1986 Server OGC API handler: make it more robust in path matching 2021-10-08 11:17:48 +02:00
nicogodet
09cfa8ae0a add tests 2021-10-07 08:31:54 +10:00
nicogodet
f6e20c3e0b fix tiny mistakes 2021-10-07 08:31:54 +10:00
vcloarec
99a832ef1e fix null temporal properties 2021-10-05 22:45:47 -04:00
Nyall Dawson
b48d7dcc9f Don't reset mesh layer styling when changing data source for layer
This breaks fixing mesh layer paths when restoring projects with
broken mesh layers -- fixing the path causes the existing style
to be lost.

Fixes #45391
2021-10-05 22:45:47 -04:00
Augustin Trancart
061b810dac Fix behaviour of triggers when logging an existing layer
When adding logging via db manager to an existing layer, all the
time_start of existing features are still null. When we modify one
feature for the first time, the update trigger fires and insert a row
for the past state of the feature. In turn, this fires the INSERT
trigger for this row, and the execution goes inside the `if
NEW.time_start is NULL`, which set the end timestamp to NULL, making the
old row still visible in the _current view.

In other word, the insert trigger makes the assumption that a null start
timestamp means now, which is not true in the case described above.

This commit fixes this assumption by initially setting it to `-infinity`
for existing rows.
2021-10-06 12:00:39 +10:00
PeterPetrik
0150ab8708 fix #41870 force UTF-8 encoding for prj files 2021-10-06 06:10:30 +10:00
Nyall Dawson
d6dae3e16a Add api for map canvas/map tools to retrieve layers by ID, including
layers which have been set for a canvas but which AREN'T part of
QgsProject::instance()

Required to fix test failure in labeling map tools, but ultimately
a necessary piece of API to ensure that map tools aren't so tightly
bound to QgsProject::instance()
2021-10-05 12:21:56 +10:00
Mario Locati
1abf47f73f Fixed the endpoint URL 2021-10-05 10:50:42 +10:00