QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
QgsFieldModel Class Reference

A model which displays the list of fields in widgets (optionally associated with a vector layer). More...

#include <qgsfieldmodel.h>

Inheritance diagram for QgsFieldModel:

Public Types

enum class  CustomRole : int {
  FieldName = Qt::UserRole + 1 , FieldIndex = Qt::UserRole + 2 , Expression = Qt::UserRole + 3 , IsExpression = Qt::UserRole + 4 ,
  ExpressionValidity = Qt::UserRole + 5 , FieldType = Qt::UserRole + 6 , FieldOrigin = Qt::UserRole + 7 , IsEmpty = Qt::UserRole + 8 ,
  EditorWidgetType = Qt::UserRole + 9 , JoinedFieldIsEditable = Qt::UserRole + 10 , FieldIsWidgetEditable = Qt::UserRole + 11
}
 Custom model roles. More...

Public Slots

void setLayer (QgsVectorLayer *layer)
 Set the layer from which fields are displayed.

Public Member Functions

 QgsFieldModel (QObject *parent=nullptr)
 Constructor for QgsFieldModel - creates a model to display the fields of a given layer.
bool allowEmptyFieldName () const
 Returns true if the model allows the empty field ("not set") choice.
bool allowExpression () const
 Returns true if the model allows custom expressions to be created and displayed.
int columnCount (const QModelIndex &parent) const override
QVariant data (const QModelIndex &index, int role) const override
QgsFields fields () const
 Returns the fields currently shown in the model.
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
QModelIndex indexFromName (const QString &fieldName)
 Returns the index corresponding to a given fieldName.
bool isField (const QString &expression) const
 Returns true if a string represents a field reference, or false if it is an expression consisting of more than direct field reference.
QgsVectorLayerlayer ()
 Returns the layer associated with the model.
QModelIndex parent (const QModelIndex &child) const override
void removeExpression ()
 Removes any custom expression from the model.
int rowCount (const QModelIndex &parent=QModelIndex()) const override
void setAllowEmptyFieldName (bool allowEmpty)
 Sets whether an optional empty field ("not set") option is present in the model.
void setAllowExpression (bool allowExpression)
 Sets whether custom expressions are accepted and displayed in the model.
void setExpression (const QString &expression)
 Sets a single expression to be added after the fields at the end of the model.
void setFields (const QgsFields &fields)
 Manually sets the fields to use for the model.

Static Public Member Functions

static QString fieldToolTip (const QgsField &field)
 Returns a HTML formatted tooltip string for a field, containing details like the field name, alias and type.
static QString fieldToolTipExtended (const QgsField &field, const QgsVectorLayer *layer)
 Returns a HTML formatted tooltip string for a field, containing details like the field name, alias, type and expression.

Protected Slots

virtual void updateModel ()
 Called when the model must be updated.

Protected Attributes

bool mAllowEmpty = false
bool mAllowExpression = false
QList< QString > mExpression
QgsFields mFields
QgsVectorLayermLayer = nullptr

Properties

bool allowEmptyFieldName
bool allowExpression
QgsVectorLayerlayer

Detailed Description

A model which displays the list of fields in widgets (optionally associated with a vector layer).

If allowed, expressions might be added to the end of the model. It can be associated with a QgsMapLayerModel to dynamically display a layer and its fields.

Definition at line 37 of file qgsfieldmodel.h.

Member Enumeration Documentation

◆ CustomRole

enum class QgsFieldModel::CustomRole : int
strong

Custom model roles.

Note
Prior to QGIS 3.36 this was available as QgsFieldModel::FieldRoles
Since
QGIS 3.36
Enumerator
FieldName 

Return field name if index corresponds to a field.

FieldIndex 

Return field index if index corresponds to a field.

Expression 

Return field name or expression.

IsExpression 

Return if index corresponds to an expression.

ExpressionValidity 

Return if expression is valid or not.

FieldType 

Return the field type (if a field, return QVariant if expression).

FieldOrigin 

Return the field origin (if a field, returns QVariant if expression).

IsEmpty 

Return if the index corresponds to the empty value.

EditorWidgetType 

Editor widget type.

JoinedFieldIsEditable 

true if a joined field is editable (returns QVariant if not a joined field)

FieldIsWidgetEditable 

true if a is editable from the widget

Definition at line 55 of file qgsfieldmodel.h.

Constructor & Destructor Documentation

◆ QgsFieldModel()

QgsFieldModel::QgsFieldModel ( QObject * parent = nullptr)
explicit

Constructor for QgsFieldModel - creates a model to display the fields of a given layer.

Definition at line 26 of file qgsfieldmodel.cpp.

Member Function Documentation

◆ allowEmptyFieldName()

bool QgsFieldModel::allowEmptyFieldName ( ) const
inline

Returns true if the model allows the empty field ("not set") choice.

See also
setAllowEmptyFieldName()

Definition at line 105 of file qgsfieldmodel.h.

◆ allowExpression()

bool QgsFieldModel::allowExpression ( ) const
inline

Returns true if the model allows custom expressions to be created and displayed.

See also
setAllowExpression()

Definition at line 93 of file qgsfieldmodel.h.

◆ columnCount()

int QgsFieldModel::columnCount ( const QModelIndex & parent) const
override

Definition at line 266 of file qgsfieldmodel.cpp.

◆ data()

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

Definition at line 272 of file qgsfieldmodel.cpp.

◆ fields()

QgsFields QgsFieldModel::fields ( ) const

Returns the fields currently shown in the model.

This will either be fields from the associated layer() or the fields manually set by a call to setFields().

Since
QGIS 3.14

Definition at line 528 of file qgsfieldmodel.cpp.

◆ fieldToolTip()

QString QgsFieldModel::fieldToolTip ( const QgsField & field)
static

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias and type.

Definition at line 475 of file qgsfieldmodel.cpp.

◆ fieldToolTipExtended()

QString QgsFieldModel::fieldToolTipExtended ( const QgsField & field,
const QgsVectorLayer * layer )
static

Returns a HTML formatted tooltip string for a field, containing details like the field name, alias, type and expression.

Since
QGIS 3.14

Definition at line 499 of file qgsfieldmodel.cpp.

◆ index()

QModelIndex QgsFieldModel::index ( int row,
int column,
const QModelIndex & parent = QModelIndex() ) const
override

Definition at line 240 of file qgsfieldmodel.cpp.

◆ indexFromName()

QModelIndex QgsFieldModel::indexFromName ( const QString & fieldName)

Returns the index corresponding to a given fieldName.

Definition at line 31 of file qgsfieldmodel.cpp.

◆ isField()

bool QgsFieldModel::isField ( const QString & expression) const

Returns true if a string represents a field reference, or false if it is an expression consisting of more than direct field reference.

Definition at line 76 of file qgsfieldmodel.cpp.

◆ layer()

QgsVectorLayer * QgsFieldModel::layer ( )
inline

Returns the layer associated with the model.

See also
setLayer()

Definition at line 132 of file qgsfieldmodel.h.

◆ parent()

QModelIndex QgsFieldModel::parent ( const QModelIndex & child) const
override

Definition at line 250 of file qgsfieldmodel.cpp.

◆ removeExpression()

void QgsFieldModel::removeExpression ( )

Removes any custom expression from the model.

See also
setExpression()
allowExpression()

Definition at line 233 of file qgsfieldmodel.cpp.

◆ rowCount()

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

Definition at line 256 of file qgsfieldmodel.cpp.

◆ setAllowEmptyFieldName()

void QgsFieldModel::setAllowEmptyFieldName ( bool allowEmpty)

Sets whether an optional empty field ("not set") option is present in the model.

See also
allowEmptyFieldName()

Definition at line 197 of file qgsfieldmodel.cpp.

◆ setAllowExpression()

void QgsFieldModel::setAllowExpression ( bool allowExpression)

Sets whether custom expressions are accepted and displayed in the model.

See also
allowExpression()
setExpression()

Definition at line 180 of file qgsfieldmodel.cpp.

◆ setExpression()

void QgsFieldModel::setExpression ( const QString & expression)

Sets a single expression to be added after the fields at the end of the model.

See also
setAllowExpression()
allowExpression()
removeExpression()

Definition at line 217 of file qgsfieldmodel.cpp.

◆ setFields()

void QgsFieldModel::setFields ( const QgsFields & fields)

Manually sets the fields to use for the model.

This method should only be used when the model ISN'T associated with a layer() and needs to show the fields from an arbitrary field collection instead. Calling setFields() will automatically clear any existing layer().

See also
fields()
Since
QGIS 3.14

Definition at line 520 of file qgsfieldmodel.cpp.

◆ setLayer

void QgsFieldModel::setLayer ( QgsVectorLayer * layer)
slot

Set the layer from which fields are displayed.

See also
layer()

Definition at line 82 of file qgsfieldmodel.cpp.

◆ updateModel

void QgsFieldModel::updateModel ( )
protectedvirtualslot

Called when the model must be updated.

Definition at line 107 of file qgsfieldmodel.cpp.

Member Data Documentation

◆ mAllowEmpty

bool QgsFieldModel::mAllowEmpty = false
protected

Definition at line 200 of file qgsfieldmodel.h.

◆ mAllowExpression

bool QgsFieldModel::mAllowExpression = false
protected

Definition at line 199 of file qgsfieldmodel.h.

◆ mExpression

QList<QString> QgsFieldModel::mExpression
protected

Definition at line 196 of file qgsfieldmodel.h.

◆ mFields

QgsFields QgsFieldModel::mFields
protected

Definition at line 195 of file qgsfieldmodel.h.

◆ mLayer

QgsVectorLayer* QgsFieldModel::mLayer = nullptr
protected

Definition at line 198 of file qgsfieldmodel.h.

Property Documentation

◆ allowEmptyFieldName

bool QgsFieldModel::allowEmptyFieldName
readwrite

Definition at line 42 of file qgsfieldmodel.h.

◆ allowExpression

bool QgsFieldModel::allowExpression
readwrite

Definition at line 41 of file qgsfieldmodel.h.

◆ layer

QgsVectorLayer * QgsFieldModel::layer
readwrite

Definition at line 43 of file qgsfieldmodel.h.


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