17#ifndef QGSATTRIBUTETABLEMODEL_H
18#define QGSATTRIBUTETABLEMODEL_H
26#include <QAbstractTableModel>
86 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
92 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
100 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
107 QVariant data(
const QModelIndex &index,
int role )
const override;
115 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
121 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
128 void reload(
const QModelIndex &index1,
const QModelIndex &index2 );
133 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
155 int fieldIdx(
int col )
const;
160 int fieldCol(
int idx )
const;
188 void executeAction( QUuid action,
const QModelIndex &idx )
const;
199 QgsFeature feature(
const QModelIndex &idx )
const;
208 void prefetchColumnData(
int column );
216 void prefetchSortData(
const QString &expression,
unsigned long cacheIndex = 0 );
223 QString sortCacheExpression(
unsigned long cacheIndex = 0 )
const;
261 int extraColumns()
const;
267 void setExtraColumns(
int extraColumns );
289 virtual void loadLayer();
295 void fieldConditionalStyleChanged(
const QString &fieldName );
317 virtual void updatedFields();
324 virtual void editCommandEnded();
329 virtual void attributeDeleted(
int idx );
337 virtual void attributeValueChanged(
QgsFeatureId fid,
int idx,
const QVariant &value );
354 virtual void layerDeleted();
375 mutable QVector<WidgetData> mWidgetDatas;
377 QHash<QgsFeatureId, int> mIdRowMap;
378 QHash<int, QgsFeatureId> mRowIdMap;
379 mutable QHash<QgsFeatureId, QList<QgsConditionalStyle>> mRowStylesMap;
380 mutable QHash<QgsFeatureId, QHash<int, QgsConditionalStyle>> mConstraintStylesMap;
387 const WidgetData &getWidgetData(
int column )
const;
392 void loadAttributes();
413 virtual bool loadFeatureAtId(
QgsFeatureId fid,
int fieldIdx )
const;
425 QHash<QgsFeatureId, QVariant> sortCache;
428 std::vector<SortCache> mSortCaches;
430 QgsAttributeEditorContext mEditorContext;
432 int mExtraColumns = 0;
435 bool mBulkEditCommandRunning =
false;
438 bool mResettingModel =
false;
441 void bulkEditCommandStarted();
444 void bulkEditCommandEnded();
447 QMap<QPair<QgsFeatureId, int>, QVariant> mAttributeValueChanges;
450 QList<QgsFeatureId> mInsertedRowsChanges;
453 bool mIsCleaningUpAfterRollback =
false;
455 bool mShowValidityState =
false;
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.
friend class TestQgsAttributeTable
void resetModel()
Resets the model.
QgsAttributeTableModel(QgsVectorLayerCache *layerCache, QObject *parent=nullptr)
Constructor.
void modelChanged()
Emitted when the 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 finished()
Emitted when the model has completely loaded all features.
void setShowValidityState(bool show)
Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is ...
virtual void loadLayer()
Loads the layer into the model Preferably to be called, before using this model as source for any oth...
CustomRole
Custom model roles.
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...
Handles parsing and evaluation of expressions (formerly called "search strings").
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.
Caches features for a given QgsVectorLayer.
Represents a vector layer which manages a vector based dataset.
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
#define SIP_MONKEYPATCH_COMPAT_NAME(FORMERNAME)
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
QList< int > QgsAttributeList