mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-12 00:02:25 -04:00
vector layer: changing of attributes and geometry of new features doesn't require ChangeGeometry/ChangeAttributeValues capabilities (fixes #12909)
This commit is contained in:
parent
402df0323e
commit
77bf10b752
@ -164,9 +164,6 @@ bool QgsVectorLayerEditBuffer::deleteFeature( QgsFeatureId fid )
|
||||
|
||||
bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* geom )
|
||||
{
|
||||
if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
|
||||
return false;
|
||||
|
||||
if ( !L->hasGeometryType() )
|
||||
{
|
||||
return false;
|
||||
@ -177,6 +174,8 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* ge
|
||||
if ( !mAddedFeatures.contains( fid ) )
|
||||
return false;
|
||||
}
|
||||
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
|
||||
return false;
|
||||
|
||||
// TODO: check compatible geometry
|
||||
|
||||
@ -187,14 +186,15 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* ge
|
||||
|
||||
bool QgsVectorLayerEditBuffer::changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue )
|
||||
{
|
||||
if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) )
|
||||
return false;
|
||||
|
||||
if ( FID_IS_NEW( fid ) )
|
||||
{
|
||||
if ( !mAddedFeatures.contains( fid ) )
|
||||
return false;
|
||||
}
|
||||
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( field < 0 || field >= L->pendingFields().count() ||
|
||||
L->pendingFields().fieldOrigin( field ) == QgsFields::OriginJoin ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user