@@ -51,13 +51,13 @@ QgsOgrLayerItem::QgsOgrLayerItem( QgsDataItem *parent,
51
51
setState ( Populated ); // children are not expected
52
52
53
53
OGRRegisterAll ();
54
- OGRSFDriverH hDriver;
55
- OGRDataSourceH hDataSource = QgsOgrProviderUtils::OGROpenWrapper ( mPath .toUtf8 ().constData (), true , &hDriver );
54
+ GDALDriverH hDriver;
55
+ GDALDatasetH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( mPath .toUtf8 ().constData (), true , &hDriver );
56
56
57
57
if ( hDataSource )
58
58
{
59
- QString driverName = OGR_Dr_GetName ( hDriver );
60
- OGR_DS_Destroy ( hDataSource );
59
+ QString driverName = GDALGetDriverShortName ( hDriver );
60
+ GDALClose ( hDataSource );
61
61
62
62
if ( driverName == QLatin1String ( " ESRI Shapefile" ) )
63
63
mCapabilities |= SetCrs;
@@ -336,9 +336,9 @@ void QgsOgrLayerItem::deleteLayer()
336
336
337
337
// -------
338
338
339
- static QgsOgrLayerItem *dataItemForLayer ( QgsDataItem *parentItem, QString name, QString path, OGRDataSourceH hDataSource, int layerId, bool isSubLayer = false )
339
+ static QgsOgrLayerItem *dataItemForLayer ( QgsDataItem *parentItem, QString name, QString path, GDALDatasetH hDataSource, int layerId, bool isSubLayer = false )
340
340
{
341
- OGRLayerH hLayer = OGR_DS_GetLayer ( hDataSource, layerId );
341
+ OGRLayerH hLayer = GDALDatasetGetLayer ( hDataSource, layerId );
342
342
OGRFeatureDefnH hDef = OGR_L_GetLayerDefn ( hLayer );
343
343
344
344
QgsLayerItem::LayerType layerType = QgsLayerItem::Vector;
@@ -404,11 +404,11 @@ QVector<QgsDataItem *> QgsOgrDataCollectionItem::createChildren()
404
404
{
405
405
QVector<QgsDataItem *> children;
406
406
407
- OGRSFDriverH hDriver;
408
- OGRDataSourceH hDataSource = QgsOgrProviderUtils::OGROpenWrapper ( mPath .toUtf8 ().constData (), false , &hDriver );
407
+ GDALDriverH hDriver;
408
+ GDALDatasetH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( mPath .toUtf8 ().constData (), false , &hDriver );
409
409
if ( !hDataSource )
410
410
return children;
411
- int numLayers = OGR_DS_GetLayerCount ( hDataSource );
411
+ int numLayers = GDALDatasetGetLayerCount ( hDataSource );
412
412
413
413
children.reserve ( numLayers );
414
414
for ( int i = 0 ; i < numLayers; ++i )
@@ -417,7 +417,7 @@ QVector<QgsDataItem *> QgsOgrDataCollectionItem::createChildren()
417
417
children.append ( item );
418
418
}
419
419
420
- OGR_DS_Destroy ( hDataSource );
420
+ GDALClose ( hDataSource );
421
421
422
422
return children;
423
423
}
@@ -576,20 +576,21 @@ QGISEXTERN QgsDataItem *dataItem( QString path, QgsDataItem *parentItem )
576
576
// if this is a VRT file make sure it is vector VRT to avoid duplicates
577
577
if ( suffix == QLatin1String ( " vrt" ) )
578
578
{
579
- OGRSFDriverH hDriver = OGRGetDriverByName ( " VRT " );
579
+ GDALDriverH hDriver = GDALGetDriverByName ( " OGR_VRT " );
580
580
if ( hDriver )
581
581
{
582
582
// do not print errors, but write to debug
583
583
CPLPushErrorHandler ( CPLQuietErrorHandler );
584
584
CPLErrorReset ();
585
- OGRDataSourceH hDataSource = OGR_Dr_Open ( hDriver, path.toLocal8Bit ().constData (), 0 );
585
+ GDALDatasetH hDataSource = GDALOpenEx (
586
+ path.toLocal8Bit ().constData (), GDAL_OF_VECTOR, nullptr , nullptr , nullptr );
586
587
CPLPopErrorHandler ();
587
588
if ( ! hDataSource )
588
589
{
589
590
QgsDebugMsgLevel ( " Skipping VRT file because root is not a OGR VRT" , 2 );
590
591
return nullptr ;
591
592
}
592
- OGR_DS_Destroy ( hDataSource );
593
+ GDALClose ( hDataSource );
593
594
}
594
595
}
595
596
// Handle collections
@@ -609,22 +610,22 @@ QGISEXTERN QgsDataItem *dataItem( QString path, QgsDataItem *parentItem )
609
610
610
611
// test that file is valid with OGR
611
612
OGRRegisterAll ();
612
- OGRSFDriverH hDriver;
613
+ GDALDriverH hDriver;
613
614
// do not print errors, but write to debug
614
615
CPLPushErrorHandler ( CPLQuietErrorHandler );
615
616
CPLErrorReset ();
616
- OGRDataSourceH hDataSource = QgsOgrProviderUtils::OGROpenWrapper ( path.toUtf8 ().constData (), false , &hDriver );
617
+ GDALDatasetH hDataSource = QgsOgrProviderUtils::GDALOpenWrapper ( path.toUtf8 ().constData (), false , &hDriver );
617
618
CPLPopErrorHandler ();
618
619
619
620
if ( ! hDataSource )
620
621
{
621
- QgsDebugMsg ( QString ( " OGROpen error # %1 : %2 on %3" ).arg ( CPLGetLastErrorNo () ).arg ( CPLGetLastErrorMsg () ).arg ( path ) );
622
+ QgsDebugMsg ( QString ( " GDALOpen error # %1 : %2 on %3" ).arg ( CPLGetLastErrorNo () ).arg ( CPLGetLastErrorMsg () ).arg ( path ) );
622
623
return nullptr ;
623
624
}
624
625
625
- QgsDebugMsgLevel ( QString ( " OGR Driver : %1" ).arg ( OGR_Dr_GetName ( hDriver ) ), 2 );
626
+ QgsDebugMsgLevel ( QString ( " GDAL Driver : %1" ).arg ( GDALGetDriverShortName ( hDriver ) ), 2 );
626
627
627
- int numLayers = OGR_DS_GetLayerCount ( hDataSource );
628
+ int numLayers = GDALDatasetGetLayerCount ( hDataSource );
628
629
629
630
QgsDataItem *item = nullptr ;
630
631
@@ -639,6 +640,6 @@ QGISEXTERN QgsDataItem *dataItem( QString path, QgsDataItem *parentItem )
639
640
item = new QgsOgrDataCollectionItem ( parentItem, name, path );
640
641
}
641
642
642
- OGR_DS_Destroy ( hDataSource );
643
+ GDALClose ( hDataSource );
643
644
return item;
644
645
}
0 commit comments