@@ -53,11 +53,11 @@ QgsOgrLayerItem::QgsOgrLayerItem( QgsDataItem *parent,
53
53
setState ( Populated ); // children are not expected
54
54
55
55
OGRRegisterAll ();
56
- GDALDriverH hDriver;
57
- GDALDatasetH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( mPath .toUtf8 ().constData (), true , nullptr , &hDriver );
56
+ GDALDatasetH hDataSource = GDALOpenEx ( mPath .toUtf8 ().constData (), GDAL_OF_VECTOR, nullptr , nullptr , nullptr );
58
57
59
58
if ( hDataSource )
60
59
{
60
+ GDALDriverH hDriver = GDALGetDatasetDriver ( hDataSource );
61
61
QString driverName = GDALGetDriverShortName ( hDriver );
62
62
GDALClose ( hDataSource );
63
63
@@ -407,8 +407,7 @@ QVector<QgsDataItem *> QgsOgrDataCollectionItem::createChildren()
407
407
{
408
408
QVector<QgsDataItem *> children;
409
409
410
- GDALDriverH hDriver;
411
- GDALDatasetH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( mPath .toUtf8 ().constData (), false , nullptr , &hDriver );
410
+ GDALDatasetH hDataSource = GDALOpenEx ( mPath .toUtf8 ().constData (), GDAL_OF_VECTOR, nullptr , nullptr , nullptr );
412
411
if ( !hDataSource )
413
412
return children;
414
413
int numLayers = GDALDatasetGetLayerCount ( hDataSource );
@@ -635,38 +634,38 @@ QGISEXTERN QgsDataItem *dataItem( QString path, QgsDataItem *parentItem )
635
634
636
635
// test that file is valid with OGR
637
636
OGRRegisterAll ();
638
- OGRSFDriverH hDriver;
639
637
// do not print errors, but write to debug
640
638
CPLPushErrorHandler ( CPLQuietErrorHandler );
641
639
CPLErrorReset ();
642
- OGRDataSourceH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( path.toUtf8 ().constData (), false , nullptr , &hDriver );
640
+ GDALDatasetH hDS = GDALOpenEx ( path.toUtf8 ().constData (), GDAL_OF_VECTOR , nullptr , nullptr , nullptr );
643
641
CPLPopErrorHandler ();
644
642
645
- if ( ! hDataSource )
643
+ if ( ! hDS )
646
644
{
647
645
QgsDebugMsg ( QString ( " GDALOpen error # %1 : %2 on %3" ).arg ( CPLGetLastErrorNo () ).arg ( CPLGetLastErrorMsg () ).arg ( path ) );
648
646
return nullptr ;
649
647
}
650
648
651
- QgsDebugMsgLevel ( QString ( " GDAL Driver : %1" ).arg ( OGR_Dr_GetName ( hDriver ) ), 2 );
652
- QString ogrDriverName = OGR_Dr_GetName ( hDriver );
653
- int numLayers = OGR_DS_GetLayerCount ( hDataSource );
649
+ GDALDriverH hDriver = GDALGetDatasetDriver ( hDS );
650
+ QString driverName = GDALGetDriverShortName ( hDriver );
651
+ QgsDebugMsgLevel ( QString ( " GDAL Driver : %1" ).arg ( driverName ), 2 );
652
+ int numLayers = GDALDatasetGetLayerCount ( hDS );
654
653
655
654
// GeoPackage needs a specialized data item, mainly because of raster deletion not
656
655
// yet implemented in GDAL (2.2.1)
657
- if ( ogrDriverName == QLatin1String ( " GPKG" ) )
656
+ if ( driverName == QLatin1String ( " GPKG" ) )
658
657
{
659
658
item = new QgsGeoPackageCollectionItem ( parentItem, name, path );
660
659
}
661
- else if ( numLayers > 1 || ogrSupportedDbDriverNames.contains ( ogrDriverName ) )
660
+ else if ( numLayers > 1 || ogrSupportedDbDriverNames.contains ( driverName ) )
662
661
{
663
662
item = new QgsOgrDataCollectionItem ( parentItem, name, path );
664
663
}
665
664
else
666
665
{
667
- item = dataItemForLayer ( parentItem, name, path, hDataSource , 0 );
666
+ item = dataItemForLayer ( parentItem, name, path, hDS , 0 );
668
667
}
669
- OGR_DS_Destroy ( hDataSource );
668
+ GDALClose ( hDS );
670
669
return item;
671
670
}
672
671
0 commit comments