17#ifndef QGSATTRIBUTETABLEMODEL_H
18#define QGSATTRIBUTETABLEMODEL_H
26#include <QAbstractTableModel>
84 Q_ENUM( ColumnTypeValue )
100 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
106 int columnCount(
const QModelIndex &parent = QModelIndex() )
const override;
114 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole )
const override;
121 QVariant data(
const QModelIndex &index,
int role )
const override;
129 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole )
override;
135 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
142 void reload(
const QModelIndex &index1,
const QModelIndex &index2 );
147 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex() )
override;
169 int fieldIdx(
int col )
const;
174 int fieldCol(
int idx )
const;
202 void executeAction( QUuid action,
const QModelIndex &idx )
const;
213 QgsFeature feature(
const QModelIndex &idx )
const;
222 void prefetchColumnData(
int column );
230 void prefetchSortData(
const QString &expression,
unsigned long cacheIndex = 0 );
237 QString sortCacheExpression(
unsigned long cacheIndex = 0 )
const;
285 Q_DECL_DEPRECATED
void setExtraColumns(
int extraColumns )
SIP_DEPRECATED;
307 virtual void loadLayer();
313 void fieldConditionalStyleChanged(
const QString &fieldName );
335 virtual void updatedFields();
342 virtual void editCommandEnded();
347 virtual void attributeDeleted(
int idx );
355 virtual void attributeValueChanged(
QgsFeatureId fid,
int idx,
const QVariant &value );
372 virtual void layerDeleted();
393 mutable QVector<WidgetData> mWidgetDatas;
395 QHash<QgsFeatureId, int> mIdRowMap;
396 QHash<int, QgsFeatureId> mRowIdMap;
397 mutable QHash<QgsFeatureId, QList<QgsConditionalStyle>> mRowStylesMap;
398 mutable QHash<QgsFeatureId, QHash<int, QgsConditionalStyle>> mConstraintStylesMap;
405 const WidgetData &getWidgetData(
int column )
const;
410 void loadAttributes();
431 virtual bool loadFeatureAtId(
QgsFeatureId fid,
int fieldIdx )
const;
443 QHash<QgsFeatureId, QVariant> sortCache;
446 std::vector<SortCache> mSortCaches;
448 QgsAttributeEditorContext mEditorContext;
451 bool mBulkEditCommandRunning =
false;
454 bool mResettingModel =
false;
457 void bulkEditCommandStarted();
460 void bulkEditCommandEnded();
463 QMap<QPair<QgsFeatureId, int>, QVariant> mAttributeValueChanges;
466 QList<QgsFeatureId> mInsertedRowsChanges;
469 bool mIsCleaningUpAfterRollback =
false;
471 bool mShowValidityState =
false;
Contains context information for attribute editor widgets.
A proxy model for filtering an attribute table model.
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 ...
ColumnTypeValue
The type of a column.
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