15 #ifndef QGSVECTORLAYERFEATUREITERATOR_H 16 #define QGSVECTORLAYERFEATUREITERATOR_H 77 virtual bool rewind()
override;
80 virtual bool close()
override;
84 virtual bool fetchFeature(
QgsFeature& feature )
override;
91 virtual bool prepareSimplification(
const QgsSimplifyMethod& simplifyMethod )
override;
107 void rewindEditBuffer();
109 void prepareExpressions();
111 bool fetchNextChangedGeomFeature(
QgsFeature& f );
112 bool fetchNextChangedAttributeFeature(
QgsFeature& f );
128 void updateChangedAttributes(
QgsFeature& f );
145 void addJoinedAttributesCached(
QgsFeature& f,
const QVariant& joinValue )
const;
146 void addJoinedAttributesDirect(
QgsFeature& f,
const QVariant& joinValue )
const;
165 #endif // QGSVECTORLAYERFEATUREITERATOR_H QgsAbstractFeatureSource * mProviderFeatureSource
Wrapper for iterator of features from vector data provider or vector layer.
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
QgsVectorLayerJoinBuffer * mJoinBuffer
QgsFeatureIterator mProviderIterator
QgsFeatureMap::ConstIterator mFetchAddedFeaturesIt
QgsGeometryMap::ConstIterator mFetchChangedGeomIt
QSet< QgsFeatureId > QgsFeatureIds
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap
Container of fields for a vector layer.
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
const QgsVectorJoinInfo * joinInfo
cannonical source of information about the join
friend class QgsVectorLayerFeatureIterator
This class wraps a request for features to a vector layer (or directly its vector data provider)...
QList< int > QgsAttributeList
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
QMap< QgsFeatureId, QgsFeature > QgsFeatureMap
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
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
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.
Abstract base class for simplify geometries using a specific algorithm.
QgsAttributeList attributes
attributes to fetch
QgsFeatureIterator mChangedFeaturesIterator
helper template that cares of two things: 1.