QGIS API Documentation 3.41.0-Master (3440c17df1d)
Loading...
Searching...
No Matches
Public Member Functions | List of all members
QgsVectorLayerEditPassthrough Class Reference

#include <qgsvectorlayereditpassthrough.h>

Inheritance diagram for QgsVectorLayerEditPassthrough:
Inheritance graph
[legend]

Public Member Functions

 QgsVectorLayerEditPassthrough (QgsVectorLayer *layer)
 
bool addAttribute (const QgsField &field) override
 Adds an attribute field (but does not commit it) returns true if the field was added.
 
bool addFeature (QgsFeature &f) override
 Adds a feature.
 
bool addFeatures (QgsFeatureList &features) override
 Insert a copy of the given features into the layer (but does not commit it)
 
bool changeAttributeValue (QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue=QVariant()) override
 Changed an attribute value (but does not commit it)
 
bool changeAttributeValues (QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues) override
 Changes values of attributes (but does not commit it).
 
bool changeGeometry (QgsFeatureId fid, const QgsGeometry &geom) override
 Change feature's geometry.
 
bool commitChanges (QStringList &commitErrors) override
 Attempts to commit any changes to disk.
 
bool deleteAttribute (int attr) override
 Deletes an attribute field (but does not commit it)
 
bool deleteFeature (QgsFeatureId fid) override
 Delete a feature from the layer (but does not commit it)
 
bool deleteFeatures (const QgsFeatureIds &fids) override
 Deletes a set of features from the layer (but does not commit it)
 
bool isModified () const override
 Returns true if the provider has been modified since the last commit.
 
bool renameAttribute (int attr, const QString &newName) override
 Renames an attribute field (but does not commit it)
 
void rollBack () override
 Stop editing and discard the edits.
 
bool update (QgsTransaction *transaction, const QString &sql, const QString &name)
 Update underlying data with a SQL query embedded in a transaction.
 
- Public Member Functions inherited from QgsVectorLayerEditBuffer
 QgsVectorLayerEditBuffer (QgsVectorLayer *layer)
 
QList< QgsFieldaddedAttributes () const
 Returns a list of added attributes fields which are not committed.
 
QgsFeatureMap addedFeatures () const
 Returns a map of new features which are not committed.
 
QgsFeatureIds allAddedOrEditedFeatures () const
 Returns a list of the features IDs for all newly added or edited features in the buffer.
 
QgsChangedAttributesMap changedAttributeValues () const
 Returns a map of features with changed attributes values which are not committed.
 
QgsGeometryMap changedGeometries () const
 Returns a map of features with changed geometries which are not committed.
 
QgsAttributeList deletedAttributeIds () const
 Returns a list of deleted attributes fields which are not committed.
 
QgsFeatureIds deletedFeatureIds () const
 Returns a list of deleted feature IDs which are not committed.
 
QgsVectorLayerEditBufferGroupeditBufferGroup () const
 Returns the parent edit buffer group for this edit buffer, or nullptr if not part of a group.
 
bool isAttributeDeleted (int index) const
 Returns true if the specified attribute has been deleted but not committed.
 
bool isFeatureAdded (QgsFeatureId id) const
 Returns true if the specified feature ID has been added but not committed.
 
bool isFeatureAttributesChanged (QgsFeatureId id) const
 Returns true if the specified feature ID has had an attribute changed but not committed.
 
bool isFeatureDeleted (QgsFeatureId id) const
 Returns true if the specified feature ID has been deleted but not committed.
 
bool isFeatureGeometryChanged (QgsFeatureId id) const
 Returns true if the specified feature ID has had its geometry changed but not committed.
 
void setEditBufferGroup (QgsVectorLayerEditBufferGroup *editBufferGroup)
 Set the parent edit buffer group for this edit buffer.
 
void updateFields (QgsFields &fields)
 Updates fields.
 

Additional Inherited Members

- Signals inherited from QgsVectorLayerEditBuffer
void attributeAdded (int idx)
 Emitted when an attribute was added to the buffer.
 
void attributeDeleted (int idx)
 Emitted when an attribute was deleted from the buffer.
 
void attributeRenamed (int idx, const QString &newName)
 Emitted when an attribute has been renamed.
 
void attributeValueChanged (QgsFeatureId fid, int idx, const QVariant &value)
 Emitted when a feature's attribute value has been changed.
 
void committedAttributesAdded (const QString &layerId, const QList< QgsField > &addedAttributes)
 Emitted after attribute addition has been committed to the layer.
 
void committedAttributesDeleted (const QString &layerId, const QgsAttributeList &deletedAttributes)
 Emitted after attribute deletion has been committed to the layer.
 
void committedAttributesRenamed (const QString &layerId, const QgsFieldNameMap &renamedAttributes)
 Emitted after committing an attribute rename.
 
void committedAttributeValuesChanges (const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues)
 Emitted after feature attribute value changes have been committed to the layer.
 
void committedFeaturesAdded (const QString &layerId, const QgsFeatureList &addedFeatures)
 Emitted after feature addition has been committed to the layer.
 
void committedFeaturesRemoved (const QString &layerId, const QgsFeatureIds &deletedFeatureIds)
 Emitted after feature removal has been committed to the layer.
 
void committedGeometriesChanges (const QString &layerId, const QgsGeometryMap &changedGeometries)
 Emitted after feature geometry changes have been committed to the layer.
 
void featureAdded (QgsFeatureId fid)
 Emitted when a feature has been added to the buffer.
 
void featureDeleted (QgsFeatureId fid)
 Emitted when a feature was deleted from the buffer.
 
void geometryChanged (QgsFeatureId fid, const QgsGeometry &geom)
 Emitted when a feature's geometry is changed.
 
void layerModified ()
 Emitted when modifications has been done on layer.
 
- Protected Slots inherited from QgsVectorLayerEditBuffer
void undoIndexChanged (int index)
 
- Protected Member Functions inherited from QgsVectorLayerEditBuffer
 QgsVectorLayerEditBuffer ()=default
 
void handleAttributeAdded (int index)
 Update added and changed features after addition of an attribute.
 
void handleAttributeDeleted (int index)
 Update added and changed features after removal of an attribute.
 
void updateAttributeMapIndex (QgsAttributeMap &attrs, int index, int offset) const
 Updates an index in an attribute map to a new value (for updates of changed attributes)
 
void updateChangedAttributes (QgsFeature &f)
 Update feature with uncommitted attribute updates.
 
void updateFeatureGeometry (QgsFeature &f)
 Update feature with uncommitted geometry updates.
 
void updateLayerFields ()
 
- Protected Attributes inherited from QgsVectorLayerEditBuffer
QgsVectorLayerL = nullptr
 
QList< QgsFieldmAddedAttributes
 Added attributes fields which are not committed.
 
QgsFeatureMap mAddedFeatures
 New features which are not committed.
 
int mBlockModifiedSignals = 0
 
QgsChangedAttributesMap mChangedAttributeValues
 Changed attributes values which are not committed.
 
QgsGeometryMap mChangedGeometries
 Changed geometries which are not committed.
 
QgsAttributeList mDeletedAttributeIds
 Deleted attributes fields which are not committed. The list is kept sorted.
 
QgsFeatureIds mDeletedFeatureIds
 Deleted feature IDs which are not committed.
 
QgsVectorLayerEditBufferGroupmEditBufferGroup = nullptr
 
QgsFieldNameMap mRenamedAttributes
 Renamed attributes which are not committed.
 

Detailed Description

Definition at line 35 of file qgsvectorlayereditpassthrough.h.

Constructor & Destructor Documentation

◆ QgsVectorLayerEditPassthrough()

QgsVectorLayerEditPassthrough::QgsVectorLayerEditPassthrough ( QgsVectorLayer layer)

Definition at line 23 of file qgsvectorlayereditpassthrough.cpp.

Member Function Documentation

◆ addAttribute()

bool QgsVectorLayerEditPassthrough::addAttribute ( const QgsField field)
overridevirtual

Adds an attribute field (but does not commit it) returns true if the field was added.

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 95 of file qgsvectorlayereditpassthrough.cpp.

◆ addFeature()

bool QgsVectorLayerEditPassthrough::addFeature ( QgsFeature f)
overridevirtual

Adds a feature.

Parameters
ffeature to add
Returns
true in case of success and false in case of error

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 49 of file qgsvectorlayereditpassthrough.cpp.

◆ addFeatures()

bool QgsVectorLayerEditPassthrough::addFeatures ( QgsFeatureList features)
overridevirtual

Insert a copy of the given features into the layer (but does not commit it)

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 60 of file qgsvectorlayereditpassthrough.cpp.

◆ changeAttributeValue()

bool QgsVectorLayerEditPassthrough::changeAttributeValue ( QgsFeatureId  fid,
int  field,
const QVariant &  newValue,
const QVariant &  oldValue = QVariant() 
)
overridevirtual

Changed an attribute value (but does not commit it)

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 85 of file qgsvectorlayereditpassthrough.cpp.

◆ changeAttributeValues()

bool QgsVectorLayerEditPassthrough::changeAttributeValues ( QgsFeatureId  fid,
const QgsAttributeMap newValues,
const QgsAttributeMap oldValues 
)
overridevirtual

Changes values of attributes (but does not commit it).

Returns
true if attributes are well updated, false otherwise

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 90 of file qgsvectorlayereditpassthrough.cpp.

◆ changeGeometry()

bool QgsVectorLayerEditPassthrough::changeGeometry ( QgsFeatureId  fid,
const QgsGeometry geom 
)
overridevirtual

Change feature's geometry.

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 80 of file qgsvectorlayereditpassthrough.cpp.

◆ commitChanges()

bool QgsVectorLayerEditPassthrough::commitChanges ( QStringList &  commitErrors)
overridevirtual

Attempts to commit any changes to disk.

Returns the result of the attempt. If a commit fails, the in-memory changes are left alone.

This allows editing to continue if the commit failed on e.g. a disallowed value in a Postgres database - the user can re-edit and try again.

The commits occur in distinct stages, (add attributes, add features, change attribute values, change geometries, delete features, delete attributes) so if a stage fails, it's difficult to roll back cleanly. Therefore any error message also includes which stage failed so that the user has some chance of repairing the damage cleanly.

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 110 of file qgsvectorlayereditpassthrough.cpp.

◆ deleteAttribute()

bool QgsVectorLayerEditPassthrough::deleteAttribute ( int  attr)
overridevirtual

Deletes an attribute field (but does not commit it)

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 100 of file qgsvectorlayereditpassthrough.cpp.

◆ deleteFeature()

bool QgsVectorLayerEditPassthrough::deleteFeature ( QgsFeatureId  fid)
overridevirtual

Delete a feature from the layer (but does not commit it)

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 70 of file qgsvectorlayereditpassthrough.cpp.

◆ deleteFeatures()

bool QgsVectorLayerEditPassthrough::deleteFeatures ( const QgsFeatureIds fid)
overridevirtual

Deletes a set of features from the layer (but does not commit it)

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 75 of file qgsvectorlayereditpassthrough.cpp.

◆ isModified()

bool QgsVectorLayerEditPassthrough::isModified ( ) const
overridevirtual

Returns true if the provider has been modified since the last commit.

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 29 of file qgsvectorlayereditpassthrough.cpp.

◆ renameAttribute()

bool QgsVectorLayerEditPassthrough::renameAttribute ( int  attr,
const QString &  newName 
)
overridevirtual

Renames an attribute field (but does not commit it)

Parameters
attrattribute index
newNamenew name of field

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 105 of file qgsvectorlayereditpassthrough.cpp.

◆ rollBack()

void QgsVectorLayerEditPassthrough::rollBack ( )
overridevirtual

Stop editing and discard the edits.

Reimplemented from QgsVectorLayerEditBuffer.

Definition at line 116 of file qgsvectorlayereditpassthrough.cpp.

◆ update()

bool QgsVectorLayerEditPassthrough::update ( QgsTransaction transaction,
const QString &  sql,
const QString &  name 
)

Update underlying data with a SQL query embedded in a transaction.

Parameters
transactionTransaction in which the sql query has been run
sqlThe SQL query updating data
nameThe name of the undo/redo command
Returns
true if the undo/redo command is well added to the stack, false otherwise

Definition at line 121 of file qgsvectorlayereditpassthrough.cpp.


The documentation for this class was generated from the following files: