diff options
author | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2009-12-09 19:08:14 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2009-12-09 19:26:34 +0100 |
commit | 3f1b45b0579e7f1c7c2c88f12a1ef3414b9b2061 (patch) | |
tree | 35a141e4d3e687fea2ea752589ffd3c439640442 /src/plugins/cpptools/cppcodecompletion.cpp | |
parent | 33bdf429535dbd72d3a78aafecbad0c987c0b74c (diff) | |
download | qt-creator-3f1b45b0579e7f1c7c2c88f12a1ef3414b9b2061.tar.gz |
Implemented first-letter case-sensitive for completion as default
By default now only the first letter is case-sensitive. It is still
possible to choose full or no case-sensitivity as well.
Task-number: QTCREATORBUG-236
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodecompletion.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 14764970b1..2a714dbab5 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -476,7 +476,7 @@ CppCodeCompletion::CppCodeCompletion(CppModelManager *manager) m_manager(manager), m_editor(0), m_startPosition(-1), - m_caseSensitivity(Qt::CaseSensitive), + m_caseSensitivity(FirstLetterCaseSensitive), m_autoInsertBrackets(true), m_partialCompletionEnabled(true), m_forcedCompletion(false), @@ -490,12 +490,12 @@ QIcon CppCodeCompletion::iconForSymbol(Symbol *symbol) const return m_icons.iconForSymbol(symbol); } -Qt::CaseSensitivity CppCodeCompletion::caseSensitivity() const +CppCodeCompletion::CaseSensitivity CppCodeCompletion::caseSensitivity() const { return m_caseSensitivity; } -void CppCodeCompletion::setCaseSensitivity(Qt::CaseSensitivity caseSensitivity) +void CppCodeCompletion::setCaseSensitivity(CaseSensitivity caseSensitivity) { m_caseSensitivity = caseSensitivity; } @@ -1438,20 +1438,29 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio * * Meaning it allows any sequence of lower-case characters to preceed an * upper-case character. So for example gAC matches getActionController. + * + * It also implements the first-letter-only case sensitivity. */ QString keyRegExp; keyRegExp += QLatin1Char('^'); bool first = true; foreach (const QChar &c, key) { - if (c.isUpper() && !first) { + if (c.isUpper() && !first) keyRegExp += QLatin1String("[a-z0-9_]*"); - keyRegExp += c; + + if (m_caseSensitivity == FirstLetterCaseSensitive && !first) { + keyRegExp += QLatin1Char('['); + keyRegExp += QRegExp::escape(c.toLower()); + keyRegExp += QRegExp::escape(c.toUpper()); + keyRegExp += QLatin1Char(']'); } else { keyRegExp += QRegExp::escape(c); } + first = false; } - const QRegExp regExp(keyRegExp, m_caseSensitivity); + const QRegExp regExp(keyRegExp, (m_caseSensitivity == CaseInsensitive) + ? Qt::CaseInsensitive : Qt::CaseSensitive); foreach (TextEditor::CompletionItem item, m_completions) { if (regExp.indexIn(item.text) == 0) { |