22794 Commits

Author SHA1 Message Date
Nyall Dawson
56e8206f21 Hold GIL when calling cheap processing methods 2023-12-07 16:21:31 +10:00
Nyall Dawson
5be709361b Don't initialize project provider from qgis_process -- project
models can't be called from qgis_process anyway
2023-12-07 16:20:25 +10:00
Nyall Dawson
cb5fbaf026 Avoid double loading model algorithms when starting provider 2023-12-07 16:20:25 +10:00
Nyall Dawson
e4e63ce5f9 [processing] When running qgis_process commands, defer the model
provider loading until after ALL plugins have been loaded

This avoids the model provider from refreshing all the model
algorithms multiple times, once for each non-default plugin installed
which implements a processing provider.
2023-12-07 16:20:25 +10:00
Nyall Dawson
350d2e326a Add method to remove manually inserted features from QgsSpatialIndex 2023-12-07 13:31:51 +10:00
Nyall Dawson
6cf940c20d Update tests to newer methods 2023-12-06 06:39:49 +10:00
Loïc Bartoletti
4a353d1a12 Marks deprecated methods in QgsGeometryUtils redundant with QgsGeometryUtilsBase 2023-12-01 11:17:11 +01:00
Loïc Bartoletti
8025f72fa7 QgsGeometryUtils_base: add this class available in Python binding 2023-12-01 11:17:11 +01:00
Loïc Bartoletti
ac3e73e25c [refacto] QgsGeometryUtils: move base methods to a dedicated class
Refactor QgsGeometryUtils to separate "basic" methods from those involving QGIS
composite types.
By "basic" methods, we refer to those that only require doubles or (qgs)vectors.
These methods are now encapsulated in their dedicated classes and can be called
from anywhere to prevent duplications in certain methods (in particular Cartesian distance calculation).

To maintain API compatibility, all methods are also accessible in QgsGeometryUtils
which acts as a pass-through to QgsGeometryUtilsBase.
2023-12-01 11:17:11 +01:00
Loïc Bartoletti
3ab676e603 QgsGeometryUtils: move 2D distance code into QgsGeometryUtils.h and uses it 2023-12-01 11:17:11 +01:00
Alexander Bruy
8efd68e117 add test 2023-12-01 08:35:08 +10:00
Nyall Dawson
fe2df1441f Move playback controller buttons to reusable widget
Create QgsPlaybackControllerWidget as reusable
play/pause/rewind/next/... button bar
2023-11-30 13:54:02 +10:00
Nyall Dawson
e891ac8fec [feature] Add "movie" mode to temporal controller
This mode is purely for animated map movies -- the user can set
the total number of frames, and the animation will progress
frame by frame for that number of frames, advancing the current
map settings frame at each step (also the @frame_number expression
variable).

No time based filtering of data is performed when in this mode.
2023-11-30 13:54:02 +10:00
Nyall Dawson
60057e508c Move temporal enums to Qgis, promote to enum class 2023-11-30 13:54:02 +10:00
Alessandro Pasotti
fae9f858fe
Merge pull request #55302 from tomass/master
WMS service: option to skip name attribute for groups in wms capabilities document
2023-11-28 08:27:31 +01:00
Andrea Giudiceandrea
746345510c Fix Qgis.SettingsOrigin enum values description 2023-11-28 04:33:47 +10:00
Nyall Dawson
38557ab991 Lint 2023-11-27 14:23:18 +10:00
Nyall Dawson
74dfe786e9 Include details of failing render test callers from Python tests 2023-11-27 14:23:18 +10:00
Nyall Dawson
12556fa502 Expose method to Python 2023-11-27 14:23:18 +10:00
Nyall Dawson
58e2ddb7e5 Drop OTB Processing provider
As discussed in https://lists.osgeo.org/pipermail/qgis-developer/2023-November/066221.html

