Class QfFeatureModel
Inherits the following classes: QAbstractListModel
Classes
| Type | Name |
|---|---|
| struct | RememberValues keeping the information what attributes are remembered and the last edited feature |
Public Types
| Type | Name |
|---|---|
| enum | FeatureRoles |
| enum | ModelModes |
Public Slots
| Type | Name |
|---|---|
| slot void | removeLayer (QObject * layer) |
Public Properties
| Type | Name |
|---|---|
| property QfAppExpressionContextScopesGenerator * | appExpressionContextScopesGenerator |
| property bool | attributeEditingLocked |
| property bool | batchMode |
| property QgsVectorLayer * | currentLayer |
| property QgsFeature | feature |
| property bool | featureAdditionLocked |
| property bool | featureDeletionLocked |
| property QList< QgsFeature > | features |
| property QfGeometry * | geometry |
| property bool | geometryEditingLocked |
| property QgsFeature | linkedParentFeature |
| property QgsRelation | linkedRelation |
| property QString | linkedRelationOrderingField |
| property QfFeatureModel::ModelModes | modelMode |
| property QgsProject * | project |
| property QfSnappingResult | topSnappingResult |
| property QfVertexModel * | vertexModel |
Public Signals
| Type | Name |
|---|---|
| signal void | appExpressionContextScopesGeneratorChanged |
| signal void | attributeEditingLockedChanged |
| signal void | batchModeChanged |
| signal void | currentLayerChanged |
| signal void | featureAdditionLockedChanged |
| signal void | featureChanged Emitted when the model's single feature has been changed. |
| signal void | featureDeletionLockedChanged |
| signal void | featureUpdated Emitted when the model's feature has been saved (i.e. updated) but not changed as a result. |
| signal void | featuresChanged Emitted when the model's multi features list has been changed. |
| signal void | geometryChanged |
| signal void | geometryEditingLockedChanged |
| signal void | linkedParentFeatureChanged |
| signal void | linkedRelationChanged |
| signal void | linkedRelationOrderingFieldChanged |
| signal void | modelModeChanged |
| signal void | projectChanged |
| signal void | topSnappingResultChanged |
| signal void | vertexModelChanged |
| signal void | warning (const QString & text) |
Public Functions
| Type | Name |
|---|---|
| QfFeatureModel (QObject * parent=nullptr) |
|
| QfAppExpressionContextScopesGenerator * | appExpressionContextScopesGenerator () const |
| Q_INVOKABLE void | applyGeometry (bool fromVertexModel=false, bool skipTopologicalEditing=false) |
| Q_INVOKABLE void | applyGeometryToVertexModel () Apply the feature geometry to a vertex model if present. |
| bool | attributeEditingLocked () const |
| bool | batchMode () const |
| Q_INVOKABLE bool | changeGeometry (const QgsGeometry & geometry) |
| Q_INVOKABLE bool | create (bool flushBuffer=true) |
| QgsExpressionContext | createExpressionContext () const |
| QVariant | data (const QModelIndex & index, int role) override const |
| Q_INVOKABLE bool | deleteFeature () |
| QgsFeature | feature () const |
| bool | featureAdditionLocked () const |
| bool | featureDeletionLocked () const |
| QList< QgsFeature > | features () const |
| QfGeometry * | geometry () |
| bool | geometryEditingLocked () const |
| QgsVectorLayer * | layer () const |
| QgsFeature | linkedParentFeature () const |
| QgsRelation | linkedRelation () const |
| QString | linkedRelationOrderingField () const |
| ModelModes | modelMode () const |
| bool | positionLocked () const |
| QgsProject * | project () const Returns the current project from which the digitizing logs will be sought. |
| Q_INVOKABLE void | refresh () |
| QVector< bool > | rememberedAttributes () const |
| Q_INVOKABLE void | reset () |
| Q_INVOKABLE void | resetAttributes (bool partialReset=false) |
| Q_INVOKABLE void | resetFeature () |
| Q_INVOKABLE void | resetFeatureId () |
| QHash< int, QByteArray > | roleNames () override const |
| int | rowCount (const QModelIndex & parent) override const |
| Q_INVOKABLE bool | save (bool flushBuffer=true) |
| void | setAppExpressionContextScopesGenerator (QfAppExpressionContextScopesGenerator * generator) |
| void | setBatchMode (bool batchMode) |
| void | setCurrentLayer (QgsVectorLayer * layer) |
| bool | setData (const QModelIndex & index, const QVariant & value, int role=Qt::EditRole) override |
| void | setFeature (const QgsFeature & feature) |
| void | setFeatures (const QList< QgsFeature > & features) |
| void | setGeometry (QfGeometry * geometry) |
| void | setLinkedParentFeature (const QgsFeature & feature) |
| void | setLinkedRelation (const QgsRelation & relation) |
| void | setLinkedRelationOrderingField (const QString & orderingField) |
| void | setModelMode (const ModelModes mode) |
| void | setPositionLocked (bool positionLocked) |
| void | setProject (QgsProject * project) Sets the project used to find the digitizing logs layer. |
| void | setTopSnappingResult (const QfSnappingResult & topSnappingResult) |
| void | setVertexModel (QfVertexModel * model) Sets the vertex model is used to highlight vertices on the map. |
| Q_INVOKABLE bool | suppressFeatureForm () const |
| QfSnappingResult | topSnappingResult () const |
| Q_INVOKABLE bool | updateAttributesFromFeature (const QgsFeature & feature) |
| Q_INVOKABLE void | updateRubberband () const Update the linked geometry rubber band to match the feature's geometry. |
| QfVertexModel * | vertexModel () Returns the vertex model is used to highlight vertices on the map. |
Public Types Documentation
enum FeatureRoles
enum QfFeatureModel::FeatureRoles {
AttributeName = Qt::UserRole + 1,
AttributeValue,
Field,
RememberAttribute,
LinkedAttribute,
AttributeAllowEdit
};
enum ModelModes
enum QfFeatureModel::ModelModes {
SingleFeatureModel = 1,
MultiFeatureModel
};
Public Properties Documentation
property appExpressionContextScopesGenerator [1/2]
QfAppExpressionContextScopesGenerator * QfFeatureModel::appExpressionContextScopesGenerator;
property attributeEditingLocked [1/2]
bool QfFeatureModel::attributeEditingLocked;
property batchMode [1/2]
bool QfFeatureModel::batchMode;
property currentLayer
QgsVectorLayer * QfFeatureModel::currentLayer;
property feature [1/2]
QgsFeature QfFeatureModel::feature;
property featureAdditionLocked [1/2]
bool QfFeatureModel::featureAdditionLocked;
property featureDeletionLocked [1/2]
bool QfFeatureModel::featureDeletionLocked;
property features [1/2]
QList<QgsFeature> QfFeatureModel::features;
property geometry [1/2]
QfGeometry * QfFeatureModel::geometry;
property geometryEditingLocked [1/2]
bool QfFeatureModel::geometryEditingLocked;
property linkedParentFeature [1/2]
QgsFeature QfFeatureModel::linkedParentFeature;
property linkedRelation [1/2]
QgsRelation QfFeatureModel::linkedRelation;
property linkedRelationOrderingField [1/2]
QString QfFeatureModel::linkedRelationOrderingField;
property modelMode [1/2]
QfFeatureModel::ModelModes QfFeatureModel::modelMode;
property project [1/2]
QgsProject * QfFeatureModel::project;
property topSnappingResult [1/2]
QfSnappingResult QfFeatureModel::topSnappingResult;
property vertexModel [1/2]
QfVertexModel * QfFeatureModel::vertexModel;
Public Slots Documentation
slot removeLayer
void QfFeatureModel::removeLayer;
Public Signals Documentation
signal appExpressionContextScopesGeneratorChanged
void QfFeatureModel::appExpressionContextScopesGeneratorChanged;
signal attributeEditingLockedChanged
void QfFeatureModel::attributeEditingLockedChanged;
signal batchModeChanged
void QfFeatureModel::batchModeChanged;
signal currentLayerChanged
void QfFeatureModel::currentLayerChanged;
signal featureAdditionLockedChanged
void QfFeatureModel::featureAdditionLockedChanged;
signal featureChanged
Emitted when the model's single feature has been changed.
void QfFeatureModel::featureChanged;
signal featureDeletionLockedChanged
void QfFeatureModel::featureDeletionLockedChanged;
signal featureUpdated
Emitted when the model's feature has been saved (i.e. updated) but not changed as a result.
void QfFeatureModel::featureUpdated;
signal featuresChanged
Emitted when the model's multi features list has been changed.
void QfFeatureModel::featuresChanged;
signal geometryChanged
void QfFeatureModel::geometryChanged;
signal geometryEditingLockedChanged
void QfFeatureModel::geometryEditingLockedChanged;
signal linkedParentFeatureChanged
void QfFeatureModel::linkedParentFeatureChanged;
signal linkedRelationChanged
void QfFeatureModel::linkedRelationChanged;
signal linkedRelationOrderingFieldChanged
void QfFeatureModel::linkedRelationOrderingFieldChanged;
signal modelModeChanged
void QfFeatureModel::modelModeChanged;
signal projectChanged
void QfFeatureModel::projectChanged;
signal topSnappingResultChanged
void QfFeatureModel::topSnappingResultChanged;
signal vertexModelChanged
void QfFeatureModel::vertexModelChanged;
signal warning
void QfFeatureModel::warning;
Public Functions Documentation
function QfFeatureModel
explicit QfFeatureModel::QfFeatureModel (
QObject * parent=nullptr
)
function appExpressionContextScopesGenerator [2/2]
QfAppExpressionContextScopesGenerator * QfFeatureModel::appExpressionContextScopesGenerator () const
Returns the application expression context scopes generator object
function applyGeometry
Q_INVOKABLE void QfFeatureModel::applyGeometry (
bool fromVertexModel=false,
bool skipTopologicalEditing=false
)
Apply the geometry object or vertex model object's geometry to the feature geometry.
Parameters:
fromVertexModelset to TRUE to use the vertex modelskipTopologicalEditingset to TRUE to skip project-level topological editing rule
function applyGeometryToVertexModel
Apply the feature geometry to a vertex model if present.
Q_INVOKABLE void QfFeatureModel::applyGeometryToVertexModel ()
function attributeEditingLocked [2/2]
inline bool QfFeatureModel::attributeEditingLocked () const
function batchMode [2/2]
inline bool QfFeatureModel::batchMode () const
Returns TRUE if the feature model is in batch mode. When enabled, the vector layer will remain in editing mode until batch mode is disabled.
function changeGeometry
Q_INVOKABLE bool QfFeatureModel::changeGeometry (
const QgsGeometry & geometry
)
Sets the geometry of the feature.
function create
Q_INVOKABLE bool QfFeatureModel::create (
bool flushBuffer=true
)
Will create this feature as a new feature on the data source.
By setting flushBuffer to FALSE, the created feature will remain in the edit buffer provided the vector layer was already in editing mode. The flushBuffer parameter will be ignored for layers containing relationships.
Returns:
TRUE if a feature was successfully created
function createExpressionContext
QgsExpressionContext QfFeatureModel::createExpressionContext () const
function data
QVariant QfFeatureModel::data (
const QModelIndex & index,
int role
) override const
function deleteFeature
Q_INVOKABLE bool QfFeatureModel::deleteFeature ()
Deletes the current feature from the data source.
function feature [2/2]
QgsFeature QfFeatureModel::feature () const
function featureAdditionLocked [2/2]
inline bool QfFeatureModel::featureAdditionLocked () const
function featureDeletionLocked [2/2]
inline bool QfFeatureModel::featureDeletionLocked () const
function features [2/2]
QList< QgsFeature > QfFeatureModel::features () const
Return the features list for passing it around in QML
function geometry [2/2]
QfGeometry * QfFeatureModel::geometry ()
Returns the geometry object that will drive the feature geometry.
function geometryEditingLocked [2/2]
inline bool QfFeatureModel::geometryEditingLocked () const
function layer
QgsVectorLayer * QfFeatureModel::layer () const
function linkedParentFeature [2/2]
QgsFeature QfFeatureModel::linkedParentFeature () const
A linked feature is a parent feature of a relation passing it's pk(s) to the created child features fk(s)
Returns:
the parent feature linked to this feature
See also: setLinkedParentFeature
function linkedRelation [2/2]
QgsRelation QfFeatureModel::linkedRelation () const
The relation connecting this feature to the parent, over which this feature has been loaded (e.g. over relation editor widget)
Returns:
the relation connecting the parent
See also: setLinkedRelation
function linkedRelationOrderingField [2/2]
QString QfFeatureModel::linkedRelationOrderingField () const
Returns the field name used for ordering in ordered relations. Empty string if not available.
See also: setLinkedRelationOrderingField
function modelMode [2/2]
ModelModes QfFeatureModel::modelMode () const
function positionLocked
bool QfFeatureModel::positionLocked () const
Returns whether the position is locked to the GNSS
function project [2/2]
Returns the current project from which the digitizing logs will be sought.
inline QgsProject * QfFeatureModel::project () const
function refresh
Q_INVOKABLE void QfFeatureModel::refresh ()
Will refresh the feature values and geometry from the data source.
function rememberedAttributes
QVector< bool > QfFeatureModel::rememberedAttributes () const
function reset
Q_INVOKABLE void QfFeatureModel::reset ()
Will reset the feature to the original values and dismiss any buffered edits.
function resetAttributes
Q_INVOKABLE void QfFeatureModel::resetAttributes (
bool partialReset=false
)
Resets the attribute values of the current feature
Parameters:
partialResetwhen set to TRUE, only attributes with default or remembered values will be reset
function resetFeature
Q_INVOKABLE void QfFeatureModel::resetFeature ()
function resetFeatureId
Q_INVOKABLE void QfFeatureModel::resetFeatureId ()
function roleNames
QHash< int, QByteArray > QfFeatureModel::roleNames () override const
function rowCount
int QfFeatureModel::rowCount (
const QModelIndex & parent
) override const
function save
Q_INVOKABLE bool QfFeatureModel::save (
bool flushBuffer=true
)
Will commit the edit buffer of this layer. May change in the future to only commit the changes buffered in this model.
By setting flushBuffer to FALSE, the edits made to the feature will remain in the edit buffer provided the vector layer was already in editing mode.
Returns:
TRUE if a feature was successfully saved
function setAppExpressionContextScopesGenerator
void QfFeatureModel::setAppExpressionContextScopesGenerator (
QfAppExpressionContextScopesGenerator * generator
)
Sets the application expression context scopes generator object
function setBatchMode
void QfFeatureModel::setBatchMode (
bool batchMode
)
Toggles the feature model batch mode. When enabled, the vector layer will remain in editing mode until batch mode is disabled.
function setCurrentLayer
void QfFeatureModel::setCurrentLayer (
QgsVectorLayer * layer
)
function setData
bool QfFeatureModel::setData (
const QModelIndex & index,
const QVariant & value,
int role=Qt::EditRole
) override
function setFeature
void QfFeatureModel::setFeature (
const QgsFeature & feature
)
function setFeatures
void QfFeatureModel::setFeatures (
const QList< QgsFeature > & features
)
function setGeometry
void QfFeatureModel::setGeometry (
QfGeometry * geometry
)
Sets the geometry object that will drive the feature geometry.
Note:
This is not the QgsGeometry of the feature. To change that, use the changeGeometry function.
function setLinkedParentFeature
void QfFeatureModel::setLinkedParentFeature (
const QgsFeature & feature
)
A linked feature is a parent feature of a relation passing it's pk(s) to the created child features fk(s) The fk fields are evaluated over the linked relation.
Parameters:
feature
See also: linkedParentFeature
function setLinkedRelation
void QfFeatureModel::setLinkedRelation (
const QgsRelation & relation
)
The relation connecting this feature to the parent, over which this feature has been loaded (e.g. over relation editor widget) The relation is userd to evaluate the parents pk(s) and the childs fk(s)
Parameters:
relation
See also: linkedRelation
function setLinkedRelationOrderingField
void QfFeatureModel::setLinkedRelationOrderingField (
const QString & orderingField
)
Sets the field name used for ordering in ordered relations. Empty string if not available.
See also: linkedRelationOrderingField
function setModelMode
void QfFeatureModel::setModelMode (
const ModelModes mode
)
function setPositionLocked
void QfFeatureModel::setPositionLocked (
bool positionLocked
)
Sets whether the position is locked to the GNSS
function setProject
Sets the project used to find the digitizing logs layer.
void QfFeatureModel::setProject (
QgsProject * project
)
function setTopSnappingResult
void QfFeatureModel::setTopSnappingResult (
const QfSnappingResult & topSnappingResult
)
Sets the top snapping result of the coordinate locator
Parameters:
topSnappingResultthe top snapping result object
function setVertexModel
Sets the vertex model is used to highlight vertices on the map.
void QfFeatureModel::setVertexModel (
QfVertexModel * model
)
function suppressFeatureForm
Q_INVOKABLE bool QfFeatureModel::suppressFeatureForm () const
Returns whether the feature form should be suppressed when adding new features.
function topSnappingResult [2/2]
QfSnappingResult QfFeatureModel::topSnappingResult () const
Returns the top snapping result of the coordinate locator
function updateAttributesFromFeature
Q_INVOKABLE bool QfFeatureModel::updateAttributesFromFeature (
const QgsFeature & feature
)
Update attributes to match that of a given feature
Parameters:
featurefeature from which attributes will be taken
Returns:
TRUE if one or more attribute was updated
function updateRubberband
Update the linked geometry rubber band to match the feature's geometry.
Q_INVOKABLE void QfFeatureModel::updateRubberband () const
function vertexModel [2/2]
Returns the vertex model is used to highlight vertices on the map.
QfVertexModel * QfFeatureModel::vertexModel ()
The documentation for this class was generated from the following file src/core/qffeaturemodel.h