@@ -842,28 +842,31 @@ void QgsPalettedRendererClassGatherer::run()
842
842
mFeedback = new QgsRasterBlockFeedback ();
843
843
connect ( mFeedback , &QgsRasterBlockFeedback::progressChanged, this , &QgsPalettedRendererClassGatherer::progressChanged );
844
844
845
- QgsPalettedRasterRenderer::ClassData newClasses = QgsPalettedRasterRenderer::classDataFromRaster ( mLayer ->dataProvider (), mBandNumber , mRamp .get (), mFeedback );
846
-
847
- // combine existing classes with new classes
848
- QgsPalettedRasterRenderer::ClassData::iterator classIt = newClasses.begin ();
849
- emit progressChanged ( 0 );
850
- qlonglong i = 0 ;
851
- for ( ; classIt != newClasses.end (); ++classIt )
845
+ if ( mProvider )
852
846
{
853
- // check if existing classes contains this same class
854
- for ( const QgsPalettedRasterRenderer::Class &existingClass : std::as_const ( mClasses ) )
847
+ QgsPalettedRasterRenderer::ClassData newClasses = QgsPalettedRasterRenderer::classDataFromRaster ( mProvider .get (), mBandNumber , mRamp .get (), mFeedback );
848
+
849
+ // combine existing classes with new classes
850
+ QgsPalettedRasterRenderer::ClassData::iterator classIt = newClasses.begin ();
851
+ emit progressChanged ( 0 );
852
+ qlonglong i = 0 ;
853
+ for ( ; classIt != newClasses.end (); ++classIt )
855
854
{
856
- if ( existingClass.value == classIt->value )
855
+ // check if existing classes contains this same class
856
+ for ( const QgsPalettedRasterRenderer::Class &existingClass : std::as_const ( mClasses ) )
857
857
{
858
- classIt->color = existingClass.color ;
859
- classIt->label = existingClass.label ;
860
- break ;
858
+ if ( existingClass.value == classIt->value )
859
+ {
860
+ classIt->color = existingClass.color ;
861
+ classIt->label = existingClass.label ;
862
+ break ;
863
+ }
861
864
}
865
+ i ++;
866
+ emit progressChanged ( 100 * ( i / static_cast <float >( newClasses.count () ) ) );
862
867
}
863
- i ++;
864
- emit progressChanged ( 100 * ( i / static_cast <float >( newClasses.count () ) ) );
868
+ mClasses = newClasses;
865
869
}
866
- mClasses = newClasses;
867
870
868
871
// be overly cautious - it's *possible* stop() might be called between deleting mFeedback and nulling it
869
872
mFeedbackMutex .lock ();
0 commit comments