25 : QAbstractItemModel( parent )
27 , mAllowExpression( false )
33 QString fldName( fieldName );
41 if ( !fieldNameWithAlias.isNull() )
42 fldName = fieldNameWithAlias;
46 QModelIndex idx =
index( r, 0 );
75 disconnect(
mLayer, SIGNAL( layerDeleted() ),
this, SLOT( layerDeleted() ) );
87 connect(
mLayer, SIGNAL( layerDeleted() ),
this, SLOT( layerDeleted() ) );
91 void QgsFieldModel::layerDeleted()
135 for (
int i = 0; i < newFields.
count(); ++i )
145 beginRemoveRows( QModelIndex(), i, i );
180 beginRemoveRows( QModelIndex(), start, end );
197 if ( !expression.isEmpty() )
211 if ( hasIndex( row, column, parent ) )
213 return createIndex( row, column, row );
216 return QModelIndex();
222 return QModelIndex();
227 if ( parent.isValid() )
243 if ( !index.isValid() )
303 return (
int )field.
type();
308 case Qt::DisplayRole:
315 else if ( role == Qt::EditRole )
317 return mFields[index.row()].name();
327 case Qt::ForegroundRole:
336 return QBrush( QColor( Qt::red ) );
347 QFont font = QFont();
348 font.setItalic(
true );
QList< QgsField > toList() const
Utility function to return a list of QgsField instances.
Class for parsing and evaluation of expressions (formerly called "search strings").
const QString & name() const
Gets the name of the field.
bool hasParserError() const
Returns true if an error occurred when parsing the input expression.
bool prepare(const QgsFields &fields)
Get the expression ready for evaluation - find out column indexes.
void setExpression(const QString &expression)
setExpression sets a single expression to be added after the fields at the end of the model ...
Container of fields for a vector layer.
const QgsField & at(int i) const
Get field at particular index (must be in range 0..N-1)
QgsVectorLayer * layer()
returns the currently used layer
bool isField(const QString &expression)
QVariant data(const QModelIndex &index, int role) const override
QModelIndex parent(const QModelIndex &child) const override
void removeExpression()
remove expressions from the model
QString attributeDisplayName(int attributeIndex) const
Convenience function that returns the attribute alias if defined or the field name else...
void setLayer(QgsVectorLayer *layer)
set the layer of whch fields are displayed
void setAllowExpression(bool allowExpression)
returns the currently used layer
int rowCount(const QModelIndex &parent=QModelIndex()) const override
int count() const
Return number of items.
Encapsulate a field in an attribute table or data source.
const QMap< QString, QString > & attributeAliases() const
void remove(int fieldIdx)
Remove a field with the given index.
int indexFromName(const QString &name) const
Look up field's index from name. Returns -1 on error.
int columnCount(const QModelIndex &parent) const override
virtual void updateModel()
QgsFieldModel(QObject *parent=0)
QgsFieldModel creates a model to display the fields of a given layer.
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
QList< QString > mExpression
const QgsFields & pendingFields() const
returns field list in the to-be-committed state
QModelIndex indexFromName(const QString &fieldName)
return the index corresponding to a given fieldName
Represents a vector layer which manages a vector based data sets.
QVariant::Type type() const
Gets variant type of the field as it will be retrieved from data source.