QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscodeeditorsql.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 QGSCODEEDITORSQL_H
17#define QGSCODEEDITORSQL_H
18
19#include "qgscodeeditor.h"
20#include "qgis_sip.h"
21#include "qgis_gui.h"
22#include "qgsfeature.h"
23#include <Qsci/qscilexersql.h>
24
25SIP_IF_MODULE( HAVE_QSCI_SIP )
26
27
33class GUI_EXPORT QgsCodeEditorSQL : public QgsCodeEditor
34{
35 Q_OBJECT
36
37 public:
39 QgsCodeEditorSQL( QWidget *parent SIP_TRANSFERTHIS = nullptr );
40
41 Qgis::ScriptLanguage language() const override;
42
43 virtual ~QgsCodeEditorSQL();
44
50 void setFields( const QgsFields &fields );
51
57 void setFieldNames( const QStringList &fieldNames );
58
63 QStringList fieldNames() const;
64
74 void setExtraKeywords( const QStringList &extraKeywords );
75
85 QStringList extraKeywords() const;
86
87 protected:
88 void initializeLexer() override;
89
90 private:
91 void updateApis();
92 QsciAPIs *mApis = nullptr;
93 QsciLexerSQL *mSqlLexer = nullptr;
94 QSet<QString> mExtraKeywords;
95
96 QSet<QString> mFieldNames;
97
98 friend class TestQgsQueryResultWidget;
99};
100
101#ifndef SIP_RUN
103
113class QgsCaseInsensitiveLexerSQL: public QsciLexerSQL
114{
115 Q_OBJECT
116
117 public:
119 explicit QgsCaseInsensitiveLexerSQL( QObject *parent = nullptr ) : QsciLexerSQL( parent ) {}
120
121 bool caseSensitive() const override { return false; }
122};
124#endif
125
126#endif
ScriptLanguage
Scripting languages.
Definition: qgis.h:3718
A SQL editor based on QScintilla2.
A text editor based on QScintilla2.
Definition: qgscodeeditor.h:93
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