6804 Commits

Author SHA1 Message Date
Matthias Kuhn
38673f5a7f
Merge pull request #36200 from olivierdalang/self_snap
[feature] Snapping also snaps to the currently digitised feature
2020-05-26 14:54:26 +02:00
olivierdalang
47fdd4b4d1 [selfsnap] apply pr review 2020-05-26 11:15:13 +02:00
Ivan Ivanov
563ab0330f Fix: make "Part" struct dependent definitions private 2020-05-26 11:06:13 +10:00
Ivan Ivanov
899d3febad [Symbology][Feature] Allow centroid fill markers to be clipped within current polygon or polygon part 2020-05-26 11:06:13 +10:00
Andrea Giudiceandrea
5075e4433b Fix QgsGeometry constParts() example code
it wrongly refers to parts() instead of constParts()
2020-05-26 06:54:23 +10:00
Nyall Dawson
7e8d27e657 Make API a little more future-proof 2020-05-25 13:37:34 +10:00
Alessandro Pasotti
5aea8ed2b7
Merge pull request #36620 from elpaso/bugfix-gh36583-change-attr-values
Bugfix gh36583 change attr values
2020-05-22 08:11:16 +02:00
Nyall Dawson
93648dd552 Add Python repr for QgsVertexId 2020-05-22 15:32:44 +10:00
olivierdalang
66ebe34004 [feature][selfsnap] add snapping to currently digitized feature for capture tool 2020-05-21 21:58:18 +02:00
Alessandro Pasotti
25d3052fa0 Sipify 2020-05-21 15:50:01 +02:00
nirvn
de799721aa Map decoration cleanup:
- code simplification (moving displayName() to the core class
prevents us having to create lists of DecorationItem alongside
lists of MapDecoration
- Proper translation support for decoration names
2020-05-21 09:05:28 +10:00
vcloarec
267af1e7fb temporal match methods 2020-05-21 05:54:24 +10:00
Nyall Dawson
ef97e8c6fc [symbology] When rendering features, split the geometry fetching
and preparation stage from the symbol layer rendering stage, and
ensure that QgsSymbolLayer::startFeatureRender and ::stopFeatureRender
is correctly called in the right sequence when rendering multi-layer
symbols

This fixes issues with symbol layers which rely on startFeatureRender
and stopFeatureRender to correctly render, e.g. the Random Marker Fill
symbol layer.

Before this fix, the logic looked like:

- for every symbol layer in the symbol, call startFeatureRender
- for each part in polygon, prepare the part geometry and then render each symbol layer
- for every symbol layer in the symbol, call stopFeatureRender

The issue with this approach is that symbol layers which defer
rendering to the stopFeatureRender stage are always rendered
after ALL other symbol layers in the symbol, regardless of the actual
order of the symbol layers. Ultimately this causes Random Marker Fill
layers to always render on the top of symbols.

The new logic is:
- for each part in polygon, prepare the geometry and store the result
- for each symbol layer in the symbol:
   - call startFeatureRender
   - render the layer using each of the previously prepared parts
   - call stopFeatureRender

This results in correct stacking of the random marker fill in multi
layer symbols, because the stopFeatureRender call is correctly called
before the next layer's startFeatureRender and renderPolygon calls

Also, use QVector instead of QList for rings for improved efficiency
2020-05-20 17:09:48 +10:00
Harrissou Sant-anna
ea4f2bbfb9 Making lists in PyQGIS doc look better
and fix some wording
2020-05-20 16:39:42 +10:00
Denis Rouzaud
cc19fa1d13
Merge pull request #36421 from 3nids/basemap_path
Registry for localized data paths
2020-05-19 21:27:51 +02:00
uclaros
24cda403da why u no sipify? 2020-05-20 05:01:20 +10:00
Nyall Dawson
0acb7fcc29 Add API to skip identification of CRS created from proj strings
The identification can be time consuming, so in the rare cases that
we are SURE that the definition doesn't correspond to a known or
user CRS, we can optionally skip it to save some time.
2020-05-20 04:55:46 +10:00
Nyall Dawson
79f8fd9892 Move reponsibility for saving/restoring temporal properties
to QgsMapLayer::read/writeCommonStyle

Correctly stores these settings in QML files and when duplicating
layers

Fixes #36531, fixes #36530
2020-05-20 03:47:59 +10:00
Denis Rouzaud
1affb0c2d3 remove private constructor 2020-05-19 14:25:01 +02:00
Denis Rouzaud
5d892e78fc remove destructor 2020-05-19 14:21:56 +02:00
Denis Rouzaud
b67f6bf2d9 rename full/relative to global/localized 2020-05-19 14:21:56 +02:00
Denis Rouzaud
360827ade0 rename QgsBasemapPathRegistry to QgsLocalizedDataPathRegistry 2020-05-19 14:21:55 +02:00
Denis Rouzaud
74c2ccc319 address review 2020-05-19 14:21:55 +02:00
Denis Rouzaud
75a991c09b add the registry to QgsApplication 2020-05-19 14:21:03 +02:00
Denis Rouzaud
b1920bb287 introduce QgsBasemapPathRegistry to hold a list of paths where basemaps can be located 2020-05-19 14:20:04 +02:00
Nyall Dawson
82c298a703 Show startup profile timings in developer/debugging tools panel
Instead of hiding this information on the console, let's expose it
to users. QGIS startup times have been an ongoing issue for a number
of years, so let's help provide users with some tools to help
track down what's causing these (*hint* it's probably a plugin *hint*)
2020-05-19 04:35:34 +10:00
Nyall Dawson
a913a6aa5a Create RAII QgsScopedRuntimeProfile class and Python context manager
to ease logging of runtime profiles.

