QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Classes | Public Types | Public Slots | Signals | Public Member Functions | Friends | List of all members
QgsAttributeTableModel Class Reference

A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a QAbstractItemView. More...

#include <qgsattributetablemodel.h>

Inheritance diagram for QgsAttributeTableModel:
Inheritance graph
[legend]

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. More...
 
virtual void loadLayer ()
 Loads the layer into the model Preferably to be called, before using this model as source for any other proxy model. More...
 

Signals

void finished ()
 
void modelChanged ()
 Model has been changed. More...
 
void progress (int i, bool &cancel)
 

Public Member Functions

 QgsAttributeTableModel (QgsVectorLayerCache *layerCache, QObject *parent=nullptr)
 Constructor. More...
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 Returns the number of columns. More...
 
QVariant data (const QModelIndex &index, int role) const override
 Returns data on the given index. More...
 
const QgsAttributeEditorContexteditorContext () const
 Returns the context in which this table is shown. More...
 
void executeAction (QUuid action, const QModelIndex &idx) const
 Execute an action. More...
 
void executeMapLayerAction (QgsMapLayerAction *action, const QModelIndex &idx, const QgsMapLayerActionContext &context=QgsMapLayerActionContext()) const
 Execute a QgsMapLayerAction. More...
 
int extraColumns () const
 Empty extra columns to announce from this model. More...
 
QgsFeature feature (const QModelIndex &idx) const
 Returns the feature attributes at given model index. More...
 
int fieldCol (int idx) const
 Gets column from field index. More...
 
int fieldIdx (int col) const
 Gets field index from column. More...
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 Returns item flags for the index. More...
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 Returns header data. More...
 
QModelIndex idToIndex (QgsFeatureId id) const
 
QModelIndexList idToIndexList (QgsFeatureId id) const
 
int idToRow (QgsFeatureId id) const
 Maps feature id to table row. More...
 
QgsVectorLayerlayer () const
 Returns the layer this model uses as backend. More...
 
QgsVectorLayerCachelayerCache () const
 Returns the layer cache this model uses as backend. More...
 
void prefetchColumnData (int column)
 Caches the entire data for one column. More...
 
void prefetchSortData (const QString &expression, unsigned long cacheIndex=0)
 Prefetches the entire data for an expression. More...
 
void reload (const QModelIndex &index1, const QModelIndex &index2)
 Reloads the model data between indices. More...
 
bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 Remove rows. More...
 
const QgsFeatureRequestrequest () const
 Gets the the feature request. More...
 
void resetModel ()
 Resets the model. More...
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 Returns the number of rows. More...
 
QgsFeatureId rowToId (int row) const
 Maps row to feature id. More...
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 Updates data on given index. More...
 
void setEditorContext (const QgsAttributeEditorContext &context)
 Sets the context in which this table is shown. More...
 
void setExtraColumns (int extraColumns)
 Empty extra columns to announce from this model. More...
 
void setRequest (const QgsFeatureRequest &request)
 Set a request that will be used to fill this attribute table model. More...
 
void setShowValidityState (bool show)
 Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is not met. More...
 
bool showValidityState () const
 Returns whether the attribute table will add a visual feedback to cells when an attribute constraint is not met. More...
 
QString sortCacheExpression (unsigned long cacheIndex=0) const
 The expression which was used to fill the sorting cache at index cacheIndex. More...
 
void swapRows (QgsFeatureId a, QgsFeatureId b)
 Swaps two rows. More...
 

Friends

class TestQgsAttributeTable
 

Detailed Description

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.

See also
Qt Model View Programming

Definition at line 49 of file qgsattributetablemodel.h.

Member Enumeration Documentation

◆ CustomRole

Custom model roles.

Note
Prior to QGIS 3.36 this was available as QgsAttributeTableModel::Role
Since
QGIS 3.36
Enumerator
FeatureId 

Get the feature id of the feature in this row.

FieldIndex 

Get the field index of this column.

User 

Start further roles starting from this role.

Sort 

Role used for sorting start here.

Definition at line 63 of file qgsattributetablemodel.h.

Constructor & Destructor Documentation

◆ QgsAttributeTableModel()

