QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
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
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
26class QAction;
27class QgsVectorLayer;
28
35class 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 void copyFullExpressionValue();
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 QAction *mCopyPreviewAction = nullptr;
133};
134
135#endif // QGSEXPRESSIONPREVIEWWIDGET_H
A general purpose distance and area calculator, capable of performing ellipsoid based calculations.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Abstract base class for all nodes that can appear in an expression.
QgsExpressionPreviewWidget is a widget to preview an expression result.
const QgsExpressionNode * rootNode() const
Returns the root node of the expression.
void parserErrorChanged()
Will be set to true if the current expression text reported a parser error with the context.
QList< QgsExpression::ParserError > parserErrors() const
Returns the expression parser erros.
QgsExpressionContext expressionContext() const
Returns the expression context for the widget.
void evalErrorChanged()
Will be set to true if the current expression text reported an eval error with the context.
void toolTipChanged(const QString &toolTip)
Emitted whenever the tool tip changed.
void expressionParsed(bool isValid)
Emitted when the user changes the expression in the widget.
Class for parsing and evaluation of expressions (formerly called "search strings").
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Represents a vector layer which manages a vector based data sets.