QGIS API Documentation 3.29.0-Master (006c3c0232)
qgsstoredexpressionmanager.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsstoredexpressionmanager.h
3 -------------------
4 begin : August 2019
5 copyright : (C) 2019 David Signer
6 email : david at opengis dot ch
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 QGSSTOREDEXPRESSIONMANAGER_H
19#define QGSSTOREDEXPRESSIONMANAGER_H
20
21#include "qgis_core.h"
22#include <QString>
23#include <QObject>
24#include <QUuid>
25
26
27#ifdef SIP_RUN
28% ModuleHeaderCode
30% End
31#endif
32
33class QDomNode;
34class QDomDocument;
35
41struct CORE_EXPORT QgsStoredExpression
42{
43
50 {
51 FilterExpression = 1 << 0,
52 DefaultValueExpression = 1 << 1,
53 All = FilterExpression | DefaultValueExpression
54 };
55
56#ifndef SIP_RUN
57
62
70 QgsStoredExpression( QString name, QString expression, Category tag = Category::FilterExpression )
71 : id( QUuid::createUuid().toString() ),
72 name( name ),
73 expression( expression ),
74 tag( tag )
75 {}
76#endif
77
79 QString id;
81 QString name;
83 QString expression;
86};
87
93class CORE_EXPORT QgsStoredExpressionManager : public QObject
94{
95 Q_OBJECT
96
97 public:
98
103
112 QString addStoredExpression( const QString &name, const QString &expression, const QgsStoredExpression::Category &tag = QgsStoredExpression::Category::FilterExpression );
113
119 void removeStoredExpression( const QString &id );
120
129 void updateStoredExpression( const QString &id, const QString &name, const QString &expression, const QgsStoredExpression::Category &tag );
130
136 void addStoredExpressions( const QList< QgsStoredExpression > &storedExpressions );
137
143 QList< QgsStoredExpression > storedExpressions( const QgsStoredExpression::Category &tag = QgsStoredExpression::Category::All );
144
145
151 QgsStoredExpression storedExpression( const QString &id ) const;
152
159 QgsStoredExpression findStoredExpressionByExpression( const QString &expression, const QgsStoredExpression::Category &tag = QgsStoredExpression::Category::All ) const;
160
162 void clearStoredExpressions();
163
165 bool writeXml( QDomNode &layerNode ) const;
166
168 bool readXml( const QDomNode &layerNode );
169
170 signals:
171
172 public slots:
173
174 private:
175 QList< QgsStoredExpression > mStoredExpressions;
176};
177
178#endif // QGSSTOREDEXPRESSIONMANAGER_H
Manages stored expressions regarding creation, modification and storing in the project.
QgsStoredExpressionManager()=default
Constructor for QgsStoredExpressionManager.
Stored expression containing name, content (expression text) and a category tag.
QgsStoredExpression()=default
Constructor for QgsStoredExpression.
QString expression
expression text
Category
Categories of use cases FilterExpression for stored expressions to filter attribute table DefaultValu...
QgsStoredExpression(QString name, QString expression, Category tag=Category::FilterExpression)
Create a new QgsStoredExpression with a generated uuid as id.
QString id
generated uuid used for identification
Category tag
category of the expression use case
QString name
descriptive name of the expression