QGIS API Documentation 3.99.0-Master (c22de0620c0)
Loading...
Searching...
No Matches
qgsprocessingrastercalculatorexpressionlineedit.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprocessingrastercalculatorexpressionlineedit.h
3 ---------------------
4 begin : July 2023
5 copyright : (C) 2023 by Alexander Bruy
6 email : alexander dot bruy at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSPROCESSINGRASTERCALCULATOREXPRESSIONLINEEDIT_H
19#define QGSPROCESSINGRASTERCALCULATOREXPRESSIONLINEEDIT_H
20
21
22#include "ui_qgsprocessingrastercalculatorexpressiondialogbase.h"
23
24#include "qgis.h"
25#include "qgis_gui.h"
26
27#include <QDialog>
28#include <QWidget>
29
30#define SIP_NO_FILE
31
33class QToolButton;
34class QgsMapLayer;
35
37
45class GUI_EXPORT QgsProcessingRasterCalculatorExpressionLineEdit : public QWidget
46{
47 Q_OBJECT
48
49 public:
54 explicit QgsProcessingRasterCalculatorExpressionLineEdit( QWidget *parent SIP_TRANSFERTHIS = nullptr );
55 ~QgsProcessingRasterCalculatorExpressionLineEdit() override;
56
60 void setLayers( const QVariantList &layers );
61
66 QString expression() const;
67
68 signals:
69
74 void expressionChanged( const QString &expression );
75
76 public slots:
77
83 void setExpression( const QString &expression );
84
85 private slots:
86
87 void expressionEdited( const QString &expression );
88 void expressionEdited();
89
91 void editExpression();
92
93 private:
94 QgsFilterLineEdit *mLineEdit = nullptr;
95 QToolButton *mButton = nullptr;
96 QVariantList mLayers;
97};
98
105class GUI_EXPORT QgsProcessingRasterCalculatorExpressionDialog : public QDialog, private Ui::QgsProcessingRasterCalculatorExpressionDialogBase
106{
107 Q_OBJECT
108
109 public:
113 QgsProcessingRasterCalculatorExpressionDialog( const QVariantList &layers, const QString &startExpression = QString(), QWidget *parent = nullptr );
114
120 void setExpression( const QString &text );
121
126 QString expression();
127
128 private slots:
129 void mLayersList_itemDoubleClicked( QListWidgetItem *item );
130
131 //calculator buttons
132 void mBtnPlus_clicked();
133 void mBtnMinus_clicked();
134 void mBtnMultiply_clicked();
135 void mBtnDivide_clicked();
136 void mBtnPower_clicked();
137 void mBtnSqrt_clicked();
138 void mBtnOpenBracket_clicked();
139 void mBtnCloseBracket_clicked();
140 void mBtnGreater_clicked();
141 void mBtnGreaterEqual_clicked();
142 void mBtnLess_clicked();
143 void mBtnLessEqual_clicked();
144 void mBtnEqual_clicked();
145 void mBtnNotEqual_clicked();
146 void mBtnAnd_clicked();
147 void mBtnOr_clicked();
148 void mBtnIf_clicked();
149 void mBtnMin_clicked();
150 void mBtnMax_clicked();
151 void mBtnAbs_clicked();
152 void mBtnSin_clicked();
153 void mBtnCos_clicked();
154 void mBtnTan_clicked();
155 void mBtnLog_clicked();
156 void mBtnAsin_clicked();
157 void mBtnAcos_clicked();
158 void mBtnAtan_clicked();
159 void mBtnLn_clicked();
160
161 private:
163 void populateLayers();
164
165 static QString quoteBandEntry( const QString &layerName );
166
167 QVariantList mLayers;
168 const QString mInitialText;
169};
170
172#endif // QGSPROCESSINGRASTERCALCULATOREXPRESSIONLINEEDIT_H
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
Base class for all map layer types.
Definition qgsmaplayer.h:83
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52