QGIS API Documentation  2.14.0-Essen
Public Types | Public Slots | Signals | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | 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  Role { SortRole = Qt::UserRole + 1, FeatureIdRole = Qt::UserRole + 2, FieldIndexRole = Qt::UserRole + 3 }
 

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...
 
virtual 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 (int action, const QModelIndex &idx) const
 Execute an action. More...
 
void executeMapLayerAction (QgsMapLayerAction *action, const QModelIndex &idx) const
 Execute a QgsMapLayerAction. More...
 
QgsFeature feature (const QModelIndex &idx) const
 Return the feature attributes at given model index. More...
 
int fieldCol (int idx) const
 get column from field index More...
 
int fieldIdx (int col) const
 get 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 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
 Get the the feature request. More...
 
void resetModel ()
 Resets the model. More...
 
virtual 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...
 
virtual 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 setRequest (const QgsFeatureRequest &request)
 Set a request that will be used to fill this attribute table model. More...
 
void swapRows (QgsFeatureId a, QgsFeatureId b)
 Swaps two rows. More...
 
- Public Member Functions inherited from QAbstractTableModel
 QAbstractTableModel (QObject *parent)
 
 ~QAbstractTableModel ()
 
virtual bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
 
virtual QModelIndex index (int row, int column, const QModelIndex &parent) const
 
- Public Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent)
 
virtual  ~QAbstractItemModel ()
 
virtual QModelIndex buddy (const QModelIndex &index) const
 
virtual bool canFetchMore (const QModelIndex &parent) const
 
virtual int columnCount (const QModelIndex &parent) const =0
 
void columnsAboutToBeInserted (const QModelIndex &parent, int start, int end)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int start, int end)
 
void columnsInserted (const QModelIndex &parent, int start, int end)
 
void columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsRemoved (const QModelIndex &parent, int start, int end)
 
virtual QVariant data (const QModelIndex &index, int role) const =0
 
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight)
 
virtual void fetchMore (const QModelIndex &parent)
 
virtual bool hasChildren (const QModelIndex &parent) const
 
bool hasIndex (int row, int column, const QModelIndex &parent) const
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 
virtual QModelIndex index (int row, int column, const QModelIndex &parent) const =0
 
bool insertColumn (int column, const QModelIndex &parent)
 
virtual bool insertColumns (int column, int count, const QModelIndex &parent)
 
bool insertRow (int row, const QModelIndex &parent)
 
virtual bool insertRows (int row, int count, const QModelIndex &parent)
 
virtual QMap< int, QVariantitemData (const QModelIndex &index) const
 
void layoutAboutToBeChanged ()
 
void layoutChanged ()
 
virtual QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits, QFlags< Qt::MatchFlag > flags) const
 
virtual QMimeDatamimeData (const QModelIndexList &indexes) const
 
virtual QStringList mimeTypes () const
 
void modelAboutToBeReset ()
 
void modelReset ()
 
virtual QModelIndex parent (const QModelIndex &index) const =0
 
bool removeColumn (int column, const QModelIndex &parent)
 
virtual bool removeColumns (int column, int count, const QModelIndex &parent)
 
bool removeRow (int row, const QModelIndex &parent)
 
virtual void revert ()
 
const QHash< int, QByteArray > & roleNames () const
 
virtual int rowCount (const QModelIndex &parent) const =0
 
void rowsAboutToBeInserted (const QModelIndex &parent, int start, int end)
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int start, int end)
 
void rowsInserted (const QModelIndex &parent, int start, int end)
 
void rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsRemoved (const QModelIndex &parent, int start, int end)
 
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role)
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 
void setSupportedDragActions (QFlags< Qt::DropAction > actions)
 
QModelIndex sibling (int row, int column, const QModelIndex &index) const
 
virtual void sort (int column, Qt::SortOrder order)
 
virtual QSize span (const QModelIndex &index) const
 
virtual bool submit ()
 
Qt::DropActions supportedDragActions () const
 
virtual Qt::DropActions supportedDropActions () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual  ~QObject ()
 
bool blockSignals (bool block)
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThreadthread () const
 

Protected Slots

virtual void attributeValueChanged (QgsFeatureId fid, int idx, const QVariant &value)
 Launched when attribute value has been changed. More...
 
virtual void featureAdded (QgsFeatureId fid)
 Launched when a feature has been added. More...
 
virtual void featuresDeleted (const QgsFeatureIds &fids)
 Launched when eatures have been deleted. More...
 
virtual void layerDeleted ()
 Launched when layer has been deleted. More...
 

Protected Member Functions

virtual void loadAttributes ()
 Gets mFieldCount, mAttributes and mValueMaps. More...
 
- Protected Member Functions inherited from QAbstractItemModel
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 
void beginResetModel ()
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndex createIndex (int row, int column, void *ptr) const
 
QModelIndex createIndex (int row, int column, int id) const
 
QModelIndex createIndex (int row, int column, quint32 id) const
 
void endInsertColumns ()
 
void endInsertRows ()
 
void endMoveColumns ()
 
void endMoveRows ()
 
void endRemoveColumns ()
 
void endRemoveRows ()
 
void endResetModel ()
 
QModelIndexList persistentIndexList () const
 
void reset ()
 
void resetInternalData ()
 
void setRoleNames (const QHash< int, QByteArray > &roleNames)
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Protected Attributes

QgsAttributeList mAttributes
 
QVector< QVariantmAttributeWidgetCaches
 
QgsExpressionContext mExpressionContext
 
QgsFeature mFeat
 
int mFieldCount
 
QHash< QgsFeatureId, int > mIdRowMap
 
QgsVectorLayerCachemLayerCache
 
QHash< int, QgsFeatureIdmRowIdMap
 
QHash< int, QList< QgsConditionalStyle > > mRowStylesMap
 
QVector< QgsEditorWidgetConfigmWidgetConfigs
 
QVector< QgsEditorWidgetFactory * > mWidgetFactories
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

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 47 of file qgsattributetablemodel.h.

Member Enumeration Documentation

Enumerator
SortRole 
FeatureIdRole 
FieldIndexRole 

Definition at line 52 of file qgsattributetablemodel.h.

Constructor & Destructor Documentation

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

Constructor.

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

Definition at line 38 of file qgsattributetablemodel.cpp.

Member Function Documentation

void QgsAttributeTableModel::attributeValueChanged ( QgsFeatureId  fid,
int  idx,
const QVariant value 
)
protectedvirtualslot

Launched when attribute value has been changed.

Parameters
fidfeature id
idxattribute index
valuenew value

Definition at line 248 of file qgsattributetablemodel.cpp.

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

Returns the number of columns.

Parameters
parentparent index

Definition at line 493 of file qgsattributetablemodel.cpp.

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

Returns data on the given index.

Parameters
indexmodel index
roledata role

Definition at line 531 of file qgsattributetablemodel.cpp.

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 223 of file qgsattributetablemodel.h.

void QgsAttributeTableModel::executeAction ( int  action,
const QModelIndex idx 
) const

Execute an action.

Definition at line 701 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::executeMapLayerAction ( QgsMapLayerAction action,
const QModelIndex idx 
) const

Execute a QgsMapLayerAction.

Definition at line 707 of file qgsattributetablemodel.cpp.

QgsFeature QgsAttributeTableModel::feature ( const QModelIndex idx) const

Return the feature attributes at given model index.

Returns
feature attributes at given model index

Definition at line 713 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::featureAdded ( QgsFeatureId  fid)
protectedvirtualslot

Launched when a feature has been added.

Parameters
fidfeature id

Definition at line 189 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::featuresDeleted ( const QgsFeatureIds fids)
protectedvirtualslot

Launched when eatures have been deleted.

Parameters
fidsfeature ids

Definition at line 83 of file qgsattributetablemodel.cpp.

int QgsAttributeTableModel::fieldCol ( int  idx) const

get column from field index

Definition at line 482 of file qgsattributetablemodel.cpp.

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
Note
added in QGIS 2.12

Definition at line 393 of file qgsattributetablemodel.cpp.

int QgsAttributeTableModel::fieldIdx ( int  col) const

get field index from column

Definition at line 477 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::finished ( )
signal
Qt::ItemFlags QgsAttributeTableModel::flags ( const QModelIndex index) const
overridevirtual

Returns item flags for the index.

Parameters
indexmodel index

Reimplemented from QAbstractItemModel.

Definition at line 675 of file qgsattributetablemodel.cpp.

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

Returns header data.

Parameters
sectionrequired section
orientationhorizontal or vertical orientation
roledata role

Reimplemented from QAbstractItemModel.

Definition at line 499 of file qgsattributetablemodel.cpp.

QModelIndex QgsAttributeTableModel::idToIndex ( QgsFeatureId  id) const

Definition at line 445 of file qgsattributetablemodel.cpp.