This plugin needs to be ported to a 3rd party plugin by a motivated maintainer.
2023-11-27 10:09:16 +10:00
Nyall Dawson
4567d97687 Apply suggestions from code review 2023-11-27 06:14:51 +10:00
Patrice Pineault
c28246e0cc Set input combo box to active layer when importing vector data. Fixes #55168 2023-11-27 06:14:51 +10:00
Nyall Dawson
13387d27fe Include links to reference images and source code locations in
markdown report
2023-11-26 17:18:27 +10:00
Nyall Dawson
ee94913fbc Add macros to wrap calls to imageCheck/layoutCheck in c++ tests
So that the source file and line numbers are available for
inclusion in the generated test reports
2023-11-26 17:18:27 +10:00
tomass
c504439ebf Merge remote-tracking branch 'upstream/master' 2023-11-25 18:46:16 +02:00
Loïc Bartoletti
5ac90ce54c
[OGC] Polygon: fix rings order
[OGC] Polygon: fix rings order
2023-11-25 05:45:01 +01:00
Mathieu Pellerin
0ce0b78295
Merge pull request #55146 from nirvn/qml_responsive
[editor widgets] Fix QML editor widget not responsive to attribute changes
2023-11-25 07:35:39 +07:00
Nyall Dawson
98c19b38ac Cleanup qgis.utils.home_plugin_path 2023-11-25 07:40:02 +10:00
Nyall Dawson
7925d7261e Cleanup files 2023-11-25 07:40:02 +10:00
Nyall Dawson
13bc09e706 Remove redundant "import qgis" lines from python files
These were only needed way back in the early days of qgis 3.0
transition, now they have no effect
2023-11-25 07:40:02 +10:00
Loïc Bartoletti
361fbded94 QgsGeometry: use NoOrientation enum and fix some possible nullptr uses 2023-11-24 09:18:02 +00:00
Loïc Bartoletti
0f27fd3b1e QgsGeometry: add methods to return orientation 2023-11-24 07:43:24 +00:00
DelazJ
406e1d6b9a Harmonize user facing labels for GDAL resampling methods 2023-11-24 08:20:32 +10:00
dubravat
e1ba6f5272 Mistype in QgsGeometryUtils::segmentSide description was fixed 2023-11-23 08:28:20 +10:00
Martin Dobias
fbc2082b7e Nyall's review, spelling fixes, clang tidy fixes 2023-11-23 06:36:31 +10:00
Martin Dobias
fdc4ee7994 Add "Render as a surface" option to 2D point cloud renderers
When enabled, we will do Delaunay triangulation of the points in the current
map view, and then render triangles instead of points. For each point we keep
its color for interpolation in the triangle.

Global map shading is also supported with the new option, when enabled, we also
keep elevation of each point, and then rasterize triangles with interpolated
elevations to the provided elevation map.

When "Render as a surface" is enabled, drawing order is ignored, because points
do not obscure other points anymore - all input points participate in the triangulation.

There is also an option to filter large triangles (given by the maximum length of
edge of a triangle), which is useful when one wants to see the actual holes in the data.
Compared to the implementation for 3D rendering, the 2D rendering only provides
filtering based on horizontal length of triangles. Filtering based on triangle size
on the vertical axis seems irrelevant because the 2D view is always from the top.
2023-11-23 06:36:31 +10:00
Nyall Dawson
e494d1a335 Generate markdown report from Python tests too 2023-11-22 05:44:58 +10:00
Matthias Kuhn
b762001968
Merge pull request #55131 from gacarrillor/fix_none_referenced_columns
Avoid None as value for referenced_columns in qgsfunction.py docs
2023-11-19 07:04:00 +01:00
Germap
43511aced2
Update qgsfunction.py, homogenize referenced_columns subsection 2023-11-18 17:53:29 -05:00
Germap
e69f2bf0f8
Update python/core/additions/qgsfunction.py
Avoid using 'slightly' since this could be a considerable performance improvement depending on the provider.

Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
2023-11-17 17:36:23 -05:00
bdm-oslandia
8d1155dd00 feat(QgsVectorDataProvider): add support for sourceExtent3D function 2023-11-16 14:59:16 +01:00
bdm-oslandia
d3604b5c0b feat(QgsDataProvider): handle 3D extent/boundingbox 2023-11-16 14:59:16 +01:00
bdm-oslandia
365cf6aa88 fix(QgsVectorDataProvider): add default class members to support QgsDataProviderElevationProperties 2023-11-16 14:59:16 +01:00
bdm-oslandia
fa2fe8f776 fix(QgsDataProvider): migrate members from QgsRasterDataProviderElevationProperties to parent class
This allows provider classes to have a useable elevation properties class, for example to know
if the provided data is 3D or 2D. This will be useful to compute 3D/2D extent.
2023-11-16 14:59:16 +01:00
bdm-oslandia
f822021e95 feat(qgsvectorlayer): add 3D extent handling 2023-11-16 14:58:40 +01:00
bdm-oslandia
21f75ca051 feat(QgsFeatureSource): add sourceExtent3D function 2023-11-16 14:05:52 +01:00
bdm-oslandia
576d810875 feat(QgsMapLayer): add 3D extent handling 2023-11-16 14:05:52 +01:00
bdm-oslandia
76425f6945 feat(qgsxmlutils): add read/write QgsBox3D 2023-11-16 14:05:52 +01:00
tomass
1180128b72 Option to skip name attribute for groups in wms capabilities document 2023-11-15 19:17:17 +02:00
Nyall Dawson
a54fbf092d Add optimised methods to convert GeoJSON geometries to QgsGeometry
Allows direct construction of geometries from raw json objects,
instead of requiring translation through another library's geometry
structures.
2023-11-15 05:24:17 +10:00