833 Commits

Author SHA1 Message Date
Nyall Dawson
8fdd39fca9 Add support for setting output fields for QgsVectorLayerExporter
Allows remapping fields from the source fields, including specifying
the exact output field type, and source expression
2025-03-12 10:25:48 +10:00
Nyall Dawson
3a4357dcde
Fix typo 2025-03-11 08:28:41 +10:00
Nyall Dawson
eaafdc07ba
Fix build, docs 2025-03-10 18:11:55 +10:00
Nyall Dawson
f22baa38f1
Add expression based filter for QgsVectorLayerExporter 2025-03-10 14:41:21 +10:00
Nyall Dawson
32373e1999
Add extent filter for QgsVectorLayerExporter 2025-03-10 14:41:21 +10:00
Nyall Dawson
e17d9f722b
Add more flexible API variant for QgsVectorLayerExport.exportLayer 2025-03-10 14:41:20 +10:00
Nyall Dawson
56bc177e4e Add provider connection method to set table comment
Currently supported for Postgres provider only
2025-03-10 14:40:27 +10:00
Nyall Dawson
d5a812e3d4 Add metadata methods for primary key capabilities 2025-03-10 14:40:27 +10:00
Nyall Dawson
b1727f8b73 [api] Add connection metadata methods for default geometry column name, import capabilities 2025-03-10 14:40:27 +10:00
Nyall Dawson
9fa19f8098 Create QgsAbstractDatabaseProviderConnection::createVectorLayerExporterDestinationUri
Creates a URI for use with QgsVectorLayerExporter corresponding to given destination
table options for the backend. The URI format and extra options which
need to be passed to QgsVectorLayerExporter differ from provider to
provider, so this new method gives us a consistent, generic method we
can call to safely generate the right URI and options in a
cross-provider way.

Implemented for all database connection providers.
2025-03-10 14:40:27 +10:00
Nyall Dawson
2b7c21fc78 Move some logic to dialog, create connection method 2025-03-10 14:40:27 +10:00
Nyall Dawson
13aae162f0 Promote marker symbol alignment enums to enum class, move to Qgis 2025-03-05 19:02:47 +10:00
signedav
222f2c61b1 Introducing new VectorAnchorPoint Baseline to align font markers to their baseline. In GUI only exposed to font marker settings. Beautiful VerticalAnchorMode removed because it's an overhead. 2025-03-03 17:12:32 +10:00
signedav
6b5396bd53 introduce VerticalAnchorMode in FontSymbols to have a proper 'hidden' setting for this mode making a differene between legacy and baseline (and future bounds) on the positioning of the characters 2025-03-03 17:12:32 +10:00
signedav
f80df88534 with the parameter fixverticalanchor, the position of the point is calculated with the same offset like the offset of the font. this differed before what leaded to issues. still the old way is available as legacy 2025-03-03 17:12:32 +10:00
Nyall Dawson
896e867e98 Add method to valid SQL options before creating query layer to QgsAbstractDatabaseProviderConnection
And implement for MS SQL provider.

Generates a user-friendly descriptive message when the SQL is
not valid for creating a layer in QGIS.
2025-03-03 13:16:40 +10:00
Alexander Bruy
ce1b0c70ca address review comments and add test 2025-03-03 11:48:15 +10:00
Alexander Bruy
bb60704ed0 fetch feature with geometry when executing map layer action on feature
(fix #48964)
2025-03-03 11:48:15 +10:00
Nyall Dawson
632d196e62 Don't show useless "available in python as" notes in PyQGIS docs
Since the method name used in the docs is ALREADY the python version!
2025-02-28 18:32:09 +10:00
Nyall Dawson
bb4827e9f9
Create a class for managing stored database queries
This class is designed to be compatible with DB Manager's storage
of queries in projects, but extended to allow storage within
the local profile too.
2025-02-26 10:54:25 +10:00
Nyall Dawson
a363ed1862 Fix leak when directly iterating feature in PyQGIS
Fixes #32944
2025-02-22 05:23:15 +10:00
Nyall Dawson
149c106ea0 Optimise conversion of QgsAttributes to Python objects
Applies the same optimisations as are present in the QgsFeature
methods to avoid the overhead of sip's QVariant conversion logic
when attributes are of a basic type
2025-02-22 05:22:41 +10:00
Julien Cabieces
a96ea4a104
Merge pull request #60674 from nyalldawson/gdal-release-name
Show GDAL release nickname in about screen
2025-02-20 09:18:23 +01:00
Nyall Dawson
8911a5b726 Move QgsLegendStyle::Style enum to Qgis, rename to LegendComponent 2025-02-20 13:08:54 +10:00
Nyall Dawson
4f2bbe407a
Fix compilation on GDAL 3.11 2025-02-20 09:54:05 +10:00
Alexander Bruy
3d44213606 do not enable default Duplicate Feature and Digitize action for geometryless layers (refs #57916) 2025-02-20 08:44:48 +10:00
Nyall Dawson
2ffb8c00db Fix data-defined overrides ignored in legend text format
Fixes #60628
2025-02-19 12:05:10 +10:00
Nyall Dawson
a152cbecdb
Fix numerous leaks in sip method code
From the sip documentation:

    If state is not NULL then the location it points to is set to
    describe the state of the returned C/C++ instance and is the
    value returned by any %ConvertToTypeCode. The calling code
    must then release the value at some point to prevent a memory
    leak by calling sipReleaseType().

These methods were only calling sipReleaseType in the case that
an error occurred, which is incorrect -- it should always be
called.
2025-02-17 10:42:19 +10:00
Nyall Dawson
46b0436bbc Also fix render order for arrow line 2025-02-14 14:37:04 +10:00
Nyall Dawson
ed0bd43ee0 Also fix render order for filled line 2025-02-14 14:37:04 +10:00
Nyall Dawson
849063d4e5 Fix render order of symbol layers for filled marker subsymbol
If a filled marker had eg a centroid fill marker in the subsymbol,
this would always be rendered on top, regardless of the actual
defined order
2025-02-14 14:37:04 +10:00
Loïc Bartoletti
a6beaa96e8 docs(QgsCircle): pet doxygen 2025-02-14 08:56:11 +10:00
Loïc Bartoletti
e637eb3df2 move SegmentCalculationMethod to qgis.h 2025-02-14 08:56:11 +10:00
Loïc Bartoletti
157383300c feat(QgsCircle): Add segment calculation methods 2025-02-14 08:56:11 +10:00
Nyall Dawson
a48ec1012f Add methods to directly buffer/offset GEOS geometry in QgsGeos
These methods directly work with GEOS geometries and avoid the
forced conversions to/from QgsAbstractGeometry objects, and are
intended for use in chained operations where the intermediate conversions
are not required.
2025-02-13 14:54:20 +10:00
Nyall Dawson
8f4893d8b2 Move some useful utility methods to QgsSymbolLayerUtils 2025-02-13 14:54:20 +10:00
Nyall Dawson
60360f9b97 Add method to directly convert QgsAbstractGeometry to QPolygonF lists
This overload avoids creating a QgsGeometry if we only have a
QgsAbstractGeometry pointer object to convert
2025-02-13 14:54:20 +10:00
Nyall Dawson
e7e41e84f8 Add equality operators for QgsDataSourceUri, missing setters 2025-02-12 06:33:14 +10:00
Nyall Dawson
148ae1fb28 Add equality operator for QgsHttpHeaders 2025-02-12 06:33:14 +10:00
ughur-a
0b9bc85378
docs(qgsprocessingcontext): fix typo (#60541)
* docs(qgsprocessingcontext): fix typo

* Update .sip.in files

---------

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2025-02-11 15:11:38 +01:00
Nyall Dawson
2744627b4c Improve documentation 2025-02-11 09:24:35 +10:00
Nyall Dawson
c8198d865e Remove redundant providerType methods from raster, mesh layers
This exact same method is implemented in QgsMapLayer already
2025-02-11 09:24:35 +10:00
Julien Cabieces
d58e5f24f4
Merge pull request #60139 from Djedouas/fix-exclude-end-temporal-range
Fix include/exclude in QgsRange
2025-02-10 15:02:56 +01:00
Jacky Volpes
ae65d1be44 fix(qgsdaterange): consider infinite bounds in overlaps method
Infinite left or right date bound were not considered when computing
overlaps, leading to ranges being considered overlapping where they
don't.
2025-02-07 17:29:37 +01:00
Nyall Dawson
83ad87fcda Documentation precision 2025-02-07 16:15:03 +10:00
Nyall Dawson
ea9ac1dde1 When changing master password, don't prompt for the existing
password if it is stored in the system password helper and
is valid
2025-02-07 16:15:03 +10:00
Nyall Dawson
f7702bc446 Add method to verify that password stored in password helper is valid 2025-02-07 16:15:03 +10:00
Nyall Dawson
038036d021 Use "auto" for std::unique_ptr<X> = std::make_unique<X>
Refs https://github.com/qgis/QGIS-Enhancement-Proposals/pull/319
2025-02-07 13:10:27 +10:00
Julien Cabieces
c5dee65d0f fix(RuleBasedRendering): keep rule key while cloning when needed
rule key is used by other object as reference (masking for instance)

Fixes #46402
2025-02-07 12:25:19 +10:00
Hannes
b7bd622523 Fix QgsError.isEmpty() documentation
The method checks if there is an empty message list. It will actually return `TRUE` if there is *no* error message and `FALSE` if there *is* an error.
2025-02-07 12:24:59 +10:00