@@ -95,18 +95,25 @@ QVector<QgsDataItem *> QgsAfsConnectionItem::createChildren()
95
95
{
96
96
QVector<QgsDataItem *> layers;
97
97
QString errorTitle, errorMessage;
98
- QVariantMap serviceData = QgsArcGisRestUtils::getServiceInfo ( mUrl , errorTitle, errorMessage );
98
+ const QVariantMap serviceData = QgsArcGisRestUtils::getServiceInfo ( mUrl , errorTitle, errorMessage );
99
99
if ( serviceData.isEmpty () )
100
100
{
101
101
return layers;
102
102
}
103
- QString authid = QgsArcGisRestUtils::parseSpatialReference ( serviceData[ QStringLiteral ( " spatialReference" )] .toMap () ).authid ();
103
+ const QString authid = QgsArcGisRestUtils::parseSpatialReference ( serviceData. value ( QStringLiteral ( " spatialReference" ) ) .toMap () ).authid ();
104
104
105
- foreach ( const QVariant &layerInfo, serviceData[" layers" ].toList () )
105
+ const QVariantList layerInfoList = serviceData[QStringLiteral ( " layers" )].toList ();
106
+ for ( const QVariant &layerInfo : layerInfoList )
106
107
{
107
- QVariantMap layerInfoMap = layerInfo.toMap ();
108
- QString id = layerInfoMap[QStringLiteral ( " id" )].toString ();
109
- QgsAfsLayerItem *layer = new QgsAfsLayerItem ( this , mName , mUrl + " /" + id, layerInfoMap[QStringLiteral ( " name" )].toString (), authid );
108
+ const QVariantMap layerInfoMap = layerInfo.toMap ();
109
+ if ( !layerInfoMap.value ( QStringLiteral ( " subLayerIds" ) ).toList ().empty () )
110
+ {
111
+ // group layer - do not show as it is not possible to load
112
+ // TODO - show nested groups
113
+ continue ;
114
+ }
115
+ const QString id = layerInfoMap.value ( QStringLiteral ( " id" ) ).toString ();
116
+ QgsAfsLayerItem *layer = new QgsAfsLayerItem ( this , mName , mUrl + " /" + id, layerInfoMap.value ( QStringLiteral ( " name" ) ).toString (), authid );
110
117
layers.append ( layer );
111
118
}
112
119
0 commit comments