From 729202cb794946d2b9569e9608a48a8fcb3ef633 Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Fri, 19 Feb 2021 15:27:32 +0100 Subject: [PATCH] Set gathered statistics to none when there are no statistics Fixes #41662 (cherry picked from commit caa19170ba3e14b8a2db4cef7a24a3a0e247d096) --- src/core/providers/gdal/qgsgdalprovider.cpp | 4 ++++ src/core/raster/qgsrasterlayer.cpp | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/providers/gdal/qgsgdalprovider.cpp b/src/core/providers/gdal/qgsgdalprovider.cpp index da733fc7529a..20dbfdac1a90 100644 --- a/src/core/providers/gdal/qgsgdalprovider.cpp +++ b/src/core/providers/gdal/qgsgdalprovider.cpp @@ -2863,6 +2863,10 @@ QgsRasterBandStats QgsGdalProvider::bandStatistics( int bandNo, int stats, const QgsDebugMsgLevel( QStringLiteral( "STDDEV %1" ).arg( myRasterBandStats.stdDev ), 2 ); #endif } + else + { + myRasterBandStats.statsGathered = QgsRasterBandStats::Stats::None; + } mStatistics.append( myRasterBandStats ); return myRasterBandStats; diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp index 932a49ff8c04..c37cd77c6b50 100644 --- a/src/core/raster/qgsrasterlayer.cpp +++ b/src/core/raster/qgsrasterlayer.cpp @@ -982,8 +982,8 @@ void QgsRasterLayer::computeMinMax( int band, if ( limits == QgsRasterMinMaxOrigin::MinMax ) { QgsRasterBandStats myRasterBandStats = mDataProvider->bandStatistics( band, QgsRasterBandStats::Min | QgsRasterBandStats::Max, extent, sampleSize ); - // Check if statistics were actually gathered, 0 means a failure - if ( myRasterBandStats.elementCount == 0 ) + // Check if statistics were actually gathered, None means a failure + if ( myRasterBandStats.statsGathered == QgsRasterBandStats::Stats::None ) { // Best guess we can do switch ( mDataProvider->dataType( band ) )