Skip to content

Commit 77bf10b

Browse files
committed
vector layer: changing of attributes and geometry of new features doesn't require ChangeGeometry/ChangeAttributeValues capabilities (fixes #12909)
1 parent 402df03 commit 77bf10b

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/core/qgsvectorlayereditbuffer.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,6 @@ bool QgsVectorLayerEditBuffer::deleteFeature( QgsFeatureId fid )
164164

165165
bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* geom )
166166
{
167-
if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
168-
return false;
169-
170167
if ( !L->hasGeometryType() )
171168
{
172169
return false;
@@ -177,6 +174,8 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* ge
177174
if ( !mAddedFeatures.contains( fid ) )
178175
return false;
179176
}
177+
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
178+
return false;
180179

181180
// TODO: check compatible geometry
182181

@@ -187,14 +186,15 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* ge
187186

188187
bool QgsVectorLayerEditBuffer::changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue )
189188
{
190-
if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) )
191-
return false;
192-
193189
if ( FID_IS_NEW( fid ) )
194190
{
195191
if ( !mAddedFeatures.contains( fid ) )
196192
return false;
197193
}
194+
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) )
195+
{
196+
return false;
197+
}
198198

199199
if ( field < 0 || field >= L->pendingFields().count() ||
200200
L->pendingFields().fieldOrigin( field ) == QgsFields::OriginJoin ||

0 commit comments

Comments
 (0)