Skip to content

Commit 38d458c

Browse files
committed
Fix crash with maximumValue/minimumValue for virtual fields
1 parent e5a8749 commit 38d458c

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/core/qgsvectorlayer.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2882,7 +2882,11 @@ QVariant QgsVectorLayer::minimumValue( int index )
28822882
else if ( origin == QgsFields::OriginEdit || origin == QgsFields::OriginExpression )
28832883
{
28842884
// the layer is editable, but in certain cases it can still be avoided going through all features
2885-
if ( mEditBuffer->mDeletedFeatureIds.isEmpty() && mEditBuffer->mAddedFeatures.isEmpty() && !mEditBuffer->mDeletedAttributeIds.contains( index ) && mEditBuffer->mChangedAttributeValues.isEmpty() )
2885+
if ( origin == QgsFields::OriginEdit &&
2886+
mEditBuffer->mDeletedFeatureIds.isEmpty() &&
2887+
mEditBuffer->mAddedFeatures.isEmpty() && !
2888+
mEditBuffer->mDeletedAttributeIds.contains( index ) &&
2889+
mEditBuffer->mChangedAttributeValues.isEmpty() )
28862890
{
28872891
return mDataProvider->minimumValue( index );
28882892
}
@@ -2937,10 +2941,11 @@ QVariant QgsVectorLayer::maximumValue( int index )
29372941

29382942
return vl->maximumValue( sourceLayerIndex );
29392943
}
2940-
else if ( origin == QgsFields::OriginEdit )
2944+
else if ( origin == QgsFields::OriginEdit || origin == QgsFields::OriginExpression )
29412945
{
29422946
// the layer is editable, but in certain cases it can still be avoided going through all features
2943-
if ( mEditBuffer->mDeletedFeatureIds.isEmpty() &&
2947+
if ( origin == QgsFields::OriginEdit &&
2948+
mEditBuffer->mDeletedFeatureIds.isEmpty() &&
29442949
mEditBuffer->mAddedFeatures.isEmpty() &&
29452950
!mEditBuffer->mDeletedAttributeIds.contains( index ) &&
29462951
mEditBuffer->mChangedAttributeValues.isEmpty() )

0 commit comments

Comments
 (0)