|
QGIS API Documentation
2.0.1-Dufour
|
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a QAbstractItemView. More...
#include <qgsattributetablemodel.h>


Public Types | |
| enum | Role { SortRole = Qt::UserRole + 1, FeatureIdRole = Qt::UserRole + 2, FieldIndexRole = Qt::UserRole + 3 } |
Signals | |
| void | modelChanged () |
| Model has been changed. More... | |
| void | progress (int i, bool &cancel) |
| void | finished () |
Public Member Functions | |
| QgsAttributeTableModel (QgsVectorLayerCache *layerCache, QObject *parent=0) | |
| Constructor. More... | |
| virtual | ~QgsAttributeTableModel () |
| virtual void | loadLayer () |
| Loads the layer into the model Preferably to be called, before basing any other models on this model. More... | |
| virtual int | rowCount (const QModelIndex &parent=QModelIndex()) const |
| Returns the number of rows. More... | |
| int | columnCount (const QModelIndex &parent=QModelIndex()) const |
| Returns the number of columns. More... | |
| QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const |
| Returns header data. More... | |
| virtual QVariant | data (const QModelIndex &index, int role) const |
| Returns data on the given index. More... | |
| virtual bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) |
| Updates data on given index. More... | |
| Qt::ItemFlags | flags (const QModelIndex &index) const |
| Returns item flags for the index. 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()) |
| Remove rows. More... | |
| void | resetModel () |
| Resets the model. More... | |
| int | idToRow (QgsFeatureId id) const |
| Maps feature id to table row. More... | |
| QModelIndex | idToIndex (QgsFeatureId id) const |
| QModelIndexList | idToIndexList (QgsFeatureId id) const |
| int | fieldIdx (int col) const |
| get field index from column More... | |
| int | fieldCol (int idx) const |
| get column from field index More... | |
| QgsFeatureId | rowToId (int row) const |
| Maps row to feature id. More... | |
| void | swapRows (QgsFeatureId a, QgsFeatureId b) |
| Swaps two rows. More... | |
| QgsVectorLayer * | layer () const |
| Returns the layer this model uses as backend. More... | |
| QgsVectorLayerCache * | layerCache () const |
| Returns the layer cache this model uses as backend. More... | |
| void | executeAction (int action, const QModelIndex &idx) const |
| Execute an action. More... | |
| QgsFeature | feature (const QModelIndex &idx) const |
| Return the feature attributes at given model index. More... | |
| void | prefetchColumnData (int column) |
| Caches the entire data for one column. More... | |
Protected Slots | |
| virtual void | attributeValueChanged (QgsFeatureId fid, int idx, const QVariant &value) |
| Launched when attribute value has been changed. More... | |
| virtual void | featureDeleted (QgsFeatureId fid) |
| Launched when a feature has been deleted. More... | |
| virtual void | featureAdded (QgsFeatureId fid, bool inOperation=true) |
| Launched when a feature has been added. More... | |
| virtual void | layerDeleted () |
| Launched when layer has been deleted. More... | |
Protected Member Functions | |
| virtual void | loadAttributes () |
| Gets mFieldCount, mAttributes and mValueMaps. More... | |
Protected Attributes | |
| QgsVectorLayerCache * | mLayerCache |
| int | mFieldCount |
| QgsFeature | mFeat |
| QgsAttributeList | mAttributes |
| QMap< int, const QMap< QString, QVariant > * > | mValueMaps |
| QHash< QgsFeatureId, int > | mIdRowMap |
| QHash< int, QgsFeatureId > | mRowIdMap |
Private Slots | |
| virtual void | updatedFields () |
| Launched whenever the number of fields has changed. More... | |
| virtual void | attributeDeleted (int idx) |
| Called whenever a column is removed;. More... | |
Private Member Functions | |
| virtual bool | loadFeatureAtId (QgsFeatureId fid) const |
| Load feature fid into local cache (mFeat) More... | |
Private Attributes | |
| QgsFeatureRequest | mFeatureRequest |
| int | mCachedField |
| The currently cached column. More... | |
| QHash< QgsFeatureId, QVariant > | mFieldCache |
| Allows caching one specific column (used for sorting) More... | |
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 42 of file qgsattributetablemodel.h.
| Enumerator | |
|---|---|
| SortRole | |
| FeatureIdRole | |
| FieldIndexRole | |
Definition at line 47 of file qgsattributetablemodel.h.
| QgsAttributeTableModel::QgsAttributeTableModel | ( | QgsVectorLayerCache * | layerCache, |
| QObject * | parent = 0 |
||
| ) |
Constructor.
| layerCache | A layer cache to use as backend |
| parent | The parent QObject (owner) |
Definition at line 34 of file qgsattributetablemodel.cpp.
References attributeDeleted(), attributeValueChanged(), featureAdded(), featureDeleted(), QgsVectorLayer::geometryType(), layer(), QgsVectorLayerCache::layer(), layerDeleted(), loadAttributes(), mFeat, mFeatureRequest, MathUtils::min(), mLayerCache, QgsFeatureRequest::NoGeometry, QGis::NoGeometry, QgsDebugMsg, QgsFeature::setFeatureId(), QgsFeatureRequest::setFlags(), and updatedFields().
|
virtual |
Definition at line 61 of file qgsattributetablemodel.cpp.
References mValueMaps.
|
privatevirtualslot |
Called whenever a column is removed;.
Definition at line 152 of file qgsattributetablemodel.cpp.
References mCachedField, and prefetchColumnData().
Referenced by QgsAttributeTableModel().
|
protectedvirtualslot |
Launched when attribute value has been changed.
| fid | feature id |
| idx | attribute index |
| value | new value |
Definition at line 177 of file qgsattributetablemodel.cpp.
References fieldCol(), QgsFeature::id(), idToRow(), mCachedField, mFeat, mFieldCache, setData(), and QgsFeature::setValid().
Referenced by QgsAttributeTableModel().
| int QgsAttributeTableModel::columnCount | ( | const QModelIndex & | parent = QModelIndex() | ) | const |
Returns the number of columns.
| parent | parent index |
Definition at line 416 of file qgsattributetablemodel.cpp.
References mFieldCount.
Referenced by featureAdded(), and idToIndexList().
|
virtual |
Returns data on the given index.
| index | model index |
| role | data role |
Definition at line 454 of file qgsattributetablemodel.cpp.
References QgsFeature::attribute(), QgsVectorLayer::Calendar, QgsField::displayString(), QgsVectorLayer::editType(), FeatureIdRole, FieldIndexRole, QgsFeature::id(), QgsFeature::isValid(), layer(), loadFeatureAtId(), mAttributes, mCachedField, mFeat, mFieldCache, mFieldCount, mValueMaps, QgsVectorLayer::pendingFields(), rowToId(), SortRole, and QgsField::type().
Referenced by feature(), and loadAttributes().
| void QgsAttributeTableModel::executeAction | ( | int | action, |
| const QModelIndex & | idx | ||
| ) | const |
Execute an action.
Definition at line 600 of file qgsattributetablemodel.cpp.
References QgsVectorLayer::actions(), QgsAttributeAction::doAction(), feature(), fieldIdx(), and layer().
Referenced by QgsAttributeTableAction::execute().
| QgsFeature QgsAttributeTableModel::feature | ( | const QModelIndex & | idx | ) | const |
Return the feature attributes at given model index.
Definition at line 606 of file qgsattributetablemodel.cpp.
References data(), QgsFeature::initAttributes(), mAttributes, rowToId(), QgsFeature::setAttribute(), and QgsFeature::setFeatureId().
Referenced by executeAction().
|
protectedvirtualslot |
Launched when a feature has been added.
| fid | feature id |
| inOperation | guard insertion with beginInsertRows() / endInsertRows() |
Definition at line 129 of file qgsattributetablemodel.cpp.
References columnCount(), mIdRowMap, mRowIdMap, prefetchColumnData(), reload(), and rowCount().
Referenced by loadLayer(), and QgsAttributeTableModel().
|
protectedvirtualslot |
Launched when a feature has been deleted.
| fid | feature id |
Definition at line 78 of file qgsattributetablemodel.cpp.
References idToRow(), and prefetchColumnData().
Referenced by QgsAttributeTableModel().
| int QgsAttributeTableModel::fieldCol | ( | int | idx | ) | const |
get column from field index
Definition at line 405 of file qgsattributetablemodel.cpp.
References mAttributes.
Referenced by attributeValueChanged().
| int QgsAttributeTableModel::fieldIdx | ( | int | col | ) | const |
get field index from column
Definition at line 400 of file qgsattributetablemodel.cpp.
References mAttributes.
Referenced by executeAction().
|
signal |
Referenced by loadLayer().
| Qt::ItemFlags QgsAttributeTableModel::flags | ( | const QModelIndex & | index | ) | const |
Returns item flags for the index.
| index | model index |
Definition at line 566 of file qgsattributetablemodel.cpp.
References QgsVectorLayer::Immutable, layer(), mAttributes, and mFieldCount.
Referenced by loadAttributes().
| QVariant QgsAttributeTableModel::headerData | ( | int | section, |
| Qt::Orientation | orientation, | ||
| int | role = Qt::DisplayRole |
||
| ) | const |
Returns header data.
| section | required section |
| orientation | horizontal or vertical orientation |
| role | data role |
Definition at line 422 of file qgsattributetablemodel.cpp.
References QgsVectorLayer::attributeAlias(), layer(), mAttributes, mFieldCount, QgsField::name(), QgsVectorLayer::pendingFields(), and tr.
| QModelIndex QgsAttributeTableModel::idToIndex | ( | QgsFeatureId | id | ) | const |
Definition at line 370 of file qgsattributetablemodel.cpp.
References idToRow().
Referenced by QgsFeatureListModel::fidToIdx().
| QModelIndexList QgsAttributeTableModel::idToIndexList | ( | QgsFeatureId | id | ) | const |
Definition at line 375 of file qgsattributetablemodel.cpp.
References columnCount(), and idToRow().
| int QgsAttributeTableModel::idToRow | ( | QgsFeatureId | id | ) | const |
Maps feature id to table row.
| id | feature id |
Definition at line 359 of file qgsattributetablemodel.cpp.
References mIdRowMap, and QgsDebugMsg.
Referenced by attributeValueChanged(), featureDeleted(), idToIndex(), idToIndexList(), and swapRows().
|
inline |
Returns the layer this model uses as backend.
Retrieved from the layer cache.
Definition at line 164 of file qgsattributetablemodel.h.
Referenced by data(), executeAction(), flags(), headerData(), QgsAttributeTableDelegate::layer(), loadAttributes(), prefetchColumnData(), QgsAttributeTableModel(), and setData().
|
inline |
Returns the layer cache this model uses as backend.
Definition at line 169 of file qgsattributetablemodel.h.
Referenced by QgsAttributeTableFilterModel::generateListOfVisibleFeatures().
|
protectedvirtualslot |
Launched when layer has been deleted.
Definition at line 160 of file qgsattributetablemodel.cpp.
References mValueMaps, QgsDebugMsg, removeRows(), and rowCount().
Referenced by QgsAttributeTableModel().
|
protectedvirtual |
Gets mFieldCount, mAttributes and mValueMaps.
Definition at line 189 of file qgsattributetablemodel.cpp.
References QgsFeature::attribute(), QgsFields::count(), data(), QgsVectorLayer::editType(), QgsExpression::evaluate(), QgsVectorLayer::fieldNameIndex(), flags(), QgsVectorLayer::getFeatures(), QgsExpression::hasParserError(), QgsVectorLayer::Hidden, QgsMapLayerRegistry::instance(), layer(), QgsMapLayerRegistry::mapLayer(), mAttributes, mFieldCount, QgsVectorLayer::ValueRelationData::mFilterExpression, QgsVectorLayer::ValueRelationData::mKey, QgsVectorLayer::ValueRelationData::mLayer, QgsVectorLayer::ValueRelationData::mValue, mValueMaps, QgsExpression::needsGeometry(), QgsFeatureRequest::NoFlags, QgsFeatureRequest::NoGeometry, QgsVectorLayer::pendingFields(), QgsExpression::prepare(), QgsExpression::referencedColumns(), QgsVectorLayer::ValueMap, QgsVectorLayer::ValueRelation, and QgsVectorLayer::valueRelation().
Referenced by QgsAttributeTableModel(), and updatedFields().
|
privatevirtual |
Load feature fid into local cache (mFeat)
| fid | feature id |
Definition at line 66 of file qgsattributetablemodel.cpp.
References QgsVectorLayerCache::featureAtId(), mFeat, MathUtils::min(), mLayerCache, and QgsDebugMsgLevel.
Referenced by data().
|
virtual |
Loads the layer into the model Preferably to be called, before basing any other models on this model.
Definition at line 299 of file qgsattributetablemodel.cpp.
References featureAdded(), finished(), QgsVectorLayerCache::getFeatures(), QgsFeature::id(), mAttributes, mFeatureRequest, mFieldCount, mLayerCache, QgsFeatureIterator::nextFeature(), progress(), QgsDebugMsg, removeRows(), and rowCount().
Referenced by QgsDualView::initModels(), and QgsAttributeTableView::setCanvasAndLayerCache().
|
signal |
Model has been changed.
Referenced by updatedFields().
| 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 619 of file qgsattributetablemodel.cpp.
References QgsFeature::attribute(), QgsVectorLayerCache::getFeatures(), QgsFeature::id(), layer(), mAttributes, mCachedField, mFieldCache, mLayerCache, QgsFeatureIterator::nextFeature(), QgsFeatureRequest::NoGeometry, and QgsVectorLayer::pendingFields().
Referenced by attributeDeleted(), featureAdded(), featureDeleted(), and QgsAttributeTableFilterModel::sort().
|
signal |
Referenced by loadLayer().
| void QgsAttributeTableModel::reload | ( | const QModelIndex & | index1, |
| const QModelIndex & | index2 | ||
| ) |
Reloads the model data between indices.
| index1 | start index |
| index2 | end index |
Definition at line 583 of file qgsattributetablemodel.cpp.
References mFeat, MathUtils::min(), mLayerCache, QgsVectorLayerCache::removeCachedFeature(), rowToId(), and QgsFeature::setFeatureId().
Referenced by featureAdded().
| bool QgsAttributeTableModel::removeRows | ( | int | row, |
| int | count, | ||
| const QModelIndex & | parent = QModelIndex() |
||
| ) |
Remove rows.
Definition at line 89 of file qgsattributetablemodel.cpp.
References FID_TO_STRING, mIdRowMap, mRowIdMap, and QgsDebugMsgLevel.
Referenced by layerDeleted(), and loadLayer().
| void QgsAttributeTableModel::resetModel | ( | ) |
Resets the model.
Definition at line 595 of file qgsattributetablemodel.cpp.
|
virtual |
Returns the number of rows.
| parent | parent index |
Definition at line 410 of file qgsattributetablemodel.cpp.
References mRowIdMap.
Referenced by featureAdded(), QgsDualView::featureCount(), layerDeleted(), and loadLayer().
| QgsFeatureId QgsAttributeTableModel::rowToId | ( | int | row | ) | const |
Maps row to feature id.
| row | row number |
Definition at line 388 of file qgsattributetablemodel.cpp.
References MathUtils::min(), mRowIdMap, and QgsDebugMsg.
Referenced by data(), feature(), QgsAttributeTableAction::featureForm(), QgsAttributeTableFilterModel::filterAcceptsRow(), QgsFeatureListModel::idxToFid(), reload(), and QgsAttributeTableFilterModel::rowToId().
|
virtual |
Updates data on given index.
| index | model index |
| value | new data value |
| role | data role |
Definition at line 551 of file qgsattributetablemodel.cpp.
References QgsVectorLayer::isEditable(), QgsVectorLayer::isModified(), layer(), and mFieldCount.
Referenced by attributeValueChanged().
| void QgsAttributeTableModel::swapRows | ( | QgsFeatureId | a, |
| QgsFeatureId | b | ||
| ) |
Swaps two rows.
| a | first row |
| b | second row |
Definition at line 336 of file qgsattributetablemodel.cpp.
|
privatevirtualslot |
Launched whenever the number of fields has changed.
Definition at line 145 of file qgsattributetablemodel.cpp.
References loadAttributes(), modelChanged(), and QgsDebugMsg.
Referenced by QgsAttributeTableModel().
|
protected |
Definition at line 243 of file qgsattributetablemodel.h.
Referenced by data(), feature(), fieldCol(), fieldIdx(), flags(), headerData(), loadAttributes(), loadLayer(), and prefetchColumnData().
|
private |
The currently cached column.
Definition at line 267 of file qgsattributetablemodel.h.
Referenced by attributeDeleted(), attributeValueChanged(), data(), and prefetchColumnData().
|
mutableprotected |
Definition at line 241 of file qgsattributetablemodel.h.
Referenced by attributeValueChanged(), data(), loadFeatureAtId(), QgsAttributeTableModel(), and reload().
|
private |
Definition at line 264 of file qgsattributetablemodel.h.
Referenced by loadLayer(), and QgsAttributeTableModel().
|
private |
Allows caching one specific column (used for sorting)
Definition at line 269 of file qgsattributetablemodel.h.
Referenced by attributeValueChanged(), data(), and prefetchColumnData().
|
protected |
Definition at line 239 of file qgsattributetablemodel.h.
Referenced by columnCount(), data(), flags(), headerData(), loadAttributes(), loadLayer(), and setData().
|
protected |
Definition at line 246 of file qgsattributetablemodel.h.
Referenced by featureAdded(), idToRow(), removeRows(), and swapRows().
|
protected |
Definition at line 238 of file qgsattributetablemodel.h.
Referenced by loadFeatureAtId(), loadLayer(), prefetchColumnData(), QgsAttributeTableModel(), and reload().
|
protected |
Definition at line 247 of file qgsattributetablemodel.h.
Referenced by featureAdded(), removeRows(), rowCount(), rowToId(), and swapRows().
|
protected |
Definition at line 244 of file qgsattributetablemodel.h.
Referenced by data(), layerDeleted(), loadAttributes(), and ~QgsAttributeTableModel().
1.8.6