QGIS API Documentation 3.99.0-Master (18a1e75d814)
Loading...
Searching...
No Matches
qgsprocessingpointcloudexpressionlineedit.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprocessingpointcloudexpressionlineedit.h
3 ---------------------
4 begin : April 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 QGSPROCESSINGPOINTCLOUDEXPRESSIONLINEEDIT_H
19#define QGSPROCESSINGPOINTCLOUDEXPRESSIONLINEEDIT_H
20
21
22#include "ui_qgsprocessingpointcloudexpressiondialogbase.h"
23
24#include "qgis.h"
25#include "qgis_gui.h"
26
27#include <QDialog>
28#include <QModelIndex>
29#include <QStandardItem>
30#include <QStandardItemModel>
31#include <QWidget>
32
33#define SIP_NO_FILE
34
36class QToolButton;
38
40
48class GUI_EXPORT QgsProcessingPointCloudExpressionLineEdit : public QWidget
49{
50 Q_OBJECT
51
52 public:
57 explicit QgsProcessingPointCloudExpressionLineEdit( QWidget *parent SIP_TRANSFERTHIS = nullptr );
58 ~QgsProcessingPointCloudExpressionLineEdit() override;
59
64 void setLayer( QgsPointCloudLayer *layer );
65
70 QgsPointCloudLayer *layer() const;
71
76 QString expression() const;
77
78 signals:
79
84 void expressionChanged( const QString &expression );
85
86 public slots:
87
93 void setExpression( const QString &expression );
94
95 private slots:
96
97 void expressionEdited( const QString &expression );
98 void expressionEdited();
99
101 void editExpression();
102
103 private:
104 QgsFilterLineEdit *mLineEdit = nullptr;
105 QToolButton *mButton = nullptr;
106 QgsPointCloudLayer *mLayer = nullptr;
107};
108
115class GUI_EXPORT QgsProcessingPointCloudExpressionDialog : public QDialog, private Ui::QgsProcessingPointCloudExpressionDialogBase
116{
117 Q_OBJECT
118
119 public:
123 QgsProcessingPointCloudExpressionDialog( QgsPointCloudLayer *layer, const QString &startExpression = QString(), QWidget *parent = nullptr );
124
130 void setExpression( const QString &text );
131
136 QString expression();
137
138 private slots:
139
143 void test();
144
148 void clear();
149
150 void lstAttributes_currentChanged( const QModelIndex &current, const QModelIndex &previous );
151 void lstAttributes_doubleClicked( const QModelIndex &index );
152 void lstValues_doubleClicked( const QModelIndex &index );
153 void btnEqual_clicked();
154 void btnLessThan_clicked();
155 void btnGreaterThan_clicked();
156 void btnIn_clicked();
157 void btnNotIn_clicked();
158 void btnLessEqual_clicked();
159 void btnGreaterEqual_clicked();
160 void btnNotEqual_clicked();
161 void btnAnd_clicked();
162 void btnOr_clicked();
163
164 private:
166 void populateAttributes();
167
169 QStandardItemModel *mModelAttributes = nullptr;
170
172 QStandardItemModel *mModelValues = nullptr;
173
174 QgsPointCloudLayer *mLayer = nullptr;
175 const QString mInitialText;
176};
177
179#endif // QGSPROCESSINGPOINTCLOUDEXPRESSIONLINEEDIT_H
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
Represents a map layer supporting display of point clouds.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52