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 );