Now it's possible to do:

    with QgsRuntimeProfiler.profile('My operation'):
      # do something

to automatically handle everything required to log the operation runtime
2020-05-19 04:35:34 +10:00
Nyall Dawson
1b4dd484bf Improve API for QgsRuntimeProfiler
Make it easier to nest profiled calls by removing the concept of groups,
and instead allow any profiled operation to have log child operation
runtimes as well as its overall runtime.
2020-05-19 04:35:34 +10:00
Nyall Dawson
6e7113024f [layouts][api] Expose to public API the option to create separate
files for each logical layer in a layout

The backend for this was previously used only when creating a GeoPDF
export, where we create an individual PDF per layout logical layer
which are then composited by GDAL.

By publicly exposing this functionality via the QgsLayoutExporter API
we allow for plugins which can export layouts to seperate logical
PDF files, allowing for other (non-GDAL) tools to be used to later
composite the layers (e.g. Adobe Illustrator (which stupidly cannot
handle multi-layer single PDF files!))

Sponsored by SMEC/SJ
2020-05-19 04:33:48 +10:00
nirvn
de918fde53 Fix tests 2020-05-18 14:34:45 +07:00
Nyall Dawson
2258e24f8c Fix dox test 2020-05-18 11:42:25 +07:00
Nyall Dawson
09fda8d285 Tweak API for QgsTemporalUtils::exportAnimation
Make it a bit more future-proof
2020-05-18 11:42:25 +07:00
Martin Dobias
68bbf46ebb Add QgsRasterDataProvider::transformCoordinates()
This is useful when client needs to find out image space coordinates of a point
in map layer coordinates or vice versa. For warped VRT rasters this can't be
simply done by using geotransform matrix because the transform may be more complex.

This may be also useful functionality for identify tool to show source raster
image coordinates.
2020-05-18 09:20:32 +10:00
Matthias Kuhn
bf485ec59a
Merge pull request #36427 from signedav/ressource_expression
[Server] Expression override for online resource in service capabilities
2020-05-15 15:51:00 +02:00
Matthias Kuhn
0617e52f19
Merge pull request #35875 from olivierdalang/tracing_curves_prototype
[feature] Curved geometries support for trace tool
2020-05-15 08:57:06 +02:00
nirvn
ba5b4166da [FEATURE][temporal] Add off and fixed range modes to temporal navigation 2020-05-15 13:47:02 +07:00
Nyall Dawson
db1062cdad [FEATURE][temporal] Add ability to export animation frames
Allows exporting of temporal animation frames to successive images,
for later stitching together in an external application.

Users have precise control over the image size and map extent.
2020-05-15 16:10:53 +10:00
David Signer
550ee2c0e0 dataDefinedServerProperties for the overrides of user defined server variables (currently only WMSOnlineResource) as QgsPropertyCollection alongside the ProjectProperties 2020-05-15 07:09:52 +02:00
Martin Dobias
5d59048387 [vector tile] Add basic GUI support for labeling configuration
This adds a new tab in the layer styling dock widget for vector tile layers.

The new QgsVectorTileBasicLabelingWidget class is based on the code used for QgsVectorTileBasicRendererWidget
2020-05-14 21:14:27 +02:00
olivierdalang
68582a6e84 [tracing curves] experimental notice 2020-05-14 16:12:29 +02:00
Matthias Kuhn
262568e6fb
Merge pull request #36285 from signedav/delete_cascade
Delete cascade on composition relations
2020-05-14 15:35:44 +02:00
David Signer
b9348302c4 use reference for fids in deleteFeatures and ensure that they exist until the end in qgsrelationeditorwidget 2020-05-14 10:40:00 +02:00
Vincent Cloarec
838faf8a3f
[MESH][FEATURE] use only specified dataset group (#36334)
[MESH][FEATURE] Allow to select only specific subset of dataset groups in mesh layer tree 

This could be done in the mesh layer properties dialog in the source tab.
A new tree view displays all the available dataset groups from the data provider. The dataset groups can be checked/unckecked and renamed.
This widget provides also buttons to load extra dataset group from files, to expand/collpase the tree, to check/unchek all items and to reset to default from the provider (for now, only the original name).
Then only the checked dataset group will be displayed in the active dataset widget in renderer settings.
2020-05-14 09:56:48 +02:00
David Signer
7c0d3b5829 const of QgsProperty and some styling 2020-05-14 09:48:41 +02:00
David Signer
66a5dbf470 remove paragraph 2020-05-14 09:37:30 +02:00
Alessandro Pasotti
1135941eca
Merge pull request #36399 from elpaso/bugfix-gh34813-osm-tiles
Fix xyx OSM tiles too many downloads
2020-05-14 07:42:34 +02:00
David Signer
3ea7b28aea project in the DeleteContext 2020-05-13 22:44:42 +02:00
David Signer
0e4b6b8cad WMSOnlineResource can be defined by an expression. This means it's stored as a QgsProperty.
Functions to read and write QgsProperty.
2020-05-13 19:39:31 +02:00
Paul Blottiere
dee58822af
Merge pull request #36370 from pblottiere/legend_json
Update the API to export a legend in JSON
2020-05-13 15:13:43 +02:00
Alessandro Pasotti
459bc53327 Re-use RenderPreviewJob flag to for Prefetch 2020-05-13 14:05:33 +02:00