QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscodeeditorexpression.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscodeeditorsql.h - A SQL editor based on QScintilla
3 --------------------------------------
4 Date : 06-Oct-2013
5 Copyright : (C) 2013 by Salvatore Larosa
6 Email : lrssvtml (at) gmail (dot) com
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 QGSCODEEDITOREXPRESSION_H
17#define QGSCODEEDITOREXPRESSION_H
18
19#include "qgis_sip.h"
20#include "qgis_gui.h"
21#include "qgscodeeditor.h"
23
24#include <Qsci/qscilexersql.h>
25
26SIP_IF_MODULE( HAVE_QSCI_SIP )
27
28
36class GUI_EXPORT QgsCodeEditorExpression : public QgsCodeEditor
37{
38 Q_OBJECT
39
40 public:
42 QgsCodeEditorExpression( QWidget *parent SIP_TRANSFERTHIS = nullptr );
43
44 Qgis::ScriptLanguage language() const override;
45
51 void setExpressionContext( const QgsExpressionContext &context );
52
56 void setFields( const QgsFields &fields );
57
58 protected:
59
60 void initializeLexer() override;
61
62 private:
63 void updateApis();
64 QsciAPIs *mApis = nullptr;
65 QsciLexerSQL *mSqlLexer = nullptr;
66
67 QStringList mVariables;
68 QStringList mContextFunctions;
69 QStringList mFunctions;
70 QStringList mFieldNames;
71};
72
73#ifndef SIP_RUN
75
85class QgsLexerExpression : public QsciLexerSQL
86{
87 Q_OBJECT
88
89 public:
91 explicit QgsLexerExpression( QObject *parent = nullptr );
92
93 const char *language() const override;
94
95 bool caseSensitive() const override;
96
97 const char *wordCharacters() const override;
98};
99
100class QgsSciApisExpression : public QsciAPIs
101{
102 Q_OBJECT
103 public:
104 QgsSciApisExpression( QsciLexer *lexer );
105
106 QStringList callTips( const QStringList &context, int commas, QsciScintilla::CallTipsStyle style, QList<int> &shifts ) override;
107};
109#endif
110
111#endif
ScriptLanguage
Scripting languages.
Definition: qgis.h:3718
A QGIS expression editor based on QScintilla2.
A text editor based on QScintilla2.
Definition: qgscodeeditor.h:93
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Container of fields for a vector layer.
Definition: qgsfields.h:45
#define SIP_IF_MODULE(condition)
Definition: qgis_sip.h:28
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53