QModelIndexList QgsAttributeTableModel::idToIndexList ( QgsFeatureId  id) const

Definition at line 450 of file qgsattributetablemodel.cpp.

int QgsAttributeTableModel::idToRow ( QgsFeatureId  id) const

Maps feature id to table row.

Parameters
idfeature id

Definition at line 434 of file qgsattributetablemodel.cpp.

QgsVectorLayer* QgsAttributeTableModel::layer ( ) const
inline

Returns the layer this model uses as backend.

Retrieved from the layer cache.

Definition at line 163 of file qgsattributetablemodel.h.

QgsVectorLayerCache* QgsAttributeTableModel::layerCache ( ) const
inline

Returns the layer cache this model uses as backend.

Definition at line 168 of file qgsattributetablemodel.h.

void QgsAttributeTableModel::layerDeleted ( )
protectedvirtualslot

Launched when layer has been deleted.

Definition at line 236 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::loadAttributes ( )
protectedvirtual

Gets mFieldCount, mAttributes and mValueMaps.

Definition at line 290 of file qgsattributetablemodel.cpp.

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

void QgsAttributeTableModel::modelChanged ( )
signal

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

Parameters
columnThe column index of the field to catch

Definition at line 726 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::progress ( int  i,
bool &  cancel 
)
signal
Note
not available in python bindings
void QgsAttributeTableModel::reload ( const QModelIndex index1,
const QModelIndex index2 
)

Reloads the model data between indices.

Parameters
index1start index
index2end index

Definition at line 694 of file qgsattributetablemodel.cpp.

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

Remove rows.

Reimplemented from QAbstractItemModel.

Definition at line 139 of file qgsattributetablemodel.cpp.

const QgsFeatureRequest & QgsAttributeTableModel::request ( ) const

Get the the feature request.

Definition at line 763 of file qgsattributetablemodel.cpp.

void QgsAttributeTableModel::resetModel ( )
inline

Resets the model.

Alias to loadLayer()

Definition at line 125 of file qgsattributetablemodel.h.

int QgsAttributeTableModel::rowCount ( const QModelIndex parent = QModelIndex()) const
overridevirtual

Returns the number of rows.

Parameters
parentparent index

Definition at line 487 of file qgsattributetablemodel.cpp.

QgsFeatureId QgsAttributeTableModel::rowToId ( int  row) const

Maps row to feature id.

Parameters
rowrow number

Definition at line 465 of file qgsattributetablemodel.cpp.

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

Updates data on given index.

Parameters
indexmodel index
valuenew data value
roledata role

Reimplemented from QAbstractItemModel.

Definition at line 638 of file qgsattributetablemodel.cpp.

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 215 of file qgsattributetablemodel.h.

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

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

Swaps two rows.

Parameters
afirst row
bsecond row

Definition at line 411 of file qgsattributetablemodel.cpp.

Member Data Documentation

QgsAttributeList QgsAttributeTableModel::mAttributes
protected

Definition at line 296 of file qgsattributetablemodel.h.

QVector<QVariant> QgsAttributeTableModel::mAttributeWidgetCaches
protected

Definition at line 298 of file qgsattributetablemodel.h.

QgsExpressionContext QgsAttributeTableModel::mExpressionContext
mutableprotected

Definition at line 305 of file qgsattributetablemodel.h.

QgsFeature QgsAttributeTableModel::mFeat
mutableprotected

Definition at line 294 of file qgsattributetablemodel.h.

int QgsAttributeTableModel::mFieldCount
protected

Definition at line 292 of file qgsattributetablemodel.h.

QHash<QgsFeatureId, int> QgsAttributeTableModel::mIdRowMap
protected

Definition at line 301 of file qgsattributetablemodel.h.

QgsVectorLayerCache* QgsAttributeTableModel::mLayerCache
protected

Definition at line 291 of file qgsattributetablemodel.h.

QHash<int, QgsFeatureId> QgsAttributeTableModel::mRowIdMap
protected

Definition at line 302 of file qgsattributetablemodel.h.

QHash<int, QList<QgsConditionalStyle> > QgsAttributeTableModel::mRowStylesMap
mutableprotected

Definition at line 303 of file qgsattributetablemodel.h.

QVector<QgsEditorWidgetConfig> QgsAttributeTableModel::mWidgetConfigs
protected

Definition at line 299 of file qgsattributetablemodel.h.

QVector<QgsEditorWidgetFactory*> QgsAttributeTableModel::mWidgetFactories
protected

Definition at line 297 of file qgsattributetablemodel.h.


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