QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
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 void initializeLexer() override;
60
61 private:
62 void updateApis();
63 QsciAPIs *mApis = nullptr;
64 QsciLexerSQL *mSqlLexer = nullptr;
65
66 QStringList mVariables;
67 QStringList mContextFunctions;
68 QStringList mFunctions;
69 QStringList mFieldNames;
70};
71
72#ifndef SIP_RUN
74
84class QgsLexerExpression : public QsciLexerSQL
85{
86 Q_OBJECT
87
88 public:
90 explicit QgsLexerExpression( QObject *parent = nullptr );
91
92 const char *language() const override;
93
94 bool caseSensitive() const override;
95
96 const char *wordCharacters() const override;
97};
98
99class QgsSciApisExpression : public QsciAPIs
100{
101 Q_OBJECT
102 public:
103 QgsSciApisExpression( QsciLexer *lexer );
104
105 QStringList callTips( const QStringList &context, int commas, QsciScintilla::CallTipsStyle style, QList<int> &shifts ) override;
106};
108#endif
109
110#endif
ScriptLanguage
Scripting languages.
Definition qgis.h:4244
A QGIS expression editor based on QScintilla2.
A text editor based on QScintilla2.
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:46
#define SIP_IF_MODULE(condition)
Definition qgis_sip.h:28
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53