From 9aa2dea3418088b75b78a29f5ec4d716c4bb7520 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Tue, 19 Apr 2016 21:46:30 +0200 Subject: [PATCH] QgsCodeEditorSQL: make autocompletion case insensitive when APIs are set on the lexer --- src/gui/qgscodeeditorsql.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/gui/qgscodeeditorsql.cpp b/src/gui/qgscodeeditorsql.cpp index 5b3c8b8e9c4a..961bf6132567 100644 --- a/src/gui/qgscodeeditorsql.cpp +++ b/src/gui/qgscodeeditorsql.cpp @@ -39,11 +39,27 @@ QgsCodeEditorSQL::~QgsCodeEditorSQL() { } +/** Internal use. + + setAutoCompletionCaseSensitivity( false ) is not sufficient when installing + a lexer, since its caseSensitive() method is actually used, and defaults + to true. + @note not available in Python bindings +*/ +class QgsCaseInsensitiveLexerSQL: public QsciLexerSQL +{ + public: + //! constructor + QgsCaseInsensitiveLexerSQL( QObject *parent = 0 ) : QsciLexerSQL( parent ) {} + + bool caseSensitive() const override { return false; } +}; + void QgsCodeEditorSQL::setSciLexerSQL() { QFont font = getMonospaceFont(); - QsciLexerSQL* sqlLexer = new QsciLexerSQL( this ); + QsciLexerSQL* sqlLexer = new QgsCaseInsensitiveLexerSQL( this ); sqlLexer->setDefaultFont( font ); sqlLexer->setFont( font, -1 ); font.setBold( true );