Skip to content

Commit

Permalink
[mdal] Fix encode/decode driver detection for drivers with _ in name …
Browse files Browse the repository at this point in the history
…(e.g. ESRI_TIN)
  • Loading branch information
nyalldawson committed Oct 6, 2021
1 parent 33d0775 commit efcf8f8
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/providers/mdal/qgsmdalprovider.cpp
Expand Up @@ -1079,7 +1079,7 @@ QVariantMap QgsMdalProviderMetadata::decodeUri( const QString &uri ) const
{
QVariantMap uriComponents;

const QRegularExpression layerRegex( QStringLiteral( "^([a-zA-Z0-9]+?):\"(.*)\"(?::([a-zA-Z0-9]+?$)|($))" ) );
const QRegularExpression layerRegex( QStringLiteral( "^([a-zA-Z0-9_]+?):\"(.*)\"(?::([a-zA-Z0-9_]+?$)|($))" ) );
const QRegularExpressionMatch layerNameMatch = layerRegex.match( uri );
if ( layerNameMatch.hasMatch() )
{
Expand Down
6 changes: 6 additions & 0 deletions tests/src/providers/testqgsmdalprovider.cpp
Expand Up @@ -110,6 +110,12 @@ void TestQgsMdalProvider::encodeDecodeUri()
QCOMPARE( parts.value( QStringLiteral( "driver" ) ).toString(), QStringLiteral( "Ugrid" ) );
QCOMPARE( parts.value( QStringLiteral( "layerName" ) ).toString(), QString() );
QCOMPARE( mdalMetadata->encodeUri( parts ), QStringLiteral( "Ugrid:\"/home/data/test.nc\"" ) );

parts = mdalMetadata->decodeUri( QStringLiteral( "ESRI_TIN:\"/home/data/tdenv9.adf\"" ) );
QCOMPARE( parts.value( QStringLiteral( "path" ) ).toString(), QStringLiteral( "/home/data/tdenv9.adf" ) );
QCOMPARE( parts.value( QStringLiteral( "driver" ) ).toString(), QStringLiteral( "ESRI_TIN" ) );
QCOMPARE( parts.value( QStringLiteral( "layerName" ) ).toString(), QString() );
QCOMPARE( mdalMetadata->encodeUri( parts ), QStringLiteral( "ESRI_TIN:\"/home/data/tdenv9.adf\"" ) );
}

void TestQgsMdalProvider::load()
Expand Down

0 comments on commit efcf8f8

Please sign in to comment.