72427 Commits

Author SHA1 Message Date
Nyall Dawson
8a3d4e736c [api] Allow a feature callback to be specified when building QgsSpatialIndexKDBush 2021-07-27 08:14:39 +10:00
Denis Rouzaud
ea2957507b run tests even if build fails 2021-07-26 10:39:16 +02:00
nirvn
f68ef8fb60 [feature][processing] A brand new spatiotemporal ST-DBSCAN clustering algorithm 2021-07-26 10:30:14 +10:00
Harrissou Sant-anna
402cf1129e Add help button to layer notes dialog 2021-07-26 08:10:24 +10:00
Nyall Dawson
d2b1b97579 Const 2021-07-26 08:09:51 +10:00
Nyall Dawson
a3ec18125e Readonly 2021-07-26 08:09:51 +10:00
Nyall Dawson
0601381a15 Fix dox warning 2021-07-26 08:09:51 +10:00
Nyall Dawson
9b412a418a Update tests 2021-07-26 08:09:51 +10:00
Nyall Dawson
0c61111c14 Remove test of deprecated unused API 2021-07-26 08:09:51 +10:00
Nyall Dawson
e7b1df4291 Remove redundant test of unused, deprecated API 2021-07-26 08:09:51 +10:00
Nyall Dawson
657078dd5c Update test 2021-07-26 08:09:51 +10:00
Nyall Dawson
094293ed74 .db files are also supported by the spatialite provider 2021-07-26 08:09:51 +10:00
Nyall Dawson
6ee2e042a6 Dox 2021-07-26 08:09:51 +10:00
Nyall Dawson
87f43e2586 Add kmz extension as possible container format 2021-07-26 08:09:51 +10:00
Nyall Dawson
670250ddd0 Remove mdal, gdal, ogr, ept and pdal data item providers
These are no longer required -- we get them "for free" now!
2021-07-26 08:09:51 +10:00
Nyall Dawson
e06e7d0338 Create a generic data item provider for all file based datasources
This provider uses the QgsProviderRegistry::querySublayers API
to automatically create appropriate browser data items for all
file based sources, regardless of the underlying provider (be it
mdal, gdal, ogr, pdal or ept).

This allows us to merge sources which can be handled by multiple
different providers into single container items in the browser,
so e.g. instead of seeing a .nc file appear twice in the browser
(once with a mesh icon and once with a raster icon), we now
only see the file ONCE and expanding it out shows BOTH the mesh
and raster sublayers. Similarly with all other mixed type formats,
such as GeoPDF files (which may contain a mix of raster and vector
layers), KML/KMZ,... etc.
2021-07-26 08:09:51 +10:00
Nyall Dawson
6f942a70ac Add missing Q_DECLARE_OPERATORS_FOR_FLAGS for QgsProviderUtils::SublayerCompletenessFlags 2021-07-26 08:09:51 +10:00
Nyall Dawson
f5eebaedec Fix build 2021-07-25 15:20:13 +10:00
Nyall Dawson
7f700e35be Split QgsBrowserDockWidget to new QgsBrowserWidget class and QgsBrowserDockWidget
Moves the guts of QgsBrowserDockWidget to a reusable QWidget subclass
"QgsBrowserWidget", so that browser widgets can easily be created
which aren't a dock widget.
2021-07-25 15:20:13 +10:00
Denis Rouzaud
e43bc1e403 [ci] Qt6 ready + improve workflow + cache testing Docker image 2021-07-25 08:55:52 +10:00
Alessandro Pasotti
d0a3ceab91
Merge pull request #44111 from rldhont/tests-server-wms-dimension-time
[Server][Tests] Extend WMS dimension tests
2021-07-24 13:39:36 +02:00
Matthias Kuhn
c74e886da1
Merge pull request #44349 from m-kuhn/avoid_projection_selection_recursion_crash
Avoid recursion in crs validation
2021-07-24 09:09:53 +02:00
vcloarec
1e3117dad5 reduce duration of mesh editor test 2021-07-24 07:53:13 +10:00
Denis Rouzaud
38d6c91cb7
fix checking validity of flags in read/write settings/layer properties (#44352) 2021-07-23 15:14:57 +02:00
Damiano Lombardi
f041cda1b6
[JSON Widget] respect config when displayed in identify res. dialog (#44350) 2021-07-23 12:56:19 +02:00
Denis Rouzaud
eaa4b54e20
allow to save/read enum/flags as map layer properties (#44329) 2021-07-23 08:41:45 +00:00
Juergen E. Fischer
b0319105bc Reinstate explicit template instantiations but only for MSVC (refs #44301)
This reverts commit a499a303548654dd8028eaf330fab5388db9e3ea which
reverted f616be29d361cd24f0cd1f3433bfb264304a8760
2021-07-23 09:14:56 +02:00
Matthias Kuhn
23521d2784 Avoid recursion in crs validation
If some proj helper files are missing (likely proj.db), showing the
projection selection dialog is shown recursively. Avoid this.

Excerpt from a sample trace:

```
QgsMapLayer::setCrs :
QgsVectorLayer::setCoordinateSystem :
QgsVectorLayer::setDataSource :
QgsVectorLayer::QgsVectorLayer :
QgsCoordinateBoundsPreviewMapWidget::QgsCoordinateBoundsPreviewMapWidget :
QgsProjectionSelectionTreeWidget::setShowNoProjection :
QgsProjectionSelectionTreeWidget::QgsProjectionSelectionTreeWidget :
QgsProjectionSelectionDialog::setShowNoProjection :
QgsProjectionSelectionDialog::QgsProjectionSelectionDialog :
QgisApp::validateCrs :
QObject::qt_static_metacall :
QgisApp::customCrsValidation :
QgisApp::customProjection :
QgsMapLayer::setCrs :
QgsVectorLayer::setCoordinateSystem :
QgsVectorLayer::setDataSource :
QgsVectorLayer::QgsVectorLayer :
QgsCoordinateBoundsPreviewMapWidget::QgsCoordinateBoundsPreviewMapWidget :
QgsProjectionSelectionTreeWidget::setShowNoProjection :
QgsProjectionSelectionTreeWidget::QgsProjectionSelectionTreeWidget :
QgsProjectionSelectionDialog::setShowNoProjection :
QgsProjectionSelectionDialog::QgsProjectionSelectionDialog :
QgisApp::validateCrs :
QObject::qt_static_metacall :
QgisApp::customCrsValidation :
QgisApp::customProjection :
QgsMapLayer::setCrs :
QgsVectorLayer::setCoordinateSystem :
QgsVectorLayer::setDataSource :
QgsVectorLayer::QgsVectorLayer :
QgsCoordinateBoundsPreviewMapWidget::QgsCoordinateBoundsPreviewMapWidget :
QgsProjectionSelectionTreeWidget::setShowNoProjection :
QgsProjectionSelectionTreeWidget::QgsProjectionSelectionTreeWidget :
QgsProjectionSelectionDialog::setShowNoProjection :
QgsProjectionSelectionDialog::QgsProjectionSelectionDialog :
QgisApp::validateCrs :
QObject::qt_static_metacall :
QgisApp::customCrsValidation :
QgisApp::customProjection :
QgsMapLayer::setCrs :
QgsVectorLayer::setCoordinateSystem :
QgsVectorLayer::setDataSource :
QgsVectorLayer::QgsVectorLayer :
QgsCoordinateBoundsPreviewMapWidget::QgsCoordinateBoundsPreviewMapWidget :
QgsProjectionSelectionTreeWidget::setShowNoProjection :
QgsProjectionSelectionTreeWidget::QgsProjectionSelectionTreeWidget :
QgsProjectionSelectionDialog::setShowNoProjection :
QgsProjectionSelectionDialog::QgsProjectionSelectionDialog :
QgisApp::validateCrs :
QObject::qt_static_metacall :
QgisApp::customCrsValidation :
```
2021-07-23 09:01:19 +02:00
Juergen E. Fischer
6964eb21f6 spelling updates 2021-07-23 08:49:26 +02:00
Nyall Dawson
dd9eb90a43 Implement querySublayers for pdal provider 2021-07-23 16:00:23 +10:00
Nyall Dawson
c74f42cd58 When querying sublayers for all providers using
QgsProviderRegistry::querySublayers, if there is a preferred providers
for a particular uri then ONLY return sublayers from these providers
instead of iterating over all providers

This cleans up the case that two providers can technically handle
a uri, but where we definitely only want ONE of them to handle that
uri. Specifically, while the OGR provider can technically open
JSON files so reports that it can handle ept.json files, we only
ever want to use the EPT point cloud provider for these as we know
for certain that they are point cloud uris, not vector layers.
2021-07-23 16:00:23 +10:00
Nyall Dawson
e57193d6ef Ignore blocklisted uris when querying all providers for sublayers 2021-07-23 16:00:23 +10:00
Nyall Dawson
ae980c51bc Implement querySublayers for ept provider 2021-07-23 16:00:23 +10:00
Nyall Dawson
b7addc2edb QgsProviderUtils::suggestLayerNameFromFilePath - nicely handle ept.json paths 2021-07-23 16:00:23 +10:00
Matthias Kuhn
b52d37e46a
Merge pull request #44294 from domi4484/jsonEditWidgetDefault
JSON widget as default for json and jsonb type names
2021-07-23 07:42:26 +02:00
Nyall Dawson
48b9ff0757 Lint 2021-07-23 14:57:56 +10:00
Nyall Dawson
e0f564d8f1 Fix test 2021-07-23 14:57:56 +10:00
Nyall Dawson
a65af600db Use QgsGdalUtils::pathIsCheapToOpen to determine whether it's safe to skip the extension only scan for ogr sublayers 2021-07-23 14:57:56 +10:00
Nyall Dawson
7716d199cb Expand tests 2021-07-23 14:57:56 +10:00
Nyall Dawson
e7cea2d53f Add missing file 2021-07-23 14:57:56 +10:00
Nyall Dawson
36aa9f3109 Move some common code to QgsGdalUtils 2021-07-23 14:57:56 +10:00
Nyall Dawson
0dfd561e4a Clarify ambiguous test 2021-07-23 14:57:56 +10:00
Nyall Dawson
d1f2031283 nc shouldn't be in inexpensive list 2021-07-23 14:57:56 +10:00
Nyall Dawson
23bd6a8ea1 .shp.zip is a potential container 2021-07-23 14:57:56 +10:00
Nyall Dawson
c7c97101d3 [gdal] Correctly implement FastScan for querySublayers 2021-07-23 14:57:56 +10:00
Nyall Dawson
8349457267 Skip empty layers in mdal querySublayers 2021-07-23 14:57:56 +10:00
Nyall Dawson
c5163e9634 [mdal] Respect FastScan flag when querying sublayers 2021-07-23 14:57:56 +10:00
Nyall Dawson
816bb43c96 [ogr] Correctly handle FastScan flag in querySublayers by performing
an extension only scan for files/folders
2021-07-23 14:57:56 +10:00
Nyall Dawson
f6540193c5 If a sublayer has the skippedContainerScan flag set, then
the sublayer details are incomplete
2021-07-23 14:57:56 +10:00
Nyall Dawson
e28a0b7258 Add flag to QgsProviderSublayerDetails to indicate that the uri
may be a container for other sublayers but that indepth scanning
of the container was skipped
2021-07-23 14:57:56 +10:00