QgsAttributeTableModel::QgsAttributeTableModel ( QgsVectorLayerCache layerCache,
QObject *  parent = nullptr 
)

Constructor.

Parameters
layerCacheA layer cache to use as backend
parentThe parent QObject (owner)

Definition at line 44 of file qgsattributetablemodel.cpp.

Member Function Documentation

◆ columnCount()

int QgsAttributeTableModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
override

Returns the number of columns.

Parameters
parentparent index

Definition at line 627 of file qgsattributetablemodel.cpp.

◆ data()

QVariant QgsAttributeTableModel::data ( const QModelIndex &  index,
int  role 
) const
override

Returns data on the given index.

Parameters
indexmodel index
roledata role

Definition at line 673 of file qgsattributetablemodel.cpp.

◆ editorContext()

const QgsAttributeEditorContext& QgsAttributeTableModel::editorContext ( ) const
inline

Returns the context in which this table is shown.

Will be forwarded to any editor widget created when editing data on this model.

Returns
The context

Definition at line 256 of file qgsattributetablemodel.h.

◆ executeAction()

void QgsAttributeTableModel::executeAction ( QUuid  action,
const QModelIndex &  idx 
) const

Execute an action.

Definition at line 971 of file qgsattributetablemodel.cpp.

◆ executeMapLayerAction()

void QgsAttributeTableModel::executeMapLayerAction ( QgsMapLayerAction action,
const QModelIndex &  idx,
const QgsMapLayerActionContext context = QgsMapLayerActionContext() 
) const

Execute a QgsMapLayerAction.

Definition at line 977 of file qgsattributetablemodel.cpp.

◆ extraColumns()

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 110 of file qgsattributetablemodel.cpp.

◆ feature()

QgsFeature QgsAttributeTableModel::feature ( const QModelIndex &  idx) const

Returns the feature attributes at given model index.

Returns
feature attributes at given model index

Definition at line 986 of file qgsattributetablemodel.cpp.

◆ fieldCol()

int QgsAttributeTableModel::fieldCol ( int  idx) const

Gets column from field index.

Definition at line 616 of file qgsattributetablemodel.cpp.

◆ fieldConditionalStyleChanged

void QgsAttributeTableModel::fieldConditionalStyleChanged ( const QString &  fieldName)
slot

Handles updating the model when the conditional style for a field changes.

Parameters
fieldNamename of field whose conditional style has changed

Definition at line 524 of file qgsattributetablemodel.cpp.

◆ fieldIdx()

int QgsAttributeTableModel::fieldIdx ( int  col) const

Gets field index from column.

Definition at line 611 of file qgsattributetablemodel.cpp.

◆ finished

void QgsAttributeTableModel::finished ( )
signal

◆ flags()

Qt::ItemFlags QgsAttributeTableModel::flags ( const QModelIndex &  index) const
override

Returns item flags for the index.

Parameters
indexmodel index

Definition at line 858 of file qgsattributetablemodel.cpp.

◆ headerData()

QVariant QgsAttributeTableModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
override

Returns header data.

Parameters
sectionrequired section
orientationhorizontal or vertical orientation
roledata role

Definition at line 633 of file qgsattributetablemodel.cpp.

◆ idToIndex()

QModelIndex QgsAttributeTableModel::idToIndex ( QgsFeatureId  id) const

Definition at line 579 of file qgsattributetablemodel.cpp.

◆ idToIndexList()

QModelIndexList QgsAttributeTableModel::idToIndexList ( QgsFeatureId  id) const

Definition at line 584 of file qgsattributetablemodel.cpp.

◆ idToRow()

int QgsAttributeTableModel::idToRow ( QgsFeatureId  id) const

Maps feature id to table row.

Parameters
idfeature id

Definition at line 568 of file qgsattributetablemodel.cpp.

◆ layer()

QgsVectorLayer* QgsAttributeTableModel::layer ( ) const
inline

Returns the layer this model uses as backend.

Retrieved from the layer cache.

Definition at line 179 of file qgsattributetablemodel.h.

◆ layerCache()

QgsVectorLayerCache* QgsAttributeTableModel::layerCache ( ) const
inline

Returns the layer cache this model uses as backend.

Definition at line 184 of file qgsattributetablemodel.h.

◆ loadLayer

void QgsAttributeTableModel::loadLayer ( )
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 471 of file qgsattributetablemodel.cpp.

◆ modelChanged

void QgsAttributeTableModel::modelChanged ( )
signal

Model has been changed.

◆ prefetchColumnData()

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

Parameters
columnThe column index of the field to catch

Definition at line 999 of file qgsattributetablemodel.cpp.

◆ prefetchSortData()

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 1011 of file qgsattributetablemodel.cpp.

◆ progress

void QgsAttributeTableModel::progress ( int  i,
bool &  cancel 
)
signal
Note
not available in Python bindings

◆ reload()

void QgsAttributeTableModel::reload ( const QModelIndex &  index1,
const QModelIndex &  index2 
)

Reloads the model data between indices.

Parameters
index1start index
index2end index

Definition at line 964 of file qgsattributetablemodel.cpp.

◆ removeRows()

bool QgsAttributeTableModel::removeRows ( int  row,
int  count,
const QModelIndex &  parent = QModelIndex() 
)
override

Remove rows.

Definition at line 189 of file qgsattributetablemodel.cpp.

◆ request()

const QgsFeatureRequest & QgsAttributeTableModel::request ( ) const

Gets the the feature request.

Definition at line 1102 of file qgsattributetablemodel.cpp.

◆ resetModel()

void QgsAttributeTableModel::resetModel ( )
inline

Resets the model.

Alias to loadLayer()

Definition at line 141 of file qgsattributetablemodel.h.

◆ rowCount()

int QgsAttributeTableModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override

Returns the number of rows.

Parameters
parentparent index

Definition at line 621 of file qgsattributetablemodel.cpp.

◆ rowToId()

QgsFeatureId QgsAttributeTableModel::rowToId ( int  row) const

Maps row to feature id.

Parameters
rowrow number

Definition at line 599 of file qgsattributetablemodel.cpp.

◆ setData()

bool QgsAttributeTableModel::setData ( const QModelIndex &  index,
const QVariant &  value,
int  role = Qt::EditRole 
)
override

Updates data on given index.

Parameters
indexmodel index
valuenew data value
roledata role

Definition at line 842 of file qgsattributetablemodel.cpp.

◆ setEditorContext()

void QgsAttributeTableModel::setEditorContext ( const QgsAttributeEditorContext context)
inline

Sets the context in which this table is shown.

Will be forwarded to any editor widget created when editing data on this model.

Parameters
contextThe context

Definition at line 248 of file qgsattributetablemodel.h.

◆ setExtraColumns()

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 115 of file qgsattributetablemodel.cpp.

◆ setRequest()

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.

Parameters
requestThe request to use to fill this table model.

Definition at line 1095 of file qgsattributetablemodel.cpp.

◆ setShowValidityState()

void QgsAttributeTableModel::setShowValidityState ( bool  show)
inline

Sets whether the attribute table will add a visual feedback to cells when an attribute constraint is not met.

Since
QGIS 3.30

Definition at line 282 of file qgsattributetablemodel.h.

◆ showValidityState()

bool QgsAttributeTableModel::showValidityState ( ) const
inline

Returns whether the attribute table will add a visual feedback to cells when an attribute constraint is not met.

Since
QGIS 3.30

Definition at line 275 of file qgsattributetablemodel.h.

◆ sortCacheExpression()

QString QgsAttributeTableModel::sortCacheExpression ( unsigned long  cacheIndex = 0) const

The expression which was used to fill the sorting cache at index cacheIndex.

See also
prefetchSortData

Definition at line 1078 of file qgsattributetablemodel.cpp.

◆ swapRows()

void QgsAttributeTableModel::swapRows ( QgsFeatureId  a,
QgsFeatureId  b 
)

Swaps two rows.

Parameters
afirst row
bsecond row

Definition at line 543 of file qgsattributetablemodel.cpp.

Friends And Related Function Documentation

◆ TestQgsAttributeTable

friend class TestQgsAttributeTable
friend

Definition at line 454 of file qgsattributetablemodel.h.


The documentation for this class was generated from the following files: