@@ -39,6 +39,7 @@ email : sherman at mrcc.com
39
39
#ifdef HAVE_GUI
40
40
#include " qgssourceselectprovider.h"
41
41
#include " qgsogrsourceselect.h"
42
+ #include " qgsgeopackagesourceselect.h"
42
43
#endif
43
44
44
45
#include " qgis.h"
@@ -697,7 +698,6 @@ static OGRwkbGeometryType ogrWkbGeometryTypeFromName( const QString &typeName )
697
698
698
699
QStringList QgsOgrProvider::subLayers () const
699
700
{
700
- QgsDebugMsg ( " Entered." );
701
701
if ( !mValid )
702
702
{
703
703
return QStringList ();
@@ -710,6 +710,10 @@ QStringList QgsOgrProvider::subLayers() const
710
710
{
711
711
OGRLayerH layer = OGR_DS_GetLayer ( ogrDataSource, i );
712
712
OGRFeatureDefnH fdef = OGR_L_GetLayerDefn ( layer );
713
+ // Get first column name,
714
+ // TODO: add support for multiple
715
+ OGRGeomFieldDefnH geomH = OGR_FD_GetGeomFieldDefn ( fdef, 0 );
716
+ QString geometryColumnName = QString::fromUtf8 ( OGR_GFld_GetNameRef ( geomH ) );
713
717
QString layerName = QString::fromUtf8 ( OGR_FD_GetName ( fdef ) );
714
718
OGRwkbGeometryType layerGeomType = OGR_FD_GetGeomType ( fdef );
715
719
@@ -738,7 +742,7 @@ QStringList QgsOgrProvider::subLayers() const
738
742
739
743
QString geom = ogrWkbGeometryTypeName ( layerGeomType );
740
744
741
- mSubLayerList << QStringLiteral ( " %1:%2:%3:%4" ).arg ( i ).arg ( layerName, layerFeatureCount == -1 ? tr ( " Unknown" ) : QString::number ( layerFeatureCount ), geom );
745
+ mSubLayerList << QStringLiteral ( " %1:%2:%3:%4:%5 " ).arg ( i ).arg ( layerName, layerFeatureCount == -1 ? tr ( " Unknown" ) : QString::number ( layerFeatureCount ), geom, geometryColumnName );
742
746
}
743
747
else
744
748
{
@@ -792,13 +796,12 @@ QStringList QgsOgrProvider::subLayers() const
792
796
{
793
797
QString geom = ogrWkbGeometryTypeName ( ( bIs25D ) ? wkbSetZ ( countIt.key () ) : countIt.key () );
794
798
795
- QString sl = QStringLiteral ( " %1:%2:%3:%4" ).arg ( i ).arg ( layerName ).arg ( fCount .value ( countIt.key () ) ).arg ( geom );
799
+ QString sl = QStringLiteral ( " %1:%2:%3:%4:%5 " ).arg ( i ).arg ( layerName ).arg ( fCount .value ( countIt.key () ) ).arg ( geom, geometryColumnName );
796
800
QgsDebugMsg ( " sub layer: " + sl );
797
801
mSubLayerList << sl;
798
802
}
799
803
}
800
804
}
801
-
802
805
return mSubLayerList ;
803
806
}
804
807
0 commit comments