11331 Commits

Author SHA1 Message Date
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
qgis-bot
a6cade8058 auto sipify 🍺 2025-05-06 11:54:28 +00: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
qgis-bot
7a94ac641b auto sipify 🍺 2025-05-05 21:52:14 +00: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
qgis-bot
1b8ea08aff auto sipify 🍺 2025-05-05 09:46:38 +00: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
qgis-bot
49e3244421 auto sipify 🍺 2025-05-04 21:18:42 +00: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
qgis-bot
19f246ecb1 auto sipify 🍺 2025-05-04 07:58:22 +00: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
qgis-bot
9bcd9c3d77 auto sipify 🍺 2025-05-01 20:10:12 +00: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
qgis-bot
0a34e1c788 auto sipify 🍺 2025-05-01 00:36:53 +00: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
qgis-bot
1030b0385e auto sipify 🍺 2025-04-30 03:59:08 +00: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
qgis-bot
51f7bed95c auto sipify 🍺 2025-04-30 02:11:40 +00: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
qgis-bot
568c0998ac auto sipify 🍺 2025-04-29 23:50:47 +00:00
Valentin Buira
f56f85dc7c
Add basic drag and drop support in the model designer (#60664) 2025-04-30 09:47:48 +10:00
qgis-bot
a40fe45a45 auto sipify 🍺 2025-04-24 10:03:42 +00: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
qgis-bot
969fa6bfc1 auto sipify 🍺 2025-04-22 01:48:25 +00: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
qgis-bot
5084af473c auto sipify 🍺 2025-04-19 08:20:28 +00: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
qgis-bot
569667f9bb auto sipify 🍺 2025-04-17 10:57:22 +00: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
qgis-bot
9b1dfa17b3 auto sipify 🍺 2025-04-17 08:54:20 +00: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