Skip to content

Commit 1c3f066

Browse files
committed
Merge pull request #2643 from alexbruy/sublayers
More informative layer names when loading GDAL/OGR sublayers
2 parents 9fda6aa + 77a0b88 commit 1c3f066

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

src/app/qgisapp.cpp

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3257,16 +3257,10 @@ bool QgisApp::addVectorLayers( const QStringList &theLayerQStringList, const QSt
32573257
//set friendly name for datasources with only one layer
32583258
QStringList sublayers = layer->dataProvider()->subLayers();
32593259
QStringList elements = sublayers.at( 0 ).split( ':' );
3260-
if ( layer->storageType() != "GeoJSON" )
3261-
{
3262-
while ( elements.size() > 4 )
3263-
{
3264-
elements[1] += ':' + elements[2];
3265-
elements.removeAt( 2 );
3266-
}
32673260

3268-
layer->setLayerName( elements.at( 1 ) );
3269-
}
3261+
Q_ASSERT( elements.size() >= 4 );
3262+
layer->setLayerName( QString( "%1 %2 %3" ).arg( layer->name(), elements.at( 1 ), elements.at( 3 ) ) );
3263+
32703264
myList << layer;
32713265
}
32723266
else
@@ -3486,9 +3480,24 @@ void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
34863480

34873481
if ( chooseSublayersDialog.exec() )
34883482
{
3483+
// create more informative layer names, containing filename as well as sublayer name
3484+
QRegExp rx( "\"(.*)\"" );
3485+
QString uri, name;
3486+
34893487
Q_FOREACH ( int i, chooseSublayersDialog.selectionIndexes() )
34903488
{
3491-
QgsRasterLayer *rlayer = new QgsRasterLayer( sublayers[i], names[i] );
3489+
if ( rx.indexIn( sublayers[i] ) != -1 )
3490+
{
3491+
uri = rx.cap( 1 );
3492+
name = sublayers[i];
3493+
name.replace( uri, QFileInfo( uri ).completeBaseName() );
3494+
}
3495+
else
3496+
{
3497+
name = names[i];
3498+
}
3499+
3500+
QgsRasterLayer *rlayer = new QgsRasterLayer( sublayers[i], name );
34923501
if ( rlayer && rlayer->isValid() )
34933502
{
34943503
addRasterLayer( rlayer );

0 commit comments

Comments
 (0)