15 #ifndef QGSVECTORLAYERFEATUREITERATOR_H 16 #define QGSVECTORLAYERFEATUREITERATOR_H 82 virtual bool rewind()
override;
85 virtual bool close()
override;
91 virtual bool fetchFeature(
QgsFeature& feature )
override;
98 virtual bool prepareSimplification(
const QgsSimplifyMethod& simplifyMethod )
override;
101 void rewindEditBuffer();
104 void prepareJoin(
int fieldIdx );
107 void prepareExpression(
int fieldIdx );
110 void prepareFields();
113 void prepareField(
int fieldIdx );
118 bool fetchNextChangedGeomFeature(
QgsFeature& f );
120 bool fetchNextChangedAttributeFeature(
QgsFeature& f );
147 void addExpressionAttribute(
QgsFeature& f,
int attrIndex );
152 void updateChangedAttributes(
QgsFeature& f );
213 #endif // QGSVECTORLAYERFEATUREITERATOR_H QgsAbstractFeatureSource * mProviderFeatureSource
Wrapper for iterator of features from vector data provider or vector layer.
QgsVectorLayerJoinBuffer * mJoinBuffer
QgsFeatureIterator mProviderIterator
QgsFeatureMap::ConstIterator mFetchAddedFeaturesIt
QgsGeometryMap::ConstIterator mFetchChangedGeomIt
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap
Container of fields for a vector layer.
A geometry is the spatial representation of a feature.
QMap< int, QgsExpression * > mExpressionFieldInfo
QList< QgsField > mAddedAttributes
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QgsVectorLayer * joinLayer
resolved pointer to the joined layer
QMap< const QgsVectorJoinInfo *, FetchJoinInfo > mFetchJoinInfo
Information about joins used in the current select() statement.
Manages joined fields for a vector layer.
int joinField
index of field (of the joined layer) must have equal value
QgsFeatureRequest mChangedFeaturesRequest
Interface that can be optionaly attached to an iterator so its nextFeature() implementaton can check ...
const QgsVectorJoinInfo * joinInfo
cannonical source of information about the join
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
friend class QgsVectorLayerFeatureIterator
This class wraps a request for features to a vector layer (or directly its vector data provider)...
QgsFeatureRequest mProviderRequest
QgsGeometryMap mChangedGeometries
QgsFeatureIds mDeletedFeatureIds
QgsAttributeList mDeletedAttributeIds
QgsExpressionFieldBuffer * mExpressionFieldBuffer
Base class that can be used for any class that is capable of returning features.
QSet< QgsFeatureId > mFetchConsidered
Partial snapshot of vector layer's state (only the members necessary for access to features) ...
QgsVectorLayerFeatureSource(QgsVectorLayer *layer)
int indexOffset
at what position the joined fields start
int targetField
index of field (of this layer) that drives the join
~QgsVectorLayerFeatureSource()
Buffers information about expression fields for a vector layer.
virtual QgsFeatureIterator getFeatures(const QgsFeatureRequest &request) override
Get an iterator for features matching the specified request.
QgsFeatureMap mAddedFeatures
Join information prepared for fast attribute id mapping in QgsVectorLayerJoinBuffer::updateFeatureAtt...
This class contains information about how to simplify geometries fetched from a QgsFeatureIterator.
virtual bool nextFeatureFilterExpression(QgsFeature &f) override
Overrides default method as we only need to filter features in the edit buffer while for others filte...
bool mHasVirtualAttributes
QgsChangedAttributesMap mChangedAttributeValues
Represents a vector layer which manages a vector based data sets.
QgsAttributeList attributes
attributes to fetch
QgsFeatureIterator mChangedFeaturesIterator
Helper template that cares of two things: 1.