16 #ifndef QGSFIELDMODEL_H
17 #define QGSFIELDMODEL_H
19 #include <QAbstractItemModel>
21 #include <QItemSelectionModel>
24 #include "qgis_core.h"
42 Q_PROPERTY(
bool allowExpression READ allowExpression WRITE setAllowExpression )
43 Q_PROPERTY(
bool allowEmptyFieldName READ allowEmptyFieldName WRITE setAllowEmptyFieldName )
51 FieldNameRole = Qt::UserRole + 1,
52 FieldIndexRole = Qt::UserRole + 2,
53 ExpressionRole = Qt::UserRole + 3,
54 IsExpressionRole = Qt::UserRole + 4,
55 ExpressionValidityRole = Qt::UserRole + 5,
56 FieldTypeRole = Qt::UserRole + 6,
57 FieldOriginRole = Qt::UserRole + 7,
58 IsEmptyRole = Qt::UserRole + 8,
59 EditorWidgetType = Qt::UserRole + 9,
60 JoinedFieldIsEditable = Qt::UserRole + 10,
61 FieldIsWidgetEditable = Qt::UserRole + 11,
72 QModelIndex indexFromName(
const QString &fieldName );
79 void setAllowExpression(
bool allowExpression );
92 void setAllowEmptyFieldName(
bool allowEmpty );
105 bool isField(
const QString &expression )
const;
113 void setExpression(
const QString &expression );
120 void removeExpression();
129 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
130 QModelIndex parent(
const QModelIndex &child )
const override;
131 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
132 int columnCount(
const QModelIndex &parent )
const override;
133 QVariant data(
const QModelIndex &index,
int role )
const override;
159 void setFields(
const QgsFields &fields );
184 virtual void updateModel();
194 bool mAllowExpression =
false;
195 bool mAllowEmpty =
false;
201 #endif // QGSFIELDMODEL_H