23 #include <QItemSelection>    27   : QSortFilterProxyModel( parent )
    37   QSortFilterProxyModel::setSourceModel( sourceModel );
    39   mFilterModel = sourceModel;
    41   mSourceLayer = sourceModel->
layer();
    62   if ( mInjectNull && index.row() == 0 )
    64     if ( role == Qt::DisplayRole )
    70       return QVariant( QVariant::Invalid );
    74   if ( role == Qt::DisplayRole || role == Qt::EditRole )
    81     return mDisplayExpression.
evaluate( &mExpressionContext );
    98         featInfo.
isNew = 
true;
   106     return QVariant::fromValue( featInfo );
   114     return QVariant::fromValue( feat );
   116   else if ( role == Qt::TextAlignmentRole )
   118     return Qt::AlignLeft;
   121   if ( role == Qt::BackgroundColorRole
   122        || role == Qt::TextColorRole
   123        || role == Qt::DecorationRole
   124        || role == Qt::FontRole )
   131     QList<QgsConditionalStyle> styles;
   133     if ( mRowStylesMap.contains( fid ) )
   135       styles = mRowStylesMap.value( fid );
   140       mRowStylesMap.insert( fid, styles );
   145     if ( mDisplayExpression.
isField() )
   152     styles.insert( 0, rowstyle );
   162       if ( role == Qt::DecorationRole )
   163         return style.
icon().isNull() ? QVariant() : style.
icon();
   164       if ( role == Qt::FontRole )
   171   return sourceModel()->data( 
mapToSource( index ), role );
   176   if ( mInjectNull && index.row() == 0 )
   178     return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
   182     return sourceModel()->flags( 
mapToSource( index ) ) & ~Qt::ItemIsEditable;
   188   if ( mInjectNull == injectNull )
   213   exp.
prepare( &mExpressionContext );
   221   mDisplayExpression = exp;
   223   if ( mSortByDisplayExpression )
   226   emit dataChanged( index( 0, 0 ), index( 
rowCount() - 1, 0 ) );
   234   return mParserErrorString;
   249   beginRemoveRows( parent, first, last );
   262   beginInsertRows( parent, first, last );
   273 void QgsFeatureListModel::conditionalStylesChanged()
   275   mRowStylesMap.clear();
   281   return mSortByDisplayExpression;
   289   if ( sortByDisplayExpression )
   293   setDynamicSortFilter( mSortByDisplayExpression );
   299   QModelIndex masterIndex;
   301   if ( proxyIndex.isValid() )
   303     if ( mSortByDisplayExpression )
   309       int offset = mInjectNull ? 1 : 0;
   311       masterIndex = mFilterModel->
mapToMaster( mFilterModel->index( proxyIndex.row() - offset, proxyIndex.column() ) );
   319   QModelIndex proxyIndex;
   321   if ( masterIndex.isValid() )
   323     if ( mSortByDisplayExpression )
   329       int offset = mInjectNull ? 1 : 0;
   331       return createIndex( mFilterModel->
mapFromMaster( masterIndex ).row() + offset, 0 );
   340   return mapSelectionFromSource( mFilterModel->mapSelectionFromSource( selection ) );
   345   return mFilterModel->mapSelectionToSource( mapSelectionToSource( selection ) );
   352   QModelIndex sourceIndex;
   354   if ( mSortByDisplayExpression )
   356     sourceIndex = QSortFilterProxyModel::mapToSource( proxyIndex );
   360     if ( !proxyIndex.isValid() )
   361       return QModelIndex();
   363     int offset = mInjectNull ? 1 : 0;
   365     sourceIndex = sourceModel()->index( proxyIndex.row() - offset, proxyIndex.column() );
   373   QModelIndex proxyIndex;
   375   if ( mSortByDisplayExpression )
   377     proxyIndex = QSortFilterProxyModel::mapFromSource( sourceIndex );
   381     if ( sourceIndex.isValid() )
   382       proxyIndex = createIndex( sourceIndex.row(), 0 );
   391   return QModelIndex();
   404   int offset = mInjectNull ? 1 : 0;
   406   return sourceModel()->rowCount() + offset;
   416   return QModelIndexList() << 
fidToIndex( fid );
 bool injectNull()
Returns the current state of null value injection. 
 
Class for parsing and evaluation of expressions (formerly called "search strings"). 
 
bool hasParserError() const
Returns true if an error occurred when parsing the input expression. 
 
QgsVectorLayer * layer() const
Returns the layer this filter acts on. 
 
QModelIndex fidToIndex(QgsFeatureId fid) override
 
QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override
 
QgsAttributeTableModel * masterModel() const
Returns the table model this filter is using. 
 
QgsFeatureId idxToFid(const QModelIndex &index) const
Returns the feature ID corresponding to an index from the model. 
 
bool setDisplayExpression(const QString &expression)
 
QModelIndex mapFromMaster(const QModelIndex &sourceIndex) const
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context. 
 
int rowCount(const QModelIndex &parent=QModelIndex()) const override
 
int columnCount(const QModelIndex &parent=QModelIndex()) const override
 
void prefetchSortData(const QString &expression, unsigned long cacheIndex=0)
Prefetches the entire data for an expression. 
 
QVariant evaluate()
Evaluate the feature and return the result. 
 
Q_DECL_DEPRECATED void onEndInsertRows(const QModelIndex &parent, int first, int last)
Does nothing except for calling endInsertRows() 
 
bool featureByIndex(const QModelIndex &index, QgsFeature &feat)
 
bool validBackgroundColor() const
Check if the background color is valid for render. 
 
QPixmap icon() const
The icon set for style generated from the set symbol. 
 
bool isFeatureAdded(QgsFeatureId id) const
Returns true if the specified feature ID has been added but not committed. 
 
QSet< QString > referencedColumns() const
Gets list of columns referenced by the expression. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a Q...
 
QString parserErrorString() const
Returns parser error. 
 
QString parserErrorString()
Returns a detailed message about errors while parsing a QgsExpression. 
 
virtual void setSourceModel(QgsAttributeTableFilterModel *sourceModel)
 
virtual QModelIndex mapToMaster(const QModelIndex &proxyIndex) const
 
QModelIndex idToIndex(QgsFeatureId id) const
 
QgsConditionalLayerStyles * conditionalStyles() const
Returns the conditional styles that are set for this layer. 
 
Q_DECL_DEPRECATED void onBeginInsertRows(const QModelIndex &parent, int first, int last)
Does nothing except for calling beginInsertRows() 
 
Q_INVOKABLE QgsVectorLayerEditBuffer * editBuffer()
Buffer with uncommitted editing operations. Only valid after editing has been turned on...
 
Role used for sorting start here. 
 
bool isEdited
True if feature has been edited. 
 
Conditional styling for a rule. 
 
QModelIndex mapToSource(const QModelIndex &proxyIndex) const override
 
QVariant data(const QModelIndex &index, int role) const override
 
bool isValid() const
isValid Check if this rule is valid. 
 
static QList< QgsConditionalStyle > matchingConditionalStyles(const QList< QgsConditionalStyle > &styles, const QVariant &value, QgsExpressionContext &context)
Find and return the matching styles for the value and feature. 
 
QModelIndexList fidToIndexList(QgsFeatureId fid)
 
QColor backgroundColor() const
The background color for style. 
 
static QString nullRepresentation()
This string is used to represent the value NULL throughout QGIS. 
 
QString displayExpression() const
 
static QgsConditionalStyle compressStyles(const QList< QgsConditionalStyle > &styles)
Compress a list of styles into a single style. 
 
Qt::ItemFlags flags(const QModelIndex &index) const override
 
bool isFeatureAttributesChanged(QgsFeatureId id) const
Returns true if the specified feature ID has had an attribute changed but not committed. 
 
bool isNew
True if feature is a newly added feature. 
 
QgsExpressionContext createExpressionContext() const FINAL
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
bool sortByDisplayExpression() const
Sort this model by its display expression. 
 
QgsAttributeTableModel * masterModel()
 
QList< QgsConditionalStyle > fieldStyles(const QString &fieldName) const
Returns the conditional styles set for the field with matching fieldName. 
 
virtual QModelIndex mapFromMaster(const QModelIndex &sourceIndex) const
 
Q_DECL_DEPRECATED void onBeginRemoveRows(const QModelIndex &parent, int first, int last)
Does nothing except for calling beginRemoveRows() 
 
QString expression() const
Returns the original, unmodified expression string. 
 
This class caches features of a given QgsVectorLayer. 
 
QColor textColor() const
The text color set for style. 
 
virtual QItemSelection mapSelectionToMaster(const QItemSelection &selection) const
 
void changed()
Emitted when the conditional styles are changed. 
 
bool prepare(const QgsExpressionContext *context)
Gets the expression ready for evaluation - find out column indexes. 
 
bool featureAtId(QgsFeatureId featureId, QgsFeature &feature, bool skipCache=false)
Gets the feature at the given feature id. 
 
bool validTextColor() const
Check if the text color is valid for render. 
 
bool isField() const
Checks whether an expression consists only of a single field reference. 
 
QgsFeatureId rowToId(int row) const
Maps row to feature id. 
 
Q_DECL_DEPRECATED void onEndRemoveRows(const QModelIndex &parent, int first, int last)
Does nothing except for calling endRemoveRows() 
 
virtual QItemSelection mapSelectionFromMaster(const QItemSelection &selection) const
 
QgsVectorLayerCache * layerCache()
Returns the vector layer cache which is being used to populate the model. 
 
void setInjectNull(bool injectNull)
If true is specified, a NULL value will be injected. 
 
void setSortByDisplayExpression(bool sortByDisplayExpression)
Sort this model by its display expression. 
 
QModelIndex fidToIdx(QgsFeatureId fid) const
Returns the model index corresponding to a feature ID. 
 
QModelIndex parent(const QModelIndex &child) const override
 
QFont font() const
The font for the style. 
 
Represents a vector layer which manages a vector based data sets. 
 
QVariant attribute(const QString &name) const
Lookup attribute value from attribute name. 
 
QgsFeatureListModel(QgsAttributeTableFilterModel *sourceModel, QObject *parent=nullptr)
Constructor for QgsFeatureListModel. 
 
QgsVectorLayerCache * layerCache() const
Returns the layerCache this filter acts on. 
 
QgsConditionalStyles rowStyles() const
Returns a list of row styles associated with the layer. 
 
QModelIndex mapToMaster(const QModelIndex &proxyIndex) const