17#ifndef QGSATTRIBUTETABLEMODEL_H
18#define QGSATTRIBUTETABLEMODEL_H
20#include <QAbstractTableModel>
87 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
93 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
101 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
108 QVariant data(
const QModelIndex &index,
int role )
const override;
116 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
122 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
129 void reload(
const QModelIndex &index1,
const QModelIndex &index2 );
134 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
156 int fieldIdx(
int col )
const;
161 int fieldCol(
int idx )
const;
189 void executeAction( QUuid action,
const QModelIndex &idx )
const;
200 QgsFeature feature(
const QModelIndex &idx )
const;
209 void prefetchColumnData(
int column );
217 void prefetchSortData(
const QString &expression,
unsigned long cacheIndex = 0 );
224 QString sortCacheExpression(
unsigned long cacheIndex = 0 )
const;
262 int extraColumns()
const;
268 void setExtraColumns(
int extraColumns );
290 virtual void loadLayer();
296 void fieldConditionalStyleChanged(
const QString &fieldName );
318 virtual void updatedFields();
325 virtual void editCommandEnded();
330 virtual void attributeDeleted(
int idx );
338 virtual void attributeValueChanged(
QgsFeatureId fid,
int idx,
const QVariant &value );
355 virtual void layerDeleted();
376 mutable QVector<WidgetData> mWidgetDatas;
378 QHash<QgsFeatureId, int> mIdRowMap;
379 QHash<int, QgsFeatureId> mRowIdMap;
380 mutable QHash<QgsFeatureId, QList<QgsConditionalStyle> > mRowStylesMap;
381 mutable QHash<QgsFeatureId, QHash<int, QgsConditionalStyle> > mConstraintStylesMap;
388 const WidgetData &getWidgetData(
int column )
const;
393 void loadAttributes();
414 virtual bool loadFeatureAtId(
QgsFeatureId fid,
int fieldIdx )
const;
426 QHash<QgsFeatureId, QVariant> sortCache;
429 std::vector<SortCache> mSortCaches;
433 int mExtraColumns = 0;
436 bool mBulkEditCommandRunning =
false;
439 bool mResettingModel =
false;
442 void bulkEditCommandStarted();
445 void bulkEditCommandEnded();
448 QMap<QPair<QgsFeatureId, int>, QVariant> mAttributeValueChanges;
451 QList<QgsFeatureId> mInsertedRowsChanges;
454 bool mIsCleaningUpAfterRollback =
false;
456 bool mShowValidityState =
false;
458 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()
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 ...
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...
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.
#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