17#ifndef QGSATTRIBUTETABLEMODEL_H 
   18#define QGSATTRIBUTETABLEMODEL_H 
   20#include <QAbstractTableModel> 
   56      FeatureIdRole = Qt::UserRole, 
 
   76    int rowCount( 
const QModelIndex &parent = QModelIndex() ) 
const override;
 
   82    int columnCount( 
const QModelIndex &parent = QModelIndex() ) 
const override;
 
   90    QVariant headerData( 
int section, Qt::Orientation orientation, 
int role = Qt::DisplayRole ) 
const override;
 
   97    QVariant data( 
const QModelIndex &index, 
int role ) 
const override;
 
  105    bool setData( 
const QModelIndex &index, 
const QVariant &value, 
int role = Qt::EditRole ) 
override;
 
  111    Qt::ItemFlags flags( 
const QModelIndex &index ) 
const override;
 
  118    void reload( 
const QModelIndex &index1, 
const QModelIndex &index2 );
 
  123    bool removeRows( 
int row, 
int count, 
const QModelIndex &parent = QModelIndex() ) 
override;
 
  145    int fieldIdx( 
int col ) 
const;
 
  150    int fieldCol( 
int idx ) 
const;
 
  178    void executeAction( QUuid action, 
const QModelIndex &idx ) 
const;
 
  189    QgsFeature feature( 
const QModelIndex &idx ) 
const;
 
  198    void prefetchColumnData( 
int column );
 
  206    void prefetchSortData( 
const QString &expression, 
unsigned long cacheIndex = 0 );
 
  213    QString sortCacheExpression( 
unsigned long cacheIndex = 0 ) 
const;
 
  251    int extraColumns() 
const;
 
  257    void setExtraColumns( 
int extraColumns );
 
  279    virtual void loadLayer();
 
  286    void fieldConditionalStyleChanged( 
const QString &fieldName );
 
  304    virtual void updatedFields();
 
  311    virtual void editCommandEnded();
 
  316    virtual void attributeDeleted( 
int idx );
 
  324    virtual void attributeValueChanged( 
QgsFeatureId fid, 
int idx, 
const QVariant &value );
 
  341    virtual void layerDeleted();
 
  362    mutable QVector<WidgetData> mWidgetDatas;
 
  364    QHash<QgsFeatureId, int> mIdRowMap;
 
  365    QHash<int, QgsFeatureId> mRowIdMap;
 
  366    mutable QHash<QgsFeatureId, QList<QgsConditionalStyle> > mRowStylesMap;
 
  367    mutable QHash<QgsFeatureId, QHash<int, QgsConditionalStyle> > mConstraintStylesMap;
 
  374    const WidgetData &getWidgetData( 
int column ) 
const;
 
  379    void loadAttributes();
 
  400    virtual bool loadFeatureAtId( 
QgsFeatureId fid, 
int fieldIdx ) 
const;
 
  412      QHash<QgsFeatureId, QVariant> sortCache;
 
  415    std::vector<SortCache> mSortCaches;
 
  419    int mExtraColumns = 0;
 
  422    bool mBulkEditCommandRunning = 
false;
 
  425    bool mResettingModel = 
false;
 
  428    void bulkEditCommandStarted();
 
  431    void bulkEditCommandEnded();
 
  434    QMap<QPair<QgsFeatureId, int>, QVariant> mAttributeValueChanges;
 
  437    QList<QgsFeatureId> mInsertedRowsChanges;
 
  440    bool mIsCleaningUpAfterRollback = 
false;
 
  442    bool mShowValidityState = 
false;
 
  444    friend class TestQgsAttributeTable;
 
This class contains context information for attribute editor widgets.
 
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a Q...
 
const QgsAttributeEditorContext & editorContext() const
Returns the context in which this table is shown.
 
void resetModel()
Resets the model.
 
void modelChanged()
Model has been changed.
 
void progress(int i, bool &cancel)
 
void setEditorContext(const QgsAttributeEditorContext &context)
Sets the context in which this table is shown.
 
QgsVectorLayer * layer() const
Returns the layer this model uses as backend.
 
QgsVectorLayerCache * layerCache() const
Returns the layer cache this model uses as backend.
 
void setShowValidityState(bool show)
Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is ...
 
@ SortRole
Role used for sorting start here.
 
@ FieldIndexRole
Get the field index of this column.
 
@ UserRole
Start further roles starting from this role.
 
bool showValidityState() const
Returns whether the attribute table will add a visual feedback to cells when an attribute constraint ...
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
Class for parsing and evaluation of expressions (formerly called "search strings").
 
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...
 
Container of fields for a vector layer.
 
Map canvas is a class for displaying all GIS data types on a canvas.
 
Encapsulates the context in which a QgsMapLayerAction action is executed.
 
An action which can run on map layers The class can be used in two manners:
 
This class caches features of a given QgsVectorLayer.
 
Represents a vector layer which manages a vector based data sets.
 
QSet< QgsFeatureId > QgsFeatureIds
 
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
 
QList< int > QgsAttributeList