QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsfeaturepickermodel.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsfeaturepickermodel.h - QgsFeaturePickerModel
3  ---------------------
4  begin : 03.04.2020
5  copyright : (C) 2020 by Denis Rouzaud
6  email : [email protected]
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 #ifndef QGSFEATUREPICKERMODEL_H
16 #define QGSFEATUREPICKERMODEL_H
17 
18 #include <QAbstractItemModel>
19 
20 #include "qgsconditionalstyle.h"
23 
32 {
33  Q_OBJECT
34 
35  public:
36 
40  explicit QgsFeaturePickerModel( QObject *parent = nullptr );
41 
47  void setExtraIdentifierValueToNull() override;
48 
50  void setFeature( const QgsFeatureId &fid );
51 
55  QgsFeature feature() const;
56 
57  signals:
59  void featureChanged( const QgsFeature &feature );
60 
61 
62  private:
63  QgsFeatureExpressionValuesGatherer *createValuesGatherer( const QgsFeatureRequest &request ) const override;
64 
65  void requestToReloadCurrentFeature( QgsFeatureRequest &request ) override;
66 
67  QVariant entryIdentifier( const QgsFeatureExpressionValuesGatherer::Entry &entry ) const override;
68 
69  QgsFeatureExpressionValuesGatherer::Entry createEntry( const QVariant &identifier ) const override;
70 
71  bool compareEntries( const QgsFeatureExpressionValuesGatherer::Entry &a, const QgsFeatureExpressionValuesGatherer::Entry &b ) const override;
72 
73  bool identifierIsNull( const QVariant &identifier ) const override;
74 
75  QVariant nullIdentifier() const override;
76 };
77 
78 #endif // QGSFEATUREPICKERMODEL_H
Provides a list of features based on filter conditions.
virtual QVariant entryIdentifier(const QgsFeatureExpressionValuesGatherer::Entry &entry) const =0
Returns the identifier of the given entry.
virtual void setExtraIdentifierValueToNull()=0
Allows specifying one value that does not need to match the filter criteria but will still be availab...
virtual void requestToReloadCurrentFeature(QgsFeatureRequest &request)=0
Update the request to match the current feature to be reloaded.
virtual QgsFeatureExpressionValuesGatherer * createValuesGatherer(const QgsFeatureRequest &request) const =0
Creates the value gatherer.
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.
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...
virtual bool compareEntries(const QgsFeatureExpressionValuesGatherer::Entry &a, const QgsFeatureExpressionValuesGatherer::Entry &b) const =0
Returns true if the 2 entries refers to the same feature.
virtual QVariant nullIdentifier() const =0
Returns a null identifier.
Provides a list of features based on filter conditions.
void featureChanged(const QgsFeature &feature)
Emitted when the current feature changes.
This class wraps a request for features to a vector layer (or directly its vector data provider).
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition: qgsfeatureid.h:28