diff --git a/src/core/providers/gdal/qgsgdalprovider.cpp b/src/core/providers/gdal/qgsgdalprovider.cpp
index 3da866de0b4f..b18d3d267687 100644
--- a/src/core/providers/gdal/qgsgdalprovider.cpp
+++ b/src/core/providers/gdal/qgsgdalprovider.cpp
@@ -526,6 +526,10 @@ QString QgsGdalProvider::htmlMetadata() const
QString myMetadata;
+ // Use the base dataset to display metadata, rather than potentially the
+ // warped VRT one, which might lack it.
+ GDALDatasetH dsForMetadata = mGdalBaseDataset;
+
// GDAL Driver description
myMetadata += QStringLiteral( "
" ) + tr( "GDAL Driver Description" ) + QStringLiteral( " | " ) + mDriverName + QStringLiteral( " |
\n" );
@@ -533,16 +537,16 @@ QString QgsGdalProvider::htmlMetadata() const
myMetadata += QStringLiteral( "" ) + tr( "GDAL Driver Metadata" ) + QStringLiteral( " | " ) + QString( GDALGetMetadataItem( hDriver, GDAL_DMD_LONGNAME, nullptr ) ) + QStringLiteral( " |
\n" );
// Dataset description
- myMetadata += QStringLiteral( "" ) + tr( "Dataset Description" ) + QStringLiteral( " | " ) + QString::fromUtf8( GDALGetDescription( mGdalDataset ) ) + QStringLiteral( " |
\n" );
+ myMetadata += QStringLiteral( "" ) + tr( "Dataset Description" ) + QStringLiteral( " | " ) + QString::fromUtf8( GDALGetDescription( dsForMetadata ) ) + QStringLiteral( " |
\n" );
// compression
- QString compression = QString( GDALGetMetadataItem( mGdalDataset, "COMPRESSION", "IMAGE_STRUCTURE" ) );
+ QString compression = QString( GDALGetMetadataItem( dsForMetadata, "COMPRESSION", "IMAGE_STRUCTURE" ) );
myMetadata += QStringLiteral( "" ) + tr( "Compression" ) + QStringLiteral( " | " ) + compression + QStringLiteral( " |
\n" );
// Band details
- for ( int i = 1; i <= GDALGetRasterCount( mGdalDataset ); ++i )
+ for ( int i = 1; i <= GDALGetRasterCount( dsForMetadata ); ++i )
{
- GDALRasterBandH gdalBand = GDALGetRasterBand( mGdalDataset, i );
+ GDALRasterBandH gdalBand = GDALGetRasterBand( dsForMetadata, i );
char **GDALmetadata = GDALGetMetadata( gdalBand, nullptr );
myMetadata += QStringLiteral( "" ) + tr( "Band %1" ).arg( i ) + QStringLiteral( " | " );
if ( GDALmetadata )
@@ -574,7 +578,7 @@ QString QgsGdalProvider::htmlMetadata() const
myMetadata += tr( "Mask band (exposed as alpha band)" ) + QStringLiteral( " \n" );
}
- char **GDALmetadata = GDALGetMetadata( mGdalDataset, nullptr );
+ char **GDALmetadata = GDALGetMetadata( dsForMetadata, nullptr );
if ( GDALmetadata )
{
QStringList metadata = QgsOgrUtils::cStringListToQStringList( GDALmetadata );
|