5998 Commits

Author SHA1 Message Date
Nyall Dawson
db7b9afb6b
Use translated string for password helper
And fix capitalisation of strings
2025-02-05 08:26:32 +10:00
Nyall Dawson
be08c2521b Don't transform 2d bounding boxes when geocentric crs involved
This is meaningless and will give a misleading/useless result,
so raise a descriptive QgsCsException instead.
2025-02-05 06:15:05 +10:00
PatrikSylve
12a2079225
Ensure consistent label positioning by sorting rule based label providers 2025-02-04 11:04:57 +10:00
Nyall Dawson
d4c592e6d0 Move provider-specific credential redaction logic to QgsProviderMetadata
Followup 1907ab3
2025-02-04 08:24:35 +10:00
Even Rouault
1907ab32fe QgsMapLayer::publicSource(): make it redact/remove GDAL credentials
Fixes #60292
2025-02-03 08:05:17 +10:00
Nyall Dawson
8c99b4c39c Remove dead code from PROJ <8.1 2025-01-31 06:55:32 +10:00
Martin Dobias
8511426304 doc and clang tidy fixes 2025-01-30 09:31:35 +10:00
Martin Dobias
a0414c4883 QgsChunkBoundsEntity: use 3D boxes in map coordinates + QgsGeoTransform
Until now, chunk bounds entity used axis-aligned bboxes in world coordinates (floats)
We are switching to bboxes in map coordinates (doubles) and we use
QgsGeoTransform to react correctly when the origin vector changes.
2025-01-30 09:31:35 +10:00
Even Rouault
d5edd0811f webconnections saving as .xml: add a xmlns:x=y attribute when the http-header: prefix is used
Fixes #60242
2025-01-30 08:47:01 +10:00
Mathieu Pellerin
1c85f6a17f Alternative fix that is compatible with offline editing 2025-01-28 13:58:20 +10:00
Mathieu Pellerin
f2289c83f1 [processing] Fix feature iteration against a model (fixes #60131) 2025-01-28 12:06:36 +10:00
Benoit D.-M. - oslandia
7fc95bb0a3 doc: add todo about std::source_location for logMessage
Co-authored-by: Loïc Bartoletti <lbartoletti@users.noreply.github.com>
2025-01-27 14:01:34 +01:00
bdm-oslandia
c89d3f56a1 fix(QgsMessageLog): display real caller data instead of logMessage call to QgsDebugMsgLevel 2025-01-27 14:01:34 +01:00
Martin Dobias
d8f8d13691 address review 2025-01-23 21:04:55 +01:00
Martin Dobias
0a54e009b0 Add some unit tests + fix signals on rollback/commit 2025-01-23 21:04:55 +01:00
Martin Dobias
b94229e024 Only update changed 3D entities when editing point cloud attributes
QgsChunkedEntity gets a capability to update an existing sub-entity for a node
by loading the node again, creating a new 3D entity, and then discarding the old
entity in favor of the new one.

QgsPointCloudLayer gets a new signal - emitted whenever a particular node's
attribute values get changed.

These two are combined for point cloud layer's 3D chunked entity: whenever there
are edits to the point cloud data, instead of doing big hard reload of the whole
point cloud, we only update entities of the few nodes that were modified.
This greatly improves the user experience of point cloud editing (no "flashing"
of the 3D view while loading everything from scratch), and it improves how quickly
the changes can be seen.
2025-01-23 21:04:55 +01: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
1de194aa14 Fix query layers from SQL window trailing semicolon
Fix #56993
2025-01-22 10:17:54 +01: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
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
Julien Cabieces
d2aaa9c6e0
Merge pull request #60130 from Joonalai/fix-topological-slowness
Fix topological slowness with spatial filtering
2025-01-16 17:23:09 +01:00
Denis Rouzaud
185dc1fdb9 enable snapping in georeferenceer 2025-01-16 15:33:15 +01:00
Martin Dobias
377df63098 Point cloud editing: write COPC when committing changes 2025-01-16 14:59:05 +01:00
Joonalai
5cc1d16ca4 Grow search rect based on layer precision 2025-01-16 12:06:19 +02: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
Even Rouault
87b8299686 qgsvectorlayer.h: move a documentation section to the appropriate place
Cf https://lists.osgeo.org/pipermail/qgis-developer/2025-January/067278.html
2025-01-09 15:20:24 +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
2a8cd537fa Fix issues introduced by PointCloudIndex refactor 2025-01-08 12:40:34 +01:00
Withalion
2bed2b7c3c Fix review issues 2025-01-08 12:40:34 +01:00
Withalion
1d3f3bbb21 Remake overview vpc options 2025-01-08 12:40:34 +01:00
Withalion
efa8912b0b Add option to change between VPC overview and extends 2025-01-08 12:40:34 +01:00
Matthias Kuhn
34a5dc6e8d
Merge pull request #60062 from nicogodet/typo-qgsgeometry
Fix small typo in QgsGeometry.constGet() docstring
2025-01-07 00:18:47 +01:00
David Koňařík
5c973b14cc Work around SIP bug 2025-01-06 21:31:40 +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
252ab6ce12 Move QgsPointCloudAccessType to Qgis 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
Nicolas Godet
f549d4c554
typo 2025-01-06 18:45:00 +01:00
Raymond
0706370468 fix typo: 254 -> 255 2024-12-31 13:19:42 +01:00
Nyall Dawson
a3f4b849f1 Support raster labels for resampled values across neighboring pixels 2024-12-18 19:12:29 +10:00
Nyall Dawson
c2d933579d Move resampling method enum to Qgis, promote to enum class 2024-12-18 19:12:29 +10:00
Nyall Dawson
d9d501a3d8 Fix see also link 2024-12-18 19:12:29 +10:00
Nyall Dawson
c33b8b276f Fix documentation 2024-12-18 19:12:29 +10:00
Nyall Dawson
14f625f59f [API] Add framework for raster labeling
Allows raster pixels to be labeled with the value taken from a raster
band.

Labels are registered with the labeling engine, so participate in
label conflict resolution and overlap avoidance

Options include

- Selection of band to take values from
- Using QgsNumericFormat to customise the number format for the labels
- Uses text renderer, so supports buffers, shadows, etc
- Label priority
- Scale dependant visibility
- Optional pixel size dependent visibilty, ie show only when pixels are
> 4mm in size
- Z index control, overlap avoidance mode

Fixes #14408
2024-12-18 19:12:29 +10:00
Nyall Dawson
75c8e3e2c4 Fix memory leaks in classification methods, use unique_ptrs 2024-12-18 13:21:06 +10:00
Harrissou Sant-anna
53e777fd97 Typo fix 2024-12-18 06:17:52 +10:00
Julien Cabieces
0fdb3508a5 api(Deprecated): Remove strong requirement on \deprecated
Because some method (only QgsGeometry::set actually) can be deprecated
only in python, not in C++. But \deprecated triggers the need for Q_DECL_DEPRECATED
2024-12-17 09:06:44 +01:00