QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgsexpressionpreviewwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsexpressionpreviewwidget.h
3  --------------------------------------
4  Date : march 2020 - quarantine day 12
5  Copyright : (C) 2020 by Denis Rouzaud
6  Email : [email protected]
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSEXPRESSIONPREVIEWWIDGET_H
17 #define QGSEXPRESSIONPREVIEWWIDGET_H
18 
19 #include <QWidget>
20 
21 #include "ui_qgsexpressionpreviewbase.h"
22 
23 #include "qgis_gui.h"
24 #include "qgsdistancearea.h"
25 
26 
27 class QgsVectorLayer;
28 
35 class GUI_EXPORT QgsExpressionPreviewWidget : public QWidget, private Ui::QgsExpressionPreviewWidgetBase
36 {
37  Q_OBJECT
38  public:
40  explicit QgsExpressionPreviewWidget( QWidget *parent = nullptr );
41 
43  void setLayer( QgsVectorLayer *layer );
44 
46  void setExpressionText( const QString &expression );
47 
53  QgsExpressionContext expressionContext() const { return mExpressionContext; }
54 
60  void setExpressionContext( const QgsExpressionContext &context );
61 
63  void setGeomCalculator( const QgsDistanceArea &da );
64 
69  bool evalError() const;
70 
75  bool parserError() const;
76 
78  const QgsExpressionNode *rootNode() const {return mExpression.rootNode();}
79 
81  QList<QgsExpression::ParserError> parserErrors() const {return mExpression.parserErrors();}
82 
83  signals:
84 
91  void expressionParsed( bool isValid );
92 
98 
104 
106  void toolTipChanged( const QString &toolTip );
107 
108  public slots:
110  void setCurrentFeature( const QgsFeature &feature );
111 
112 
113  private slots:
114  void linkActivated( const QString & );
115  void setEvalError( bool evalError );
116  void setParserError( bool parserError );
117 
118 
119  private:
120  void setExpressionToolTip( const QString &toolTip );
121  void refreshPreview();
122 
123  QgsVectorLayer *mLayer = nullptr;
124  QgsExpressionContext mExpressionContext;
125  QgsDistanceArea mDa;
126  bool mUseGeomCalculator = false;
127  QString mToolTip;
128  bool mEvalError = true;
129  bool mParserError = true;
130  QString mExpressionText;
131  QgsExpression mExpression;
132 };
133 
134 #endif // QGSEXPRESSIONPREVIEWWIDGET_H
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition: qgsexpressioncontext.h:370
QgsExpressionPreviewWidget::parserErrors
QList< QgsExpression::ParserError > parserErrors() const
Returns the expression parser erros.
Definition: qgsexpressionpreviewwidget.h:81
QgsExpressionPreviewWidget::expressionParsed
void expressionParsed(bool isValid)
Emitted when the user changes the expression in the widget.
QgsExpressionPreviewWidget::evalErrorChanged
void evalErrorChanged()
Will be set to true if the current expression text reported an eval error with the context.
QgsExpressionPreviewWidget
QgsExpressionPreviewWidget is a widget to preview an expression result.
Definition: qgsexpressionpreviewwidget.h:36
QgsExpressionPreviewWidget::toolTipChanged
void toolTipChanged(const QString &toolTip)
Emitted whenever the tool tip changed.
QgsExpressionNode
Abstract base class for all nodes that can appear in an expression.
Definition: qgsexpressionnode.h:35
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition: qgsvectorlayer.h:387
QgsExpressionPreviewWidget::rootNode
const QgsExpressionNode * rootNode() const
Returns the root node of the expression.
Definition: qgsexpressionpreviewwidget.h:78
QgsDistanceArea
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
Definition: qgsdistancearea.h:50
qgsdistancearea.h
QgsFeature
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:56
QgsExpressionPreviewWidget::expressionContext
QgsExpressionContext expressionContext() const
Returns the expression context for the widget.
Definition: qgsexpressionpreviewwidget.h:53
QgsExpression
Class for parsing and evaluation of expressions (formerly called "search strings").
Definition: qgsexpression.h:105
QgsExpressionPreviewWidget::parserErrorChanged
void parserErrorChanged()
Will be set to true if the current expression text reported a parser error with the context.