16 #ifndef QGSFIELDEXPRESSIONWIDGET_H 
   17 #define QGSFIELDEXPRESSIONWIDGET_H 
   21 #include <QToolButton> 
   49     Q_PROPERTY( QString expressionDialogTitle READ expressionDialogTitle WRITE setExpressionDialogTitle )
 
   50     Q_PROPERTY( QgsFieldProxyModel::Filters filters READ filters WRITE setFilters )
 
   51     Q_PROPERTY( 
bool allowEmptyFieldName READ allowEmptyFieldName WRITE setAllowEmptyFieldName )
 
   52     Q_PROPERTY( 
bool allowEvalErrors READ allowEvalErrors WRITE setAllowEvalErrors NOTIFY allowEvalErrorsChanged )
 
   62     void setExpressionDialogTitle( 
const QString &title );
 
   77     void setFilters( QgsFieldProxyModel::Filters filters );
 
   84     void setAllowEmptyFieldName( 
bool allowEmpty );
 
   91     bool allowEmptyFieldName() 
const;
 
   93     void setLeftHandButtonStyle( 
bool isLeft );
 
   96     QgsFieldProxyModel::Filters 
filters()
 const { 
return mFieldProxyModel->filters(); }
 
  106     QString currentField( 
bool *isExpression = 
nullptr, 
bool *isValid = 
nullptr ) 
const;
 
  111     bool isValidExpression( QString *expressionError = 
nullptr ) 
const;
 
  116     bool isExpression() 
const;
 
  121     QString currentText() 
const;
 
  129     QString asExpression() 
const;
 
  140     QString expression() 
const;
 
  163     bool allowEvalErrors() 
const;
 
  171     void setAllowEvalErrors( 
bool allowEvalErrors );
 
  197     void setRow( 
int row ) { mCombo->setCurrentIndex( row ); }
 
  200     void setField( 
const QString &fieldName );
 
  206     void setFields( 
const QgsFields &fields );
 
  214     void setExpression( 
const QString &expression );
 
  218     void editExpression();
 
  221     void expressionEdited( 
const QString &expression );
 
  224     void expressionEditingFinished();
 
  226     void currentFieldChanged();
 
  233     void updateLineEditStyle( 
const QString &expression = QString() );
 
  235     bool isExpressionValid( 
const QString &expressionStr );
 
  238     void changeEvent( QEvent *event ) 
override;
 
  240     bool eventFilter( QObject *watched, QEvent *event ) 
override;
 
  245     void beforeResetModel();
 
  246     void afterResetModel();
 
  249     QComboBox *mCombo = 
nullptr;
 
  250     QToolButton *mButton = 
nullptr;
 
  252     QString mExpressionDialogTitle;
 
  253     std::shared_ptr<const QgsDistanceArea> mDistanceArea;
 
  256     QString mBackupExpression;
 
  257     bool mAllowEvalErrors = 
false;
 
  259     friend class TestQgsFieldExpressionWidget;
 
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
Abstract interface for generating an expression context.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
The QgsFieldProxyModel class provides an easy to use model to display the list of fields of a layer.
Container of fields for a vector layer.
Base class for all map layer types.
Represents a vector layer which manages a vector based data sets.