QGIS API Documentation 3.41.0-Master (45a0abf3bec)
|
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a QAbstractItemView. More...
#include <qgsattributetablemodel.h>
Public Types | |
enum class | CustomRole : int { FeatureId = Qt::UserRole , FieldIndex , User , Sort } |
Custom model roles. More... | |
Public Slots | |
void | fieldConditionalStyleChanged (const QString &fieldName) |
Handles updating the model when the conditional style for a field changes. | |
virtual void | loadLayer () |
Loads the layer into the model Preferably to be called, before using this model as source for any other proxy model. | |
Signals | |
void | finished () |
Emitted when the model has completely loaded all features. | |
void | modelChanged () |
Emitted when the model has been changed. | |
void | progress (int i, bool &cancel) |
Public Member Functions | |
QgsAttributeTableModel (QgsVectorLayerCache *layerCache, QObject *parent=nullptr) | |
Constructor. | |
int | columnCount (const QModelIndex &parent=QModelIndex()) const override |
Returns the number of columns. | |
QVariant | data (const QModelIndex &index, int role) const override |
Returns data on the given index. | |
const QgsAttributeEditorContext & | editorContext () const |
Returns the context in which this table is shown. | |
void | executeAction (QUuid action, const QModelIndex &idx) const |
Execute an action. | |
void | executeMapLayerAction (QgsMapLayerAction *action, const QModelIndex &idx, const QgsMapLayerActionContext &context=QgsMapLayerActionContext()) const |
Execute a QgsMapLayerAction. | |
int | extraColumns () const |
Empty extra columns to announce from this model. | |
QgsFeature | feature (const QModelIndex &idx) const |
Returns the feature attributes at given model index. | |
int | fieldCol (int idx) const |
Gets column from field index. | |
int | fieldIdx (int col) const |
Gets field index from column. | |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
Returns item flags for the index. | |
QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
Returns header data. | |
QModelIndex | idToIndex (QgsFeatureId id) const |
QModelIndexList | idToIndexList (QgsFeatureId id) const |
int | idToRow (QgsFeatureId id) const |
Maps feature id to table row. | |
QgsVectorLayer * | layer () const |
Returns the layer this model uses as backend. | |
QgsVectorLayerCache * | layerCache () const |
Returns the layer cache this model uses as backend. | |
void | prefetchColumnData (int column) |
Caches the entire data for one column. | |
void | prefetchSortData (const QString &expression, unsigned long cacheIndex=0) |
Prefetches the entire data for an expression. | |
void | reload (const QModelIndex &index1, const QModelIndex &index2) |
Reloads the model data between indices. | |
bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override |
Remove rows. | |
const QgsFeatureRequest & | request () const |
Gets the the feature request. | |
void | resetModel () |
Resets the model. | |
int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
Returns the number of rows. | |
QgsFeatureId | rowToId (int row) const |
Maps row to feature id. | |
bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override |
Updates data on given index. | |
void | setEditorContext (const QgsAttributeEditorContext &context) |
Sets the context in which this table is shown. | |
void | setExtraColumns (int extraColumns) |
Empty extra columns to announce from this model. | |
void | setRequest (const QgsFeatureRequest &request) |
Set a request that will be used to fill this attribute table model. | |
void | setShowValidityState (bool show) |
Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is not met. | |
bool | showValidityState () const |
Returns whether the attribute table will add a visual feedback to cells when an attribute constraint is not met. | |
QString | sortCacheExpression (unsigned long cacheIndex=0) const |
The expression which was used to fill the sorting cache at index cacheIndex. | |
void | swapRows (QgsFeatureId a, QgsFeatureId b) |
Swaps two rows. | |
Friends | |
class | TestQgsAttributeTable |
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a QAbstractItemView.
Is able to generate editor widgets for its QModelIndexes as well. Is mostly referred to as "master model" within this doc and the source.
Definition at line 49 of file qgsattributetablemodel.h.
|
strong |
Custom model roles.
Definition at line 63 of file qgsattributetablemodel.h.
QgsAttributeTableModel::QgsAttributeTableModel | ( | QgsVectorLayerCache * | layerCache, |
QObject * | parent = nullptr |
||
) |
Constructor.
layerCache | A layer cache to use as backend |
parent | The parent QObject (owner) |
Definition at line 45 of file qgsattributetablemodel.cpp.
|
override |
Returns the number of columns.
parent | parent index |
Definition at line 628 of file qgsattributetablemodel.cpp.
|
override |
Returns data on the given index.
index | model index |
role | data role |
Definition at line 674 of file qgsattributetablemodel.cpp.
|
inline |
Returns the context in which this table is shown.
Will be forwarded to any editor widget created when editing data on this model.
Definition at line 256 of file qgsattributetablemodel.h.
void QgsAttributeTableModel::executeAction | ( | QUuid | action, |
const QModelIndex & | idx | ||
) | const |
Execute an action.
Definition at line 972 of file qgsattributetablemodel.cpp.
void QgsAttributeTableModel::executeMapLayerAction | ( | QgsMapLayerAction * | action, |
const QModelIndex & | idx, | ||
const QgsMapLayerActionContext & | context = QgsMapLayerActionContext() |
||
) | const |
Execute a QgsMapLayerAction.
Definition at line 978 of file qgsattributetablemodel.cpp.
int QgsAttributeTableModel::extraColumns | ( | ) | const |
Empty extra columns to announce from this model.
Any extra columns need to be implemented by proxy models in front of this model.
Definition at line 111 of file qgsattributetablemodel.cpp.
QgsFeature QgsAttributeTableModel::feature | ( | const QModelIndex & | idx | ) | const |
Returns the feature attributes at given model index.
Definition at line 987 of file qgsattributetablemodel.cpp.
int QgsAttributeTableModel::fieldCol | ( | int | idx | ) | const |
Gets column from field index.
Definition at line 617 of file qgsattributetablemodel.cpp.
|
slot |
Handles updating the model when the conditional style for a field changes.
fieldName | name of field whose conditional style has changed |
Definition at line 525 of file qgsattributetablemodel.cpp.
int QgsAttributeTableModel::fieldIdx | ( | int | col | ) | const |
Gets field index from column.
Definition at line 612 of file qgsattributetablemodel.cpp.
|
signal |
Emitted when the model has completely loaded all features.
|
override |
Returns item flags for the index.
index | model index |
Definition at line 859 of file qgsattributetablemodel.cpp.
|
override |
Returns header data.
section | required section |
orientation | horizontal or vertical orientation |
role | data role |
Definition at line 634 of file qgsattributetablemodel.cpp.
QModelIndex QgsAttributeTableModel::idToIndex | ( | QgsFeatureId | id | ) | const |
Definition at line 580 of file qgsattributetablemodel.cpp.
QModelIndexList QgsAttributeTableModel::idToIndexList | ( | QgsFeatureId | id | ) | const |
Definition at line 585 of file qgsattributetablemodel.cpp.
int QgsAttributeTableModel::idToRow | ( | QgsFeatureId | id | ) | const |
Maps feature id to table row.
id | feature id |
Definition at line 569 of file qgsattributetablemodel.cpp.
|
inline |
Returns the layer this model uses as backend.
Retrieved from the layer cache.
Definition at line 179 of file qgsattributetablemodel.h.
|
inline |
Returns the layer cache this model uses as backend.
Definition at line 184 of file qgsattributetablemodel.h.
|
virtualslot |
Loads the layer into the model Preferably to be called, before using this model as source for any other proxy model.
Definition at line 472 of file qgsattributetablemodel.cpp.
|
signal |
Emitted when the model has been changed.
void QgsAttributeTableModel::prefetchColumnData | ( | int | column | ) |
Caches the entire data for one column.
This should be called prior to sorting, so the data does not have to be fetched for every single comparison. Specify -1 as column to invalidate the cache
column | The column index of the field to catch |
Definition at line 1000 of file qgsattributetablemodel.cpp.
void QgsAttributeTableModel::prefetchSortData | ( | const QString & | expression, |
unsigned long | cacheIndex = 0 |
||
) |
Prefetches the entire data for an expression.
Based on this cached information the sorting can later be done in a performant way. A cacheIndex can be specified if multiple caches should be filled. In this case, the caches will be available as QgsAttributeTableModel::SortRole + cacheIndex
.
Definition at line 1012 of file qgsattributetablemodel.cpp.
|
signal |
void QgsAttributeTableModel::reload | ( | const QModelIndex & | index1, |
const QModelIndex & | index2 | ||
) |
Reloads the model data between indices.
index1 | start index |
index2 | end index |
Definition at line 965 of file qgsattributetablemodel.cpp.
|
override |
Remove rows.
Definition at line 190 of file qgsattributetablemodel.cpp.
const QgsFeatureRequest & QgsAttributeTableModel::request | ( | ) | const |
Gets the the feature request.
Definition at line 1110 of file qgsattributetablemodel.cpp.
|
inline |
|
override |
Returns the number of rows.
parent | parent index |
Definition at line 622 of file qgsattributetablemodel.cpp.
QgsFeatureId QgsAttributeTableModel::rowToId | ( | int | row | ) | const |
Maps row to feature id.
row | row number |
Definition at line 600 of file qgsattributetablemodel.cpp.
|
override |
Updates data on given index.
index | model index |
value | new data value |
role | data role |
Definition at line 843 of file qgsattributetablemodel.cpp.
|
inline |
Sets the context in which this table is shown.
Will be forwarded to any editor widget created when editing data on this model.
context | The context |
Definition at line 248 of file qgsattributetablemodel.h.
void QgsAttributeTableModel::setExtraColumns | ( | int | extraColumns | ) |
Empty extra columns to announce from this model.
Any extra columns need to be implemented by proxy models in front of this model.
Definition at line 116 of file qgsattributetablemodel.cpp.
void QgsAttributeTableModel::setRequest | ( | const QgsFeatureRequest & | request | ) |
Set a request that will be used to fill this attribute table model.
In contrast to a filter, the request will constrain the data shown without the possibility to dynamically adjust it.
request | The request to use to fill this table model. |
Definition at line 1095 of file qgsattributetablemodel.cpp.
|
inline |
Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is not met.
Definition at line 282 of file qgsattributetablemodel.h.
|
inline |
Returns whether the attribute table will add a visual feedback to cells when an attribute constraint is not met.
Definition at line 275 of file qgsattributetablemodel.h.
QString QgsAttributeTableModel::sortCacheExpression | ( | unsigned long | cacheIndex = 0 | ) | const |
The expression which was used to fill the sorting cache at index cacheIndex.
Definition at line 1078 of file qgsattributetablemodel.cpp.
void QgsAttributeTableModel::swapRows | ( | QgsFeatureId | a, |
QgsFeatureId | b | ||
) |
Swaps two rows.
a | first row |
b | second row |
Definition at line 544 of file qgsattributetablemodel.cpp.
|
friend |
Definition at line 458 of file qgsattributetablemodel.h.