167 Commits

Author SHA1 Message Date
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
926d6f90bd Support load/save sensor things connections 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
09dc6838a7 Upgrade another enum to get filtering working in processing toolbox 2024-02-10 17:25:22 +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
signedav
28706256be
Merge pull request #56189 from signedav/fix-apply-on
Fix double apply on update default values on volatile functions
2024-02-09 12:32:35 +01: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
9631b3d3cc
Merge pull request #56212 from rouault/QgsCsException
Catch potential QgsCsException at various places; improve qgscoordinatetransform.h doc
2024-02-07 06:01:35 +01: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
jmkerloch
8e9267f584 feat(QgsLocatorWidget): define anchors for result container 2024-02-07 11:49:35 +10:00
Mathieu Pellerin
b6c7889f35
[attribute form] Insure that a field features multiple times in a feature form has its constraint properly reflected (#56163) 2024-02-06 20:27:38 +07: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
Stefanos Natsis
4dc4bff923
Don't open layer properties when toggling visibility (#56190) 2024-02-06 21:23:24 +10: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
signedav
3d28ce1b39 remove static function to return volatile function, since it's not needed anymore 2024-02-05 15:40:29 +01: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