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 );
314 virtual void updatedFields();
321 virtual void editCommandEnded();
326 virtual void attributeDeleted(
int idx );
334 virtual void attributeValueChanged(
QgsFeatureId fid,
int idx,
const QVariant &value );
351 virtual void layerDeleted();
372 mutable QVector<WidgetData> mWidgetDatas;
374 QHash<QgsFeatureId, int> mIdRowMap;
375 QHash<int, QgsFeatureId> mRowIdMap;
376 mutable QHash<QgsFeatureId, QList<QgsConditionalStyle> > mRowStylesMap;
377 mutable QHash<QgsFeatureId, QHash<int, QgsConditionalStyle> > mConstraintStylesMap;
384 const WidgetData &getWidgetData(
int column )
const;
389 void loadAttributes();
410 virtual bool loadFeatureAtId(
QgsFeatureId fid,
int fieldIdx )
const;
422 QHash<QgsFeatureId, QVariant> sortCache;
425 std::vector<SortCache> mSortCaches;
429 int mExtraColumns = 0;
432 bool mBulkEditCommandRunning =
false;
435 bool mResettingModel =
false;
438 void bulkEditCommandStarted();
441 void bulkEditCommandEnded();
444 QMap<QPair<QgsFeatureId, int>, QVariant> mAttributeValueChanges;
447 QList<QgsFeatureId> mInsertedRowsChanges;
450 bool mIsCleaningUpAfterRollback =
false;
452 bool mShowValidityState =
false;
454 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 ...
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