QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
codeeditors
qgscodeeditorsql.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgscodeeditorsql.cpp - 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
#include "
qgscodeeditorsql.h
"
17
18
#include <QFont>
19
#include <QString>
20
#include <QWidget>
21
22
#include "moc_qgscodeeditorsql.cpp"
23
24
QgsCodeEditorSQL::QgsCodeEditorSQL
( QWidget *parent )
25
:
QgsCodeEditor
( parent )
26
{
27
if
( !parent )
28
{
29
setTitle
( tr(
"SQL Editor"
) );
30
}
31
setAutoCompletionCaseSensitivity(
false
);
32
QgsCodeEditorSQL::initializeLexer
();
// avoid cppcheck warning by explicitly specifying namespace
33
}
34
35
Qgis::ScriptLanguage
QgsCodeEditorSQL::language
()
const
36
{
37
return
Qgis::ScriptLanguage::Sql
;
38
}
39
40
QgsCodeEditorSQL::~QgsCodeEditorSQL
()
41
{
42
if
( mApis )
43
{
44
mApis->cancelPreparation();
45
}
46
}
47
48
void
QgsCodeEditorSQL::initializeLexer
()
49
{
50
QFont font =
lexerFont
();
51
QColor
defaultColor
=
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Default
);
52
53
mSqlLexer =
new
QgsCaseInsensitiveLexerSQL(
this
);
54
mSqlLexer->setDefaultFont( font );
55
mSqlLexer->setDefaultColor(
defaultColor
);
56
mSqlLexer->setDefaultPaper(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Background
) );
57
mSqlLexer->setFont( font, -1 );
58
font.setBold(
true
);
59
mSqlLexer->setFont( font, QsciLexerSQL::Keyword );
60
61
font.setBold(
false
);
62
font.setItalic(
true
);
63
mSqlLexer->setFont( font, QsciLexerSQL::Comment );
64
mSqlLexer->setFont( font, QsciLexerSQL::CommentLine );
65
66
mSqlLexer->setColor(
defaultColor
, QsciLexerSQL::Default );
67
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Comment
), QsciLexerSQL::Comment );
68
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::CommentLine
), QsciLexerSQL::CommentLine );
69
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Number
), QsciLexerSQL::Number );
70
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Keyword
), QsciLexerSQL::Keyword );
71
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::SingleQuote
), QsciLexerSQL::SingleQuotedString );
72
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::DoubleQuote
), QsciLexerSQL::DoubleQuotedString );
73
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Operator
), QsciLexerSQL::Operator );
74
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Identifier
), QsciLexerSQL::Identifier );
75
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::QuotedIdentifier
), QsciLexerSQL::QuotedIdentifier );
76
mSqlLexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::QuotedOperator
), QsciLexerSQL::QuotedOperator );
77
78
setLexer( mSqlLexer );
79
80
runPostLexerConfigurationTasks
();
81
}
82
83
void
QgsCodeEditorSQL::setFields
(
const
QgsFields
&fields )
84
{
85
QStringList
fieldNames
;
86
87
for
(
const
QgsField
&field : std::as_const( fields ) )
88
{
89
fieldNames
.push_back( field.name() );
90
}
91
92
setFieldNames
(
fieldNames
);
93
}
94
95
void
QgsCodeEditorSQL::updateApis()
96
{
97
mApis =
new
QsciAPIs( mSqlLexer );
98
99
for
(
const
QString &fieldName : std::as_const( mFieldNames ) )
100
{
101
mApis->add( fieldName );
102
}
103
104
for
(
const
QString &keyword : std::as_const( mExtraKeywords ) )
105
{
106
mApis->add( keyword );
107
}
108
109
mApis->prepare();
110
mSqlLexer->setAPIs( mApis );
111
}
112
113
QStringList
QgsCodeEditorSQL::extraKeywords
()
const
114
{
115
return
mExtraKeywords.values();
116
}
117
118
void
QgsCodeEditorSQL::setExtraKeywords
(
const
QStringList &
extraKeywords
)
119
{
120
mExtraKeywords = qgis::listToSet(
extraKeywords
);
121
updateApis();
122
}
123
124
QStringList
QgsCodeEditorSQL::fieldNames
()
const
125
{
126
return
mFieldNames.values();
127
}
128
129
void
QgsCodeEditorSQL::setFieldNames
(
const
QStringList &
fieldNames
)
130
{
131
mFieldNames = qgis::listToSet(
fieldNames
);
132
updateApis();
133
}
Qgis::ScriptLanguage
ScriptLanguage
Scripting languages.
Definition
qgis.h:4978
Qgis::ScriptLanguage::Sql
@ Sql
SQL.
Definition
qgis.h:4986
QgsCodeEditorColorScheme::ColorRole::Comment
@ Comment
Comment color.
Definition
qgscodeeditorcolorscheme.h:45
QgsCodeEditorColorScheme::ColorRole::QuotedOperator
@ QuotedOperator
Quoted operator color.
Definition
qgscodeeditorcolorscheme.h:56
QgsCodeEditorColorScheme::ColorRole::Keyword
@ Keyword
Keyword color.
Definition
qgscodeeditorcolorscheme.h:40
QgsCodeEditorColorScheme::ColorRole::Identifier
@ Identifier
Identifier color.
Definition
qgscodeeditorcolorscheme.h:57
QgsCodeEditorColorScheme::ColorRole::DoubleQuote
@ DoubleQuote
Double quote color.
Definition
qgscodeeditorcolorscheme.h:52
QgsCodeEditorColorScheme::ColorRole::QuotedIdentifier
@ QuotedIdentifier
Quoted identifier color.
Definition
qgscodeeditorcolorscheme.h:58
QgsCodeEditorColorScheme::ColorRole::CommentLine
@ CommentLine
Line comment color.
Definition
qgscodeeditorcolorscheme.h:46
QgsCodeEditorColorScheme::ColorRole::Default
@ Default
Default text color.
Definition
qgscodeeditorcolorscheme.h:39
QgsCodeEditorColorScheme::ColorRole::Background
@ Background
Background color.
Definition
qgscodeeditorcolorscheme.h:48
QgsCodeEditorColorScheme::ColorRole::SingleQuote
@ SingleQuote
Single quote color.
Definition
qgscodeeditorcolorscheme.h:51
QgsCodeEditorColorScheme::ColorRole::Number
@ Number
Number color.
Definition
qgscodeeditorcolorscheme.h:44
QgsCodeEditorColorScheme::ColorRole::Operator
@ Operator
Operator color.
Definition
qgscodeeditorcolorscheme.h:55
QgsCodeEditorSQL::~QgsCodeEditorSQL
~QgsCodeEditorSQL() override
Definition
qgscodeeditorsql.cpp:40
QgsCodeEditorSQL::extraKeywords
QStringList extraKeywords() const
Returns the extra keywords.
Definition
qgscodeeditorsql.cpp:113
QgsCodeEditorSQL::language
Qgis::ScriptLanguage language() const override
Returns the associated scripting language.
Definition
qgscodeeditorsql.cpp:35
QgsCodeEditorSQL::setExtraKeywords
void setExtraKeywords(const QStringList &extraKeywords)
Set extra keywords to extraKeywords.
Definition
qgscodeeditorsql.cpp:118
QgsCodeEditorSQL::fieldNames
QStringList fieldNames() const
Returns field names from the lexer API.
Definition
qgscodeeditorsql.cpp:124
QgsCodeEditorSQL::QgsCodeEditorSQL
QgsCodeEditorSQL(QWidget *parent=nullptr)
Constructor for QgsCodeEditorSQL.
Definition
qgscodeeditorsql.cpp:24
QgsCodeEditorSQL::setFieldNames
void setFieldNames(const QStringList &fieldNames)
Set field names to fieldNames to be added to the lexer API.
Definition
qgscodeeditorsql.cpp:129
QgsCodeEditorSQL::initializeLexer
void initializeLexer() override
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
Definition
qgscodeeditorsql.cpp:48
QgsCodeEditorSQL::setFields
void setFields(const QgsFields &fields)
Set field names to be added to the lexer API.
Definition
qgscodeeditorsql.cpp:83
QgsCodeEditor::runPostLexerConfigurationTasks
void runPostLexerConfigurationTasks()
Performs tasks which must be run after a lexer has been set for the widget.
Definition
qgscodeeditor.cpp:468
QgsCodeEditor::setTitle
void setTitle(const QString &title)
Set the widget title.
Definition
qgscodeeditor.cpp:552
QgsCodeEditor::QgsCodeEditor
QgsCodeEditor(QWidget *parent=nullptr, const QString &title=QString(), bool folding=false, bool margin=false, QgsCodeEditor::Flags flags=QgsCodeEditor::Flags(), QgsCodeEditor::Mode mode=QgsCodeEditor::Mode::ScriptEditor)
Construct a new code editor.
Definition
qgscodeeditor.cpp:96
QgsCodeEditor::lexerFont
QFont lexerFont() const
Returns the font to use in the lexer.
Definition
qgscodeeditor.cpp:435
QgsCodeEditor::lexerColor
QColor lexerColor(QgsCodeEditorColorScheme::ColorRole role) const
Returns the color to use in the lexer for the specified role.
Definition
qgscodeeditor.cpp:419
QgsCodeEditor::defaultColor
static QColor defaultColor(QgsCodeEditorColorScheme::ColorRole role, const QString &theme=QString())
Returns the default color for the specified role.
Definition
qgscodeeditor.cpp:1123
QgsField
Encapsulate a field in an attribute table or data source.
Definition
qgsfield.h:56
QgsFields
Container of fields for a vector layer.
Definition
qgsfields.h:45
qgscodeeditorsql.h
Generated on
for QGIS API Documentation by
1.17.0