634 Commits

Author SHA1 Message Date
Nyall Dawson
a2f9868f6f
Remove duplicate http method enums 2025-03-12 11:10:57 +10:00
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
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
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
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
8911a5b726 Move QgsLegendStyle::Style enum to Qgis, rename to LegendComponent 2025-02-20 13:08:54 +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
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
8f4893d8b2 Move some useful utility methods to QgsSymbolLayerUtils 2025-02-13 14:54:20 +10:00
Alessandro Pasotti
e381be985b
Merge pull request #60441 from nyalldawson/auth_manager_ux_tweaks
Auth manager ux tweaks
2025-02-05 16:13:50 +01:00
Nyall Dawson
20972fceed More fixes for use of inline data for SVG content
Followup https://github.com/qgis/QGIS/pull/59589

Fixes #60427
2025-02-05 14:44:50 +10:00
Julien Cabieces
87ffd09aff fix(CategorizedRenderer): reset mask information on source symbol
Both symbol layer ids and masks need to be removed from symbol
layers which can be inherited from a converted renderer
2025-02-05 09:48:12 +10:00
Nyall Dawson
cbee8326ca
Can't use SIP_DEPRECATED with non-methods 2025-02-05 09:11:18 +10:00
Nyall Dawson
db7b9afb6b
Use translated string for password helper
And fix capitalisation of strings
2025-02-05 08:26:32 +10:00
Even Rouault
b63d11ea0d Apply suggestions from code review 2025-02-04 08:24:35 +10:00
Even Rouault
597a945995 Apply suggestions from code review
Co-authored-by: Harrissou Sant-anna <delazj@gmail.com>
2025-02-04 08:24:35 +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
530eb4bc2f Test and code adjustments related to MIME type serialization for PointCloudLayer going from 'pointcloud' to 'point-cloud' 2025-02-03 07:51:53 +10:00
Even Rouault
47a72b4056 Limit number of hardcoded strings for layer type by leveraging QgsMapLayerFactory::typeToString() 2025-02-03 07:51:53 +10:00
Even Rouault
660db0f810 core/server: remove traces of OGC best practice georeferencing 2025-01-25 07:52:23 +10:00
Martin Dobias
d8f8d13691 address review 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
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
Withalion
2a8cd537fa Fix issues introduced by PointCloudIndex refactor 2025-01-08 12:40:34 +01:00
Withalion
ad1475e735 Add unit tests & fix some review issues 2025-01-08 12:40:34 +01:00
Withalion
057402a895 Fix review issues round 2 2025-01-08 12:40:34 +01:00
Withalion
2bed2b7c3c Fix review issues 2025-01-08 12:40:34 +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
Nyall Dawson
c2d933579d Move resampling method enum to Qgis, promote to enum class 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
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
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
JuhoErvasti
ccc7df5966 Add extent buffer property to QgsSymbol 2024-12-10 09:56:33 +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
qgis-bot
eb1ce83af1 auto sipify 🍺 2024-12-03 07:47:10 +00:00
Nyall Dawson
37478db0c1 Fix more function links 2024-12-03 12:57:44 +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
Yoann Quenach de Quivillic
32c6a3d8e7 Add global enum 2024-11-27 07:10:29 +10:00
Nyall Dawson
2abc9d92ca [sld] Don't try to write rules/categorizes without symbolizers
Only create rules/categorized categories/graduated ranges if the
associated symbol could be converted to SLD, and is not an "empty"
symbol.

Otherwise we do not generate a rule, as SLD spec requires a
Symbolizer element to be present.
2024-11-19 21:06:26 +10:00
Nyall Dawson
7a17557e64 Refactor QgsTextRenderer internal methods, optimise buffer render
Rework internals of QgsTextRenderer horizontal text rendering,
so that:

1. It's easier to read, cleaning up years of accumulated cruft
2. Split out bits into smaller functions
3. Reduce the amount of duplicate code for text layout, so that
there's only one function responsible for horizontal text layout
instead of multiple
4. Add shortcut optimisations for rendering text + buffer/shadow
at the same time, instead of always drawing these completely
independantly of each other and incurring the cost of text path
calculation multiple times for the same bit of text. In a simple
benchtest this reduces the time required for rendering many
text fragments with buffers from 40 seconds to 27 seconds.

There's still more we could do here, but it's a start...
2024-11-19 11:15:34 +10:00
Harrissou Sant-anna
ac3c06d3ad Rewording and formatting in PyQGIS docs 2024-11-16 07:28:29 +10:00