|
15 | 15 |
|
16 | 16 | #include "qgsexpressionhighlighter.h" |
17 | 17 |
|
18 | | -QgsExpressionHighlighter::QgsExpressionHighlighter( QTextDocument *parent) |
| 18 | +QgsExpressionHighlighter::QgsExpressionHighlighter( QTextDocument *parent ) |
19 | 19 | : QSyntaxHighlighter( parent ) |
20 | 20 | { |
21 | 21 | HighlightingRule rule; |
22 | 22 |
|
| 23 | + keywordFormat.setForeground( Qt::darkBlue ); |
| 24 | + keywordFormat.setFontWeight( QFont::Bold ); |
| 25 | + QStringList keywordPatterns; |
| 26 | + keywordPatterns << "\\bCASE\\b" << "\\bWHEN\\b" << "\\bTHEN\\b" |
| 27 | + << "\\bELSE\\b" << "\\bEND\\b"; |
| 28 | + |
| 29 | + foreach( const QString &pattern, keywordPatterns ) |
| 30 | + { |
| 31 | + rule.pattern = QRegExp( pattern, Qt::CaseInsensitive ); |
| 32 | + rule.format = keywordFormat; |
| 33 | + highlightingRules.append( rule ); |
| 34 | + } |
| 35 | + |
23 | 36 | quotationFormat.setForeground( Qt::darkGreen ); |
24 | | - rule.pattern = QRegExp( "\'.*\'" ); |
| 37 | + rule.pattern = QRegExp( "\'[^\'\r\n]*\'" ); |
25 | 38 | rule.format = quotationFormat; |
26 | 39 | highlightingRules.append( rule ); |
27 | 40 |
|
28 | 41 | columnNameFormat.setForeground( Qt::darkRed ); |
29 | | - rule.pattern = QRegExp( "\".*\"" ); |
| 42 | + rule.pattern = QRegExp( "\"[^\"\r\n]*\"" ); |
30 | 43 | rule.format = columnNameFormat; |
31 | 44 | highlightingRules.append( rule ); |
32 | 45 | } |
33 | 46 |
|
34 | | -void QgsExpressionHighlighter::addFields(QStringList fieldList) |
| 47 | +void QgsExpressionHighlighter::addFields( QStringList fieldList ) |
35 | 48 | { |
36 | | - columnNameFormat.setForeground( Qt::darkRed ); |
37 | | - HighlightingRule rule; |
38 | | - foreach (const QString field, fieldList) |
39 | | - { |
40 | | - rule.pattern = QRegExp("\\b" + field + "\\b"); |
41 | | - rule.format = columnNameFormat; |
42 | | - highlightingRules.append( rule ); |
43 | | - } |
| 49 | + columnNameFormat.setForeground( Qt::darkRed ); |
| 50 | + HighlightingRule rule; |
| 51 | + foreach( const QString field, fieldList ) |
| 52 | + { |
| 53 | + rule.pattern = QRegExp( "\\b" + field + "\\b" ); |
| 54 | + rule.format = columnNameFormat; |
| 55 | + highlightingRules.append( rule ); |
| 56 | + } |
44 | 57 | } |
45 | 58 |
|
46 | 59 | void QgsExpressionHighlighter::highlightBlock( const QString &text ) |
|
0 commit comments