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 )
|
bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* geom )
|
||||||
{
|
{
|
||||||
if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ( !L->hasGeometryType() )
|
if ( !L->hasGeometryType() )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -177,6 +174,8 @@ bool QgsVectorLayerEditBuffer::changeGeometry( QgsFeatureId fid, QgsGeometry* ge
|
|||||||
if ( !mAddedFeatures.contains( fid ) )
|
if ( !mAddedFeatures.contains( fid ) )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeGeometries ) )
|
||||||
|
return false;
|
||||||
|
|
||||||
// TODO: check compatible geometry
|
// 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 )
|
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 ( FID_IS_NEW( fid ) )
|
||||||
{
|
{
|
||||||
if ( !mAddedFeatures.contains( fid ) )
|
if ( !mAddedFeatures.contains( fid ) )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else if ( !( L->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if ( field < 0 || field >= L->pendingFields().count() ||
|
if ( field < 0 || field >= L->pendingFields().count() ||
|
||||||
L->pendingFields().fieldOrigin( field ) == QgsFields::OriginJoin ||
|
L->pendingFields().fieldOrigin( field ) == QgsFields::OriginJoin ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user