| QGIS API Documentation
    3.16.0-Hannover (43b64b13f3)
    | 
 
 
 
Go to the documentation of this file.
   15 #ifndef QGSFEATUREFILTERMODELBASE_H 
   16 #define QGSFEATUREFILTERMODELBASE_H 
   18 #include <QAbstractItemModel> 
   34     Q_PROPERTY( 
QgsVectorLayer *sourceLayer READ sourceLayer WRITE setSourceLayer NOTIFY sourceLayerChanged )
 
   35     Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
 
   36     Q_PROPERTY( QString filterValue READ filterValue WRITE setFilterValue NOTIFY filterValueChanged )
 
   37     Q_PROPERTY( QString filterExpression READ filterExpression WRITE setFilterExpression NOTIFY filterExpressionChanged )
 
   38     Q_PROPERTY( 
bool allowNull READ allowNull WRITE setAllowNull NOTIFY allowNullChanged )
 
   39     Q_PROPERTY( 
bool fetchGeometry READ fetchGeometry WRITE setFetchGeometry NOTIFY fetchGeometryChanged )
 
   40     Q_PROPERTY( 
int fetchLimit READ fetchLimit WRITE setFetchLimit NOTIFY fetchLimitChanged )
 
   41     Q_PROPERTY( 
int extraIdentifierValueIndex READ extraIdentifierValueIndex NOTIFY extraIdentifierValueIndexChanged )
 
   50       IdentifierValueRole = Qt::UserRole, 
 
   79     QString displayExpression() 
const;
 
   87     void setDisplayExpression( 
const QString &displayExpression );
 
   94     QString filterValue() 
const;
 
  101     void setFilterValue( 
const QString &filterValue );
 
  103     QModelIndex index( 
int row, 
int column, 
const QModelIndex &parent ) 
const override;
 
  104     QModelIndex parent( 
const QModelIndex &child ) 
const override;
 
  105     int rowCount( 
const QModelIndex &parent ) 
const override;
 
  111     QVariant data( 
const QModelIndex &index, 
int role ) 
const override;
 
  117     QString filterExpression() 
const;
 
  123     void setFilterExpression( 
const QString &filterExpression );
 
  128     bool isLoading() 
const;
 
  139     int extraIdentifierValueIndex() 
const;
 
  144     bool extraValueDoesNotExist() 
const;
 
  149     bool allowNull() 
const;
 
  154     void setAllowNull( 
bool allowNull );
 
  159     bool fetchGeometry() 
const;
 
  164     void setFetchGeometry( 
bool fetchGeometry );
 
  169     int fetchLimit() 
const;
 
  175     void setFetchLimit( 
int fetchLimit );
 
  258     void updateCompleter();
 
  259     void scheduledReload();
 
  267     QVariant extraIdentifierValue() 
const;
 
  273     void setExtraIdentifierValue( 
const QVariant &extraIdentifierValue );
 
  279     void setExtraIdentifierValueUnguarded( 
const QVariant &identifierValue );
 
  293     virtual QgsFeatureExpressionValuesGatherer::Entry 
createEntry( 
const QVariant &identifier ) 
const = 0;
 
  296     virtual QVariant 
entryIdentifier( 
const QgsFeatureExpressionValuesGatherer::Entry &entry ) 
const = 0;
 
  299     virtual bool compareEntries( 
const QgsFeatureExpressionValuesGatherer::Entry &a, 
const QgsFeatureExpressionValuesGatherer::Entry &b ) 
const = 0;
 
  310     QVector<QgsFeatureExpressionValuesGatherer::Entry> 
mEntries;
 
  317     int mExtraValueIndex = -1;
 
  320     void setExtraIdentifierValueIndex( 
int index, 
bool force = 
false );
 
  321     void setExtraValueDoesNotExist( 
bool extraValueDoesNotExist );
 
  323     void reloadCurrentFeature();
 
  324     QSet<QString> requestedAttributesForStyle() 
const;
 
  330     QString mFilterValue;
 
  331     QString mFilterExpression;
 
  334     mutable QMap< QgsFeatureId, QgsConditionalStyle > mEntryStylesMap;
 
  336     QgsFeatureExpressionValuesGatherer *mGatherer = 
nullptr;
 
  337     bool mFetchGeometry = 
true;
 
  338     int mFetchLimit = 100;
 
  341     bool mShouldReloadCurrentFeature = 
false;
 
  342     bool mKeepCurrentEntry = 
false; 
 
  343     bool mExtraValueDoesNotExist = 
false;
 
  344     bool mAllowNull = 
false;
 
  345     bool mIsSettingExtraIdentifierValue = 
false;
 
  347     friend class TestQgsFeatureListComboBox;
 
  350 #endif // QGSFEATUREFILTERMODELBASE_H 
  
virtual QVariant nullIdentifier() const =0
Returns a null identifier.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
void displayExpressionChanged()
The display expression will be used for.
virtual bool compareEntries(const QgsFeatureExpressionValuesGatherer::Entry &a, const QgsFeatureExpressionValuesGatherer::Entry &b) const =0
Returns true if the 2 entries refers to the same feature.
@ IdentifierValuesRole
Used to retrieve the identifierValues (primary keys) of a feature.
Provides a list of features based on filter conditions.
virtual bool identifierIsNull(const QVariant &identifier) const =0
Returns true if the entry is null The identifier can be either the feature ID or the list of identifi...
@ ValueRole
Used to retrieve the displayExpression of a feature.
Conditional styling for a rule.
void filterJobCompleted()
Indicates that a filter job has been completed and new data may be available.
QVariant mExtraIdentifierValue
The current identifier value.
void endUpdate()
Notification that the model change is finished.
void isLoadingChanged()
Indicator if the model is currently performing any feature iteration in the background.
This class wraps a request for features to a vector layer (or directly its vector data provider).
virtual QgsFeatureExpressionValuesGatherer::Entry createEntry(const QVariant &identifier) const =0
Creates an entry with just the identifier so the feature can be retrieved in a next iteration.
QVector< QgsFeatureExpressionValuesGatherer::Entry > mEntries
void extraIdentifierValueIndexChanged(int index)
The index at which the extra identifier value is available within the model.
void extraValueDoesNotExistChanged()
Flag indicating that the extraIdentifierValue does not exist in the data.
void fetchLimitChanged()
Emitted when the fetching limit for the feature request changes.
virtual QSet< QString > requestedAttributes() const
Returns the attributes to be fetched in the request.
virtual void requestToReloadCurrentFeature(QgsFeatureRequest &request)=0
Update the request to match the current feature to be reloaded.
@ FeatureRole
Used to retrieve the feature, it might be incomplete if the request doesn't fetch all attributes or g...
virtual QVariant entryIdentifier(const QgsFeatureExpressionValuesGatherer::Entry &entry) const =0
Returns the identifier of the given entry.
Represents a vector layer which manages a vector based data sets.
void allowNullChanged()
Add a NULL entry to the list.
virtual QgsFeatureExpressionValuesGatherer * createValuesGatherer(const QgsFeatureRequest &request) const =0
Creates the value gatherer.
virtual void setExtraIdentifierValueToNull()=0
Allows specifying one value that does not need to match the filter criteria but will still be availab...
void extraIdentifierValueChanged()
Allows specifying one value that does not need to match the filter criteria but will still be availab...
void fetchGeometryChanged()
Emitted when the fetching of the geometry changes.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
int columnCount(const QModelIndex &parent) const override
Role
Extra roles that can be used to fetch data from this model.
Class for parsing and evaluation of expressions (formerly called "search strings").
void sourceLayerChanged()
The source layer from which features will be fetched.
void filterValueChanged()
This value will be used to filter the features available from this model.
void beginUpdate()
Notification that the model is about to be changed because a job was completed.
void filterExpressionChanged()
An additional filter expression to apply, next to the filterValue.