5952 Commits

Author SHA1 Message Date
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
Julien Cabieces
ed64834106 api(deprecated): add message to deprecated SIP annotation 2024-12-17 09:06:42 +01:00
Julien Cabieces
398f00bc26 doc(Deprecated): Fix missing \deprecated instruction 2024-12-17 09:05:46 +01:00
Jan Caha
2adaec6825
Mesh Render Extent Settings
This brings to renderer for Mesh Contours option to set renderer Min Max based on extent (specific canvas, changing canvas) in the same way as renderers for Raster Layer.
2024-12-17 12:46:50 +10:00
Nyall Dawson
9f4bb37824 [api] Add QgsVectorDataProvider::geometryColumnName
Allows easy retrieval of the geometry column name from the data
provider, if applicable.

(This was NOT possible to retrieve in a consistent, provider
independant way before)
2024-12-17 05:11:25 +10:00
Damiano Lombardi
3d4d5a2d02 sipyfy 2024-12-16 10:26:01 +10:00
Nyall Dawson
72f07dc851 Fix build 2024-12-15 11:37:53 +10:00
Nyall Dawson
59a76430dc Fix cppcheck errors 2024-12-14 11:09:20 +10:00
Nyall Dawson
e8cbab7034 Add missing transfer annotations 2024-12-13 05:24:22 +10:00
Nyall Dawson
0fff1f16b4 Add QgsStringUtils.containsByWord method
Given a candidate string, returns true if the candidate contains
all the individual words from another string, regardless of their order.
2024-12-12 18:39:46 +10:00
Julien Cabieces
ea95dfafda
Merge pull request #59809 from ptitjano/elevation-profile-raster-load
[elevation Profile] Correcly add a raster layer to an existing elevation profile widget
2024-12-11 15:55:09 +01:00
Jan Caha
254614b393
Mesh layer remove datasetgroup (#59382)
* add removeDatasetGroup() function for mesh data provider and mesh layer

* make dataset group names unique

* fix typo

* add mesh removing to the widget

* fix icon

* add check that added dataset group path is unique to avoid duplicate data and emit message if it is not

* sipify

* fix mistake

* check if uri is correct - just for case

* add tests

* add tests

* fix docstring

* add docstring

* add missing override

* explicitly convert number to string

* update tests to reflect that you cannot add same file as dataset group twice

* fix docstring

* pass by value

* fix docstrings

* const variables

* rename signal

* drop include

* simplify regex

* make test better

* sipify

* add docstring

* fix styling and typo

* fix tests

* fix precommit issues

* fix issue

* Update src/core/mesh/qgsmeshlayer.h

fix docstring

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

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

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

* const stuff

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

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

* sipify

---------

Co-authored-by: Stefanos Natsis <uclaros@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-11 16:06:17 +02:00
Alexander Bruy
0baab445c0
Merge pull request #59813 from nyalldawson/coverity
Coverity scan fixes
2024-12-11 13:54:56 +00:00
Jean Felder
cfc2418675
qgslayertreemodel: Fix layerFlagsChanged docstring 2024-12-11 11:02:35 +01:00
Matej Bagar
22fe235648
Virtual point clouds - Tile Labels (#59726)
* Add label rendering into VPC tiles

* Move tile labels rendering into QgsPointCloudExtentRenderer

* Rework showLabels flag once more & connect it to widget

* Add widget for label TextFormat WIP

* Rework and fix text format widget issues

* Improve default text format used in VPC labels

* Fix banned keywords issue

* Fix QgsTextFormat review issue

* Fix labels drawing efficiency issue

* Fix formating issues

* Fix review issues
2024-12-11 10:11:44 +01:00
Matt Fisher
313873d58e Regenerate SIP files 2024-12-11 15:11:35 +10:00
Nyall Dawson
53ceb20893
Fix coverity unchecked return value warning, improve docs 2024-12-11 06:40:14 +10:00
JuhoErvasti
c130eb7c3d Add \since to new functions 2024-12-10 09:56:33 +10:00
JuhoErvasti
b373c8b3aa Address review 2024-12-10 09:56:33 +10:00
Juho Ervasti
6b6a4d5549 Add unit selection for extent buffer 2024-12-10 09:56:33 +10:00
Juho Ervasti
bb737f3cac Disallow negative buffer 2024-12-10 09:56:33 +10:00
Juho Ervasti
13ee0bf5cf Apply suggestions from review 2024-12-10 09:56:33 +10:00
Juho Ervasti
e7a27d05c7 Fix style 2024-12-10 09:56:33 +10:00
JuhoErvasti
5c49205bd2 Add maximumExtentBuffer() function to QgsFeatureRenderer 2024-12-10 09:56:33 +10:00
JuhoErvasti
ccc7df5966 Add extent buffer property to QgsSymbol 2024-12-10 09:56:33 +10:00
Even Rouault
0c5edad199 QgsProcessingAlgorithm::addOutput(): add a variant that accepts a unique_ptr for QgsProcessingOutputDefinition 2024-12-09 14:58:27 +10:00
Even Rouault
a389b1a568 QgsProcessingAlgorithm::addParameter(): add a variant that accepts a unique_ptr for QgsProcessingParameterDefinition 2024-12-09 14:58:27 +10:00
Nyall Dawson
47593ca156 Rename to 'snap to pixel factor' for clarity 2024-12-09 13:36:08 +10:00
Nyall Dawson
61bbd91c81 Add API to QgsRasterIterator to handle resampling factor
Allows raster iterator to calculate blocks which are exactly
multiples of the resampling factor, to aid in cases where the
iterator will be used to fetch resampled raster blocks
2024-12-09 13:36:08 +10:00
Nyall Dawson
af8e4432a9 Consistently return QgsAbstractGeometry from QgsGeos methods
This is more flexible then always returning QgsGeometry
2024-12-06 19:20:26 +10:00
Nyall Dawson
dbb20bb5da Add sip cast code to QgsGeos
Ensures QgsGeometry.createGeometryEngine returns a QgsGeos object
for use in Python
2024-12-06 19:20:26 +10:00
Nyall Dawson
afac0312aa Expose QgsGeos class to PyQGIS
This class has lots of (very useful!) GEOS specific functionality which
is not exposed through the base QgsGeometryEngine class
2024-12-06 19:20:26 +10:00
Denis Rouzaud
76f702e48a sipify 2024-12-05 13:19:50 +01:00
Nyall Dawson
2140c555fe Double-clicking a mouse handle for a layout label resizes to fit text
Double-clicking a handle will auto-size the label to exactly fit
the contained text (growing or shrinking as needed). The opposite
side of the label will remaining fixed in place, so eg double-click
the bottom-right handle causes the bottom-right corner of the label
to move.
2024-12-05 05:13:53 +10:00
Nyall Dawson
87efed6b0e Expose mode 2024-12-04 02:57:51 +10:00
David Koňařík
d47ad7dfe0 Minor changes per review 2024-12-03 09:26:55 +01:00
David Koňařík
f2afd6a498 Expose point cloud class statistics to Python 2024-12-03 09:26:55 +01:00
David Koňařík
e5064f092a Refactor QgsPointCloudIndex statistics methods 2024-12-03 09:26:55 +01:00
hxbb00
33b22c6519 feat: Enhance the ability to customize icons for QgsPluginLayer 2024-12-03 12:58:00 +10:00
Nyall Dawson
37478db0c1 Fix more function links 2024-12-03 12:57:44 +10:00
Nyall Dawson
d50fe2a9e5 Fix function links, sipify 2024-12-03 12:57:44 +10:00
Nyall Dawson
8d60d4f6d7 Make some factories return unique_ptr 2024-12-03 07:06:02 +10:00
Nyall Dawson
7670fbe362
Move class, method out of QgsPalLabeling to central location 2024-12-02 12:46:23 +10:00
Nyall Dawson
bb6919aeea Move QgsRasterMinMaxOrigin enums to Qgis, promote to enum class 2024-11-30 07:36:47 +10:00
Jean Felder
9d372b6019 qgsrasterlayer: Remove refresh logic
This is not used anymore.
2024-11-28 14:37:06 +10:00
Jean Felder
76cbf8b3a5 qgsrasterlayer: Make computeMinMax public
This will be used in the next commit to refresh a renderer.
2024-11-28 14:37:06 +10:00
Jean Felder
dd36eb7249 qgsrasterrenderer: Introduce refresh
This is similar to what is achieved in
`QgsRasterLayer::refreshRenderer()` to refresh the renderer according
to an extent. Contrary to the first one, this method does not perform
any GUI update or emit any signal.

It is not used at the moment. This will replace the logic to refresh a
renderer in the following commits.
2024-11-28 14:37:06 +10:00