127 Commits

Author SHA1 Message Date
Even Rouault
02caeb9db7
Header files: remove all mentions of '\since QGIS 2.' 2024-02-18 20:46:01 +01:00
Even Rouault
a5c8f01003
Header files: remove all mentions of '\since QGIS 1.' 2024-02-18 20:46:00 +01:00
Nyall Dawson
2357d80d25 Avoid sip property code for old api compatibility
This causes crashes on Qt6. Use Python monkey patching instead.
2024-02-17 05:38:14 +10:00
Nyall Dawson
9fd9b1ccab Need to adjust geometry type filter depending on entity type 2024-02-15 12:39:11 +10:00
Nyall Dawson
b5c3857c94 Add button to retrieve available geometry type for source
Clicking this queries the backend for available types, taking the
guesswork out of selecting the geometry type
2024-02-15 12:39:11 +10:00
Nyall Dawson
edc26aeb0b Restrict results to ONLY those matching the selected geometry types 2024-02-15 12:39:11 +10:00
Nyall Dawson
4b8e6c4e16 Add missing file 2024-02-15 12:39:11 +10:00
Nyall Dawson
298a2940cb Fix sip 2024-02-15 12:39:11 +10:00
Nyall Dawson
90f180c07f Start on utils class 2024-02-15 12:39:11 +10:00
Nyall Dawson
0096246afe Sipify 2024-02-13 20:51:03 +10:00
Nyall Dawson
62cd14189f Use proper enum flags type instead of int as return value
And promote enum to enum class. Notably fixes a bunch of startup
errors when loading the Processing plugin under Qt6
2024-02-13 08:13:43 +10:00
Nyall Dawson
ba7b7ac458 Add method to determine actual document size 2024-02-12 12:48:27 +10:00
Nyall Dawson
4aeecb4c42 Add QgsWebEnginePage::render( QPainter* ) method
Requires a PDF4Qt enabled build. This method exports the QWebEnginePage
to a PDF file, so that we get nicely vectorised objects and
text-as-text. It's the ONLY supported way in Qt API to do this, every
other method of rendering QWebEnginePage forces rasterisation of
the content.

We then use the QgsPdfRenderer class to render the temporary PDF
content to a QPainter device, which keeps vector objects as vectors.
2024-02-12 12:48:27 +10:00
Nyall Dawson
ff56801b8f Create QgsWebEnginePage wrapper class around QWebEnginePage
Like QgsWebPage this provides additional functional over the
base Qt class to simplify tasks required in QGIS.
2024-02-12 12:48:27 +10:00
Nyall Dawson
eccf1198e8 Cleanup API 2024-02-12 12:48:27 +10:00
Nyall Dawson
fdfd7713c5 Lots of shortcuts to get a PDF -> QPainter renderer working 2024-02-12 12:48:27 +10:00
Nyall Dawson
0e00b5fcb0 Shell for QgsPdfRenderer class 2024-02-12 12:48:27 +10:00
Nyall Dawson
814e6db3b4 Don't map non-list of QVariantMaps to QMap<QString,QVariant>
The original workaround was only supposed to apply to QList/
QVector of QVariantMaps. By replacing them all in sip we
break mapping of signals defined in c++ which are emitted
by Python code.

Fixes exceptions after running processing algorithms in Qt6
builds.
2024-02-12 12:16:14 +10:00
Nyall Dawson
87f117f47b [sipify] Avoid leading and trailing newlines in enum value docstrings 2024-02-11 13:37:29 +10:00
Nyall Dawson
2b710b2617 [sipify] Don't write invalid escaped \d character to docstring
Instead correctly translate to ..deprecated python docstrings
2024-02-11 13:37:29 +10:00
Nyall Dawson
ee53b9ae48 Port processing enums to enum class
A step towards a Qt6 compatible Processing framework
2024-02-10 17:25:22 +10:00
Nyall Dawson
45e51c2a55 Expose GEOS constrainedDelaunayTriangulation to QgsGeometry
Allows calling this method when QGIS is built against supported
GEOS versions (>= 3.11)
2024-02-10 08:04:51 +10:00
Nyall Dawson
fa6c41fd74 Add QgsGeometryCollection::extractPartsByType
Allows extraction of matching parts from a collection, returning
the corresponding collection subclass.

  mixed_collection = QgsGeometryCollection()
  mixed_collection.addGeometry(... mix of geometry types ...)

  multi_line_string = mixed_collection.extractPartsByType(Qgis.WkbType.LineString)

In this case multi_line_string will be a QgsMultiLineString object,
containing just the line string parts from mixed_collection
2024-02-10 08:04:51 +10:00
Alessandro Pasotti
b32d4540fe QgsField fix equality with editorWidgetSetup
Fix #55873
2024-02-09 08:13:08 +10:00
Alessandro Pasotti
11f083b6c0 sipify qt6 2024-02-08 14:52:49 +10:00
Nyall Dawson
eb81a07732 Correctly tag Qgis.WkbType as IntEnum 2024-02-07 19:46:16 +10:00
Even Rouault
d43ceb45b6
qgscoordinatetransform.h: add a couple missing SIP_THROW( QgsCsException ), and add Doxygen \throw hint to make it obvious exceptions might be thrown 2024-02-07 03:16:44 +01:00
Alessandro Pasotti
f2f2840173
Merge pull request #55588 from elpaso/mssql-log-query-when-update-geometry-value
MSSQL: fix add/fill ring
2024-02-06 13:47:01 +01:00
Nyall Dawson
de532a62aa Fix doxygen warning 2024-02-06 21:04:43 +10:00
Nyall Dawson
ac2f1179c8 More item data role enum to enum class conversions 2024-02-06 21:04:43 +10:00
Nyall Dawson
feecb4017c Make some custom model roles enum class for Qt6 compatibility 2024-02-06 21:04:43 +10:00
Loïc Bartoletti
67ea128ee0 DOX: better wording for createGeometryEngine
Co-authored-by: Nyall Dawson <nyall.dawson@gmail.com>
2024-02-06 10:28:53 +01:00
Loïc Bartoletti
f5db8a765f QgsGeos: Add precision when createGeometryEngine 2024-02-06 10:28:53 +01:00
Nyall Dawson
4ba4eae72a [processing] Rename grass7 provider to grass provider
And transparently map requests for grass7 provider to grass provider

It's misleading putting an old version number in the provider name,
when this provider supports grass versions 8 +
2024-02-06 18:31:48 +10:00
Mathieu Pellerin
48033867fc [dxf] When exporting to DXF, skip empty layers 2024-02-06 14:48:52 +07:00
Jorge Tornero
9195dbd057
Support for serial port sensor baudrate selection (#55848) 2024-02-06 13:53:11 +07:00
uclaros
a09b3d0341 Don't cache failed blocks
Address review
2024-02-05 09:11:56 +00:00
uclaros
1285a8dfe2 Add a static QCache to QgsPointCloudIndex for storing decoded data blocks 2024-02-05 09:11:56 +00:00
Nyall Dawson
c3fa3af175 [processing] Use safer provider://source syntax in more places
Use the safer method of explicitly including the provider type
when storing layer sources to string in more places, which eg
fixes running the copied qgis_process string when a non gdal
layer source is used for a raster layer. Also fixes the same
situation when restoring an algorithm from the history log.

Fixes #54264
2024-02-05 17:39:46 +10:00
Nyall Dawson
6db11e287d Refactor QgsTessellator so that errors are stored
Instead of writing errors to QgsMessageLog and discarding, instead
make the QgsTessellator class store errors and make the callers
responsible for pushing to QgsMessageLog when appropriate.

Gives us more flexibility to show user facing tesselation errors,
eg in the processing log.
2024-02-05 17:39:24 +10:00
Nyall Dawson
6df159f2a2 Add missing compatibility code 2024-02-04 05:54:31 +10:00
Nyall Dawson
3e07b06d87 Fix broken old API compatibility code on Qt 6 builds
The old sip based approach to handling property -> getter/setter
conversion is broken on sip6, so move the patching into Python.

Also fix incorrect checks in tests, and add additional test
for compatiblity code.
2024-02-04 05:54:31 +10:00
Nyall Dawson
f9ad9e4e25 Documentation 2024-02-02 04:59:04 +10:00
Nyall Dawson
6aae7380cd Cleanup int arguments which should be Qgis::RasterBandStatistic values
And ensure python compatibility remains intact
2024-02-02 04:59:04 +10:00
Nyall Dawson
503a95a1a1 Move enums to Qgis namespace for consistency 2024-02-02 04:59:04 +10:00
Nyall Dawson
179e2ca59a Promote some more enums to enum class to fix PyQt6 support 2024-02-02 04:59:04 +10:00
Nyall Dawson
fae7c83437 Fix doxygen 2024-01-31 17:16:18 +10:00
Nyall Dawson
f2c74f377d Sipify 2024-01-31 17:16:18 +10:00
Nyall Dawson
078fd4f2ea Make IntFlag enum type opt-in, rather than opt-out
And make sipify handle this nicely. This means that all our non-flag
style enums correctly map across to IntFlag python enums on Qt 6,
fixing issues with negative enum values for these and providing
a better match for the original c++ enum.
2024-01-31 17:16:18 +10:00
Nyall Dawson
12f4ce5978 Use correct enum type for enum with negative values 2024-01-31 17:16:18 +10:00