15#ifndef QGSVECTORLAYEREDITBUFFER_H
16#define QGSVECTORLAYEREDITBUFFER_H
44 virtual bool isModified()
const;
66 virtual bool changeAttributeValue(
QgsFeatureId fid,
int field,
const QVariant &newValue,
const QVariant &oldValue = QVariant() );
78 virtual bool addAttribute(
const QgsField &field );
81 virtual bool deleteAttribute(
int attr );
88 virtual bool renameAttribute(
int attr,
const QString &newName );
105 virtual bool commitChanges( QStringList &commitErrors );
108 virtual void rollBack();
210 void undoIndexChanged(
int index );
261 void updateChangedAttributes(
QgsFeature &f );
264 void handleAttributeAdded(
int index );
267 void handleAttributeDeleted(
int index );
270 void updateAttributeMapIndex(
QgsAttributeMap &attrs,
int index,
int offset )
const;
272 void updateLayerFields();
324 int mBlockModifiedSignals = 0;
326 friend class QgsGrassProvider;
337 bool commitChangesCheckGeometryTypeCompatibility( QStringList &commitErrors );
345 bool commitChangesDeleteAttributes(
bool &attributesDeleted, QStringList &commitErrors );
353 bool commitChangesRenameAttributes(
bool &attributesRenamed, QStringList &commitErrors );
361 bool commitChangesAddAttributes(
bool &attributesAdded, QStringList &commitErrors );
369 bool commitChangesCheckAttributesModifications(
const QgsFields oldFields, QStringList &commitErrors );
377 bool commitChangesChangeAttributes(
bool &attributesChanged, QStringList &commitErrors );
385 bool commitChangesDeleteFeatures(
bool &featuresDeleted, QStringList &commitErrors );
393 bool commitChangesAddFeatures(
bool &featuresAdded, QStringList &commitErrors );
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Encapsulate a field in an attribute table or data source.
Container of fields for a vector layer.
A geometry is the spatial representation of a feature.
The edit buffer group manages a group of edit buffers.
void attributeRenamed(int idx, const QString &newName)
Emitted when an attribute has been renamed.
void committedAttributesDeleted(const QString &layerId, const QgsAttributeList &deletedAttributes)
Signals emitted after committing changes.
bool isFeatureDeleted(QgsFeatureId id) const
Returns true if the specified feature ID has been deleted but not committed.
QgsFeatureMap mAddedFeatures
New features which are not committed.
QgsFeatureIds deletedFeatureIds() const
Returns a list of deleted feature IDs which are not committed.
QgsChangedAttributesMap changedAttributeValues() const
Returns a map of features with changed attributes values which are not committed.
void committedAttributeValuesChanges(const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues)
void geometryChanged(QgsFeatureId fid, const QgsGeometry &geom)
Emitted when a feature's geometry is changed.
bool isFeatureAdded(QgsFeatureId id) const
Returns true if the specified feature ID has been added but not committed.
void committedAttributesAdded(const QString &layerId, const QList< QgsField > &addedAttributes)
QgsVectorLayerEditBuffer()=default
Constructor for QgsVectorLayerEditBuffer.
QgsFieldNameMap mRenamedAttributes
Renamed attributes which are not committed.
QgsGeometryMap mChangedGeometries
Changed geometries which are not committed.
void committedAttributesRenamed(const QString &layerId, const QgsFieldNameMap &renamedAttributes)
Emitted after committing an attribute rename.
QgsAttributeList mDeletedAttributeIds
Deleted attributes fields which are not committed. The list is kept sorted.
QgsFeatureMap addedFeatures() const
Returns a map of new features which are not committed.
QgsFeatureIds mDeletedFeatureIds
Deleted feature IDs which are not committed.
bool isAttributeDeleted(int index) const
Returns true if the specified attribute has been deleted but not committed.
void committedFeaturesAdded(const QString &layerId, const QgsFeatureList &addedFeatures)
void featureDeleted(QgsFeatureId fid)
QgsGeometryMap changedGeometries() const
Returns a map of features with changed geometries which are not committed.
QList< QgsField > addedAttributes() const
Returns a list of added attributes fields which are not committed.
bool isFeatureAttributesChanged(QgsFeatureId id) const
Returns true if the specified feature ID has had an attribute changed but not committed.
bool isFeatureGeometryChanged(QgsFeatureId id) const
Returns true if the specified feature ID has had its geometry changed but not committed.
QgsAttributeList deletedAttributeIds() const
Returns a list of deleted attributes fields which are not committed.
void attributeAdded(int idx)
void committedGeometriesChanges(const QString &layerId, const QgsGeometryMap &changedGeometries)
void attributeDeleted(int idx)
void featureAdded(QgsFeatureId fid)
void attributeValueChanged(QgsFeatureId fid, int idx, const QVariant &)
QgsChangedAttributesMap mChangedAttributeValues
Changed attributes values which are not committed.
QList< QgsField > mAddedAttributes
Added attributes fields which are not committed.
void layerModified()
Emitted when modifications has been done on layer.
void committedFeaturesRemoved(const QString &layerId, const QgsFeatureIds &deletedFeatureIds)
Undo command for adding a new attribute to a vector layer.
Undo command for adding a feature to a vector layer.
Undo command for modifying an attribute of a feature from a vector layer.
Undo command for modifying the geometry of a feature from a vector layer.
Undo command for removing an existing attribute from a vector layer.
Undo command for deleting a feature from a vector layer.
Undo command for renaming an existing attribute of a vector layer.
Base class for undo commands within a QgsVectorLayerEditBuffer.
Undo command for adding attri to a vector layer in transaction group.
Undo command for adding a feature to a vector layer in transaction group mode.
Undo command for changing attr value from a vector layer in transaction group.
Undo command for changing attributes' values from a vector layer in transaction group.
Undo command for changing feature geometry from a vector layer in transaction group.
Undo command for deleting attri of a vector layer in transaction group.
Undo command for deleting features from a vector layer in transaction group.
Undo command for deleting attri of a vector layer in transaction group.
Undo command for running a specific sql query in transaction group.
Undo command for vector layer in transaction group mode.
Represents a vector layer which manages a vector based data sets.
QMap< int, QString > QgsFieldNameMap
QMap< int, QVariant > QgsAttributeMap
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
QList< int > QgsAttributeList
QSet< int > QgsAttributeIds
QList< int > QgsAttributeList
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap