6187 Commits

Author SHA1 Message Date
Nyall Dawson
08cfe062d1 [api] Detect if map renderer label job has non-default composition modes 2025-05-21 07:19:45 +10:00
Nyall Dawson
183e86f5b3 [api] Add method to test if labeling as non-default blend modes 2025-05-21 07:19:45 +10:00
Juergen E. Fischer
11165902d4 non-unity builds like msvc nightly 2025-05-16 16:36:28 +02:00
Julien Cabieces
e01bd3d3f7
Merge pull request #61788 from troopa81/add_unique_ptr_v2
Use unique_ptr when class has clear ownership V3
2025-05-14 08:49:39 +02:00
Nyall Dawson
96247de345 Fix qgsVariantGreaterThan may return false result when values are equal
Fixes #61759
2025-05-14 04:57:31 +10:00
Julien Cabieces
49fb842a3d refactor(ExpressionNode): use unique_ptr when possible 2025-05-12 15:41:34 +02:00
Julien Cabieces
6650438967 refactor(core): Use unique_ptr when class has clear ownership 2025-05-12 12:07:16 +02:00
Julien Cabieces
e5233e2c11 refactor(core): make deleted copy ctor/operator= private 2025-05-09 06:22:03 +10:00
Julien Cabieces
a3b5232612 refactor(core): remove empty overrided destructor 2025-05-09 06:22:03 +10:00
Julien Cabieces
bd970ea77b fix(Sip): because of adding unique_ptr 2025-05-09 06:22:03 +10:00
Denis Rouzaud
4afc4e8104
Merge pull request #61472 from gacarrillor/gps_tracking
[feature] Add a QgsAppGpsTools class to expose QGIS GPS Tools to Python plugins via QgisInterface
2025-05-08 18:45:55 +02:00
Germán Carrillo
cb8d1aacaa Refactor of GPS tools exposed via iface:
Introduce abstract QgsGpsToolsInterface and its subclass QgsAppGpsTools, which can be accessed via iface.gpsTools()
Deprecate existent GPS method in iface and move it to GPS tools.
2025-05-06 13:21:26 -05:00
Julien Cabieces
b8f32df475
Merge pull request #61424 from troopa81/feat_ifremer_time
[WMS][Time dimension] Allow group node to expose time dimension
2025-05-06 13:51:24 +02:00
Julien Cabieces
39560db614 feat(WMSTime): Treat review comments 2025-05-06 09:40:40 +02:00
Julien Cabieces
e655784f9b feat(WMSTime): Allow group node to expose time dimension
Add also support of date range in time dimension with respect to the
OGC WMS and ISO8601 standard.
2025-05-06 08:49:57 +02:00
Alexander Bruy
3cf314fcdd add a flag to coerceToType() to control whether duplicated nodes should
be kept
2025-05-06 07:48:08 +10:00
Alexander Bruy
a1ec95cf70
Merge pull request #61542 from boardend/content_cache_invalidatate
Add invalidateCacheEntry() for QgsAbstractContentCache implementations
2025-05-05 10:43:33 +01:00
Nyall Dawson
72ad735b1e [api] Add QgsSipUtils, with method to test if object is owned by Python
QgsSipUtils.isPyOwned will return True if an object is owned
by python, or False if ownership is held by another object
or c++ class.

This gives a way to test in advance if we can safely assign
an object to a method which takes ownership (which always results
in a crash).
2025-05-05 07:15:43 +10:00
Nyall Dawson
169657a0fb Sipify 2025-05-04 17:55:25 +10:00
Nyall Dawson
f1b8682e36 Improve API for exporting to SLD
Deprecate old methods and make methods always take QgsSldExportContext.
Add capacity to QgsSldExportContext to collect export errors and
warnings.

The old API had no way to reliably report errors/warnings during
export to users.
2025-05-04 17:55:25 +10:00
Nyall Dawson
35f5280342 Sipify 2025-05-04 07:42:31 +10:00
Michael Schmuki
1672330cdc Add invalidateCacheEntry() for QgsAbstractContentCache implementations 2025-05-02 11:59:09 +02:00
Nyall Dawson
7e76c79224 Improve docs 2025-05-02 06:07:14 +10:00
Nyall Dawson
a1de92cc52 Add missing transfer 2025-05-02 06:07:14 +10:00
Jean Felder
a00f47c773 qgsproject: Add a sip removeMapLayers code to fix qt6 version
With this new method code, it is now possible to use
`QgsProject::removeMapLayers` with a list of layers or a list of
layers IDs in qt5 and qt6.

Co-authored-by: bdm-oslandia <benoit.de.mezzo@oslandia.com>
2025-05-01 10:33:58 +10:00
Nyall Dawson
6bd91f8381 [processing][api] Add API for an algorithm to auto-set parameter values
Adds an API which an algorithm can implement to support auto-setting
parameter values. This is designed to handle the case
of eg an algorithm which does a file format translation, where
it's desirable to default the output parameter value to an input
parameter value with a different extension.

This can now be done by implementing autogenerateParameterValues
in the algorithm, eg:

    def autogenerateParameterValues(self, existingParameters, changedParameter, mode):
        if changedParameter == self.INPUT:
            input_file = existingParameters.get(self.INPUT)
            if input_file:
                input_path = Path(input_file)
                if input_path.exists():
                    # auto set output parameter to same as input but with 'qgs' extension
                    return {self.OUTPUT: input_path.with_suffix('.qgs').as_posix()}

        return {}

Works for both toolbox and batch modes for algorithms
2025-04-30 13:56:09 +10:00
Nyall Dawson
31ac029d0a Move processing dialog mode enum to Qgis and rename 2025-04-30 13:56:09 +10:00
Jean Felder
e318460718 qgsmeshlayer: Introduce closestElement
This is a generalization of `snapOnElement`, since it allows to also
get the element (face, vertex or edge) index.
2025-04-30 12:08:39 +10:00
Valentin Buira
f56f85dc7c
Add basic drag and drop support in the model designer (#60664) 2025-04-30 09:47:48 +10:00
Nyall Dawson
1efd5df8d6 Add method to return total number of tiles in a QgsTileRange 2025-04-24 12:00:42 +02:00
Nyall Dawson
67036b670f Add isMaximal method to QgsRectangle 2025-04-24 12:00:42 +02:00
Nyall Dawson
c0a3e90ecf Fix misc tests 2025-04-22 11:45:25 +10:00
Nyall Dawson
c2ee323793 [feature] Add labeling setting to prevent duplicate labels within xx mm
Improves the appearance of labels in situations like road networks,
where things like dual carriageways, service roads, etc can result
in many labels of the exact same text appearing close to each other.

When active, removes any labels with the exact same text (case
sensitive!) which are closer then this minimum distance.

The setting applies across layers, so duplicate text from ANY
layer will be considered.
2025-04-22 11:45:25 +10:00
Nyall Dawson
4d98f21d67 [feature] Add 'margin around labels' setting for labeling
Allows setting a margin around a layer's labels, which prevents
other labels from being placed closer than this margin distance
to the layer's labels.
2025-04-22 11:45:25 +10:00
Nyall Dawson
255d4b3ce2 Add method to test if QgsMapUnitScale is null 2025-04-22 11:45:25 +10:00
Matthias Kuhn
6aac924cc2
Merge pull request #60134 from btzy/codearg
Open and load --code file and --py-args arguments in C++
2025-04-21 19:52:14 +02:00
Juergen E. Fischer
393ca14c4a fix windows build 2025-04-21 19:33:28 +02:00
Nyall Dawson
5783ee74d4 Better examples 2025-04-19 18:17:34 +10:00
Nyall Dawson
4a6fef278e Cleanup docs, don't mention QString in python docs 2025-04-19 18:17:34 +10:00
Nyall Dawson
a8ae54ca44 Fix truncated PyQGIS docs for QgsCoordinateReferenceSystem 2025-04-19 18:17:34 +10:00
Nyall Dawson
161ef62ca0 Fix inconsistent heading warnings when building PyQGIS docs
Fixes missing subclass/base class sections in some class docs (
eg QgsVectorLayer)
2025-04-19 18:17:34 +10:00
Even Rouault
e68e87ad6c
Merge pull request #61515 from rouault/wfs_no_gmlas_if_transaction
[WFS Provider] Add a UI and URI parameter featureMode=default/SimpleFeatures/ComplexFeatures
2025-04-17 12:54:24 +02:00
Alexander Bruy
b9402aad41
Merge pull request #61501 from nyalldawson/fill_block
Add optimised method to fill a QgsRasterBlock with a constant value
2025-04-17 09:51:15 +01:00
Julien Cabieces
fa9f3dd21b refactor(core): Use unique_ptr when class has clear ownership 2025-04-17 08:26:26 +10:00
Even Rouault
46da0ab329
[WFS Provider] Add a UI and URI parameter featureMode=default/SimpleFeatures/ComplexFeatures
Fixes #61476 / #61493

The analysis of DescribeFeatureType response with the GMLAS driver makes
appear fields that are not supported by the
addFeatures()/changeAttributeValues() method. So if transaction support
is detected and featureMode=default, use QGIS built-in analyser to get
SimpleFeatures only. Otherwise try the GMLAS method.
2025-04-16 20:53:43 +02:00
Nyall Dawson
2925f42dfa
Add optimised method to fill a QgsRasterBlock with a constant value 2025-04-16 14:35:25 +10:00
Bernard Teo
c55a567070
Open and load --code file in C++ 2025-04-16 00:30:00 +08:00
Alexander Bruy
c0491d6997
Merge pull request #61321 from alexbruy/harmonize-create-options-naming
Harmonize terminology related to create options
2025-04-15 08:06:44 +01:00
Nyall Dawson
005908f073 Expose method to python, rename 2025-04-15 16:05:33 +10:00
Alexander Bruy
78cdb4216b add SIP deprecation tags to deprecated methods 2025-04-14 20:12:15 +01:00