16466 Commits

Author SHA1 Message Date
Mathieu Pellerin
a84383379b Add test coverage 2025-01-24 10:24:37 +07:00
Martin Dobias
0a54e009b0 Add some unit tests + fix signals on rollback/commit 2025-01-23 21:04:55 +01:00
pre-commit-ci[bot]
348682ae0a [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-23 13:23:27 +00:00
Alessandro Pasotti
b1f44af69f [server][wms] GFI: fix sub-pixel tolerance
Fix #59818
2025-01-23 14:19:33 +01:00
pre-commit-ci[bot]
fd67cd11ec [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-23 14:56:31 +07:00
Mathieu Pellerin
8fee42d992 [gui] Insure modified attribute form properties are stored when switching from one field to another (fixes #60181) 2025-01-23 14:56:31 +07:00
Alessandro Pasotti
510ef31d48
Merge pull request #60209 from elpaso/bugfix-gh56993-query-layers-semicolon
Fix query layers from SQL window trailing semicolon
2025-01-23 08:36:18 +01:00
Alessandro Pasotti
4fe8c6268c
Merge pull request #60198 from elpaso/fix-transactional-field-editing-with-gdal
[OGR] Fix transactional editing for GPKG/SQLite
2025-01-22 18:50:21 +01:00
pre-commit-ci[bot]
17d6474549 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-22 09:43:18 +00:00
Alessandro Pasotti
1de194aa14 Fix query layers from SQL window trailing semicolon
Fix #56993
2025-01-22 10:17:54 +01:00
Even Rouault
ef0dd0355e Vector driver lists (open/save): add .gpkg.zip extension
Fixes #59959
2025-01-22 07:16:47 +01:00
pre-commit-ci[bot]
eaf5e00dd6 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-21 11:48:35 +00:00
Alessandro Pasotti
f2f9d3a931 [OGR] Fix transactional editing for GPKG/SQLite
Tell the provider to reload the fields after a rollback
and add some checks to verify if after the rollback
the provider still needs to update the field.

Followup https://github.com/OSGeo/gdal/pull/11695
Followup https://github.com/qgis/QGIS/pull/59797
2025-01-21 12:40:53 +01:00
Marco Hugentobler
a3b72943b6 Update mask image 2025-01-21 10:22:53 +01:00
Alessandro Pasotti
f0d3ce809b
Merge pull request #60191 from rouault/fix_60055
WFS provider: implement geometryColumnName()
2025-01-21 10:14:11 +01:00
Thomas JANVIER
597b74638f 3d: Use absolute clamping for 3d data by default
When providing a project DTM/DEM, the default behavior for vector
feature with a z-component is to offset the $z coordinates from the
terrain elevation model in the elevation profile view. However, the
geometry coordinates are supposed to be absolute.

So it makes more sense, to only use the $z coordinate by default in
that case.

The different unit tests are updated accordingly.

Closes: https://github.com/qgis/QGIS/issues/59757
2025-01-21 10:06:29 +01:00
Thomas JANVIER
6bb0c9322e qgsvectorlayerelevationproperties: Use absolute clamping for 3d data
When providing a project DTM/DEM, the default behavior for vector
feature with a z-component is to offset the $z coordinates from the
terrain elevation model in the elevation profile view. However, the
geometry coordinates are supposed to be absolute.

So it makes more sense, to only use the $z coordinate by default in
that case.

Related: https://github.com/qgis/QGIS/issues/59757
2025-01-21 10:06:29 +01:00
Even Rouault
8382e459f4
WFS provider: implement geometryColumnName()
Fixes #60055
2025-01-21 00:35:58 +01:00
Withalion
eb6154c107 Add 3D VPC unit tests, fix VPC test data 2025-01-17 22:51:46 +01:00
Withalion
4958dffb22 Encapsulate merged changes between Master and 2D overview
This commit contains some changes created during rebasing onto current master, however they are insifignant and should be ignored, as they will match the changes already in master.
2025-01-17 22:51:46 +01:00
Stefanos Natsis
4274ad8842
Add undo command classes for point cloud editing (#60111)
* Added undo command for point cloud editing change attribute

* review fixes
2025-01-17 18:01:36 +02:00
Marco Hugentobler
3739adfcfd Added mask image for test 2025-01-17 15:22:21 +01:00
Jan Caha
023015e54b
Postgresql save raster style db (#59938)
* split QgsPostgresSharedData and QgsPostgresUtils to separate file, to allow their use in qgspostgresrasterprovider

* add rasterColumnName

* move tableExists and columnExists to QgsPostgresUtils, add createStylesTable there

* functions to create, load and save styles in DB

* rename variable with typo

* fix function

* drop function that is not needed

* avoid clang warning

* use uri geometryColumn() instead of custom function

* fix docstring
2025-01-17 14:17:51 +02:00
pre-commit-ci[bot]
a4d1154239 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-17 09:54:20 +00:00
Jan Caha
5fc5503f42
Mesh Layer Rendering with Updated Canvas Fix (#59987)
* cannot return min max if triangular mesh does not exist

* only create QgsRenderedLayerStatistics if values changed to prevent loop in rendering

* this was set from two places, remove it from here

* Revert "this was set from two places, remove it from here"

This reverts commit 5d8fbcc321330f1054e5e07cad2ee70c0f9aa661.

* add test case for not existing triangular mesh

* only emit signals here, everything else is handled in renderer creation (avoids double rendering of the mesh layer)

* while updating the widget the component signals need to be blocked

* do not update render here

* add const

* 3D map should not update layer statistics

* update renderer settings from here,  signals are emitted from mesh layer

* update test to simulate main canvas extent update

* do rendering in single pass

* emit renderer changed and remove emit of legendChanged
2025-01-17 11:45:33 +02:00
Marco Hugentobler
a66b81a1d9 Unit test and control image 2025-01-17 10:36:23 +01:00
Marco Hugentobler
323f0bc6f8 Fix skipping empty highlight label settings in GetPrint and GetMap 2025-01-17 09:15:55 +01:00
pre-commit-ci[bot]
d5e7abc17c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-16 14:59:05 +01:00
Martin Dobias
377df63098 Point cloud editing: write COPC when committing changes 2025-01-16 14:59:05 +01:00
Denis Rouzaud
f69e767b20
add test for QgsMapToolCapture without active layer with snapping 2025-01-16 08:36:18 +01:00
Martin Dobias
22702aa689 review and test fixes 2025-01-15 10:43:30 +01:00
Martin Dobias
4c654c88fd Simplify code for camera zoom using a pivot point 2025-01-15 10:43:30 +01:00
Martin Dobias
ef99d51e06 Fix 3D sandbox 2025-01-15 08:04:31 +01:00
Jean Felder
2db1f20af3 qgsvectorlayerelevationproperties: Add support for custom tolerance
This allows to define a custom tolerance. If this tolerance is
enabled, then this tolerance is used instead of the one defined in the
elevation profile widget.

This custom tolerance is enabled and set to 0 by default for Lines and
Polygons. Indeed, most of the time, only want to use the tolerance for
points.
2025-01-13 14:44:19 +01:00
Andrea Giudiceandrea
38ec9efe5e
[WFS] Fix filtering by QGIS expression in order to support "@geometry" (Fix #60094) (#60105)
Fix #60094
2025-01-11 17:23:28 +01:00
uclaros
d989f5981f adjust to use the new QgsPointCloudIndex class 2025-01-10 13:36:09 +01:00
uclaros
3e773e798e Point cloud editing part 1 2025-01-10 13:36:09 +01:00
Alessandro Pasotti
0984ab8d9b
Merge pull request #60058 from ptitjano/wms-scale-denominator-format
qgswmsgetcapabilities: Use float format for min/max scale parameters
2025-01-09 09:39:13 +01:00
Denis Rouzaud
920cc5d5c0
fix nodata value in virtual raster layers (#60084) 2025-01-09 08:30:35 +01:00
Jean Felder
183d1cee3e
qgswmsgetcapabilities: Use float format for min/max scale parameters
`MinScaleDenominator` and `MaxScaleDenominator` string are created
from a `QString::number` call with the default parameters. In that
case, the most concise format is used. This can result in the
scientific notation being used for very big or small numbers.

With this change, these parameters are now always displayed in a float
format. Reasons for this change:
- this might prevent a loss of precision for very small or big numbers
- this output is not supposed to be human readable so it does not
 matter if is not concise
- this is the logic used by a lot of WMS servers, for example arcgis
 server
2025-01-08 17:37:05 +01:00
Jan Caha
67bc6af0d5
Mesh editing delaunay refinement (#59560)
* add function delaunayConditionForEdge()

* undo command with delaunay refinement

* add delaunay refinement action

* add menu to button

* sipify

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix merge issues

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* access widget in test to directly change selected  value

* add tests

* fix docstring

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* remove pass by reference

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* pass by reference

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>

* fix label, add tooltip

* avoid brute forcing through faces, use review suggestion instead

* add pass by reference

* sipify

* remove leftover

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Stefanos Natsis <uclaros@gmail.com>
2025-01-08 15:08:11 +02:00
Withalion
9f773aa96b Fix to more descriptive test data naming 2025-01-08 12:40:34 +01:00
Withalion
ad1475e735 Add unit tests & fix some review issues 2025-01-08 12:40:34 +01:00
Jacky Volpes
c45551b26e
Fix boolean filtering in QGIS expressions with WFS layers (#60075)
PR #56369 introduced a regression for WFS layers, because stopping using
'false' and 'true' strings to compare with boolean fields in qgis
expressions, and forcing to use the keywords false and true, it
conflicted with the internal SQLite cache database of WFS layers.

This PR fixes it by storing internal boolean in SQLite cache database in
the right form compatible with QGIS internal functions (i.e. storing '0'
and '1' strings instead of 'true' and 'false' strings).
2025-01-07 20:20:04 +01:00
David Koňařík
4d86676c35 Fix SIP build errors by using /NoTypeName/
The typedef is only present in the .sip file, but without this
annotation SIP assumes it also exists in QGIS headers. This didn't
completely break the build, since we concatenate multiple SIP headers
into larger files, so the typedefs from one part "fixed" another. Run
sip-build without --concatenate to see the issue clearly.

This fix is currently sadly not fully effective due to a SIP bug:
https://github.com/Python-SIP/sip/issues/66
2025-01-06 21:31:40 +01:00
David Koňařík
b49f5ccd38 Expose QgsPointCloudIndex to Python 2025-01-06 21:31:40 +01:00
David Koňařík
320ee6b374 Split point cloud index into implementation & wrapper 2025-01-06 21:31:40 +01:00
pre-commit-ci[bot]
a11c18fc5c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-06 09:17:22 +01:00
Jacky Volpes
99afcf5c9f fix(testprocessingfixgeometry): removed unneeded temporary containers and auto keywords 2025-01-06 09:17:22 +01:00
Jacky Volpes
6c8ed25629 Processing: Add Fix Geometry algorithm and test: Missing Vertex
Porting missing vertex fix from geometry checker to processings
2025-01-06 09:17:22 +01:00