summaryrefslogtreecommitdiff
path: root/src/plugins/qmljseditor
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-02-01 11:40:29 +0100
committerRoberto Raggi <roberto.raggi@nokia.com>2010-02-01 11:40:29 +0100
commitcd9d13acac119f93ab4f88bf79002fb486480d31 (patch)
treed7048218bae3a33d6b95baff6201d5647f371f9f /src/plugins/qmljseditor
parent18e0777e4115d344d7bf295c7510145a49b44a59 (diff)
downloadqt-creator-cd9d13acac119f93ab4f88bf79002fb486480d31.tar.gz
Simplified triggerCompletion().
Diffstat (limited to 'src/plugins/qmljseditor')
-rw-r--r--src/plugins/qmljseditor/qmlcodecompletion.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/plugins/qmljseditor/qmlcodecompletion.cpp b/src/plugins/qmljseditor/qmlcodecompletion.cpp
index 1b8e730fab..cd5f31eec1 100644
--- a/src/plugins/qmljseditor/qmlcodecompletion.cpp
+++ b/src/plugins/qmljseditor/qmlcodecompletion.cpp
@@ -519,22 +519,26 @@ static bool isIdentifierChar(QChar ch)
bool QmlCodeCompletion::triggersCompletion(TextEditor::ITextEditable *editor)
{
- const QChar ch = editor->characterAt(editor->position() - 1);
+ const int cursorPosition = editor->position();
+ const QChar ch = editor->characterAt(cursorPosition - 1);
if (ch == QLatin1Char('(') || ch == QLatin1Char('.'))
return true;
else if (isIdentifierChar(ch)) {
- if (QmlJSTextEditor *ed = qobject_cast<QmlJSTextEditor *>(editor->widget())) {
- QTextCursor tc = ed->textCursor();
- tc.movePosition(QTextCursor::StartOfWord, QTextCursor::KeepAnchor);
- const QString word = tc.selectedText();
- if (word.length() > 2 && checkStartOfIdentifier(word)) {
- for (int i = 0; i < word.length(); ++i) {
- if (! isIdentifierChar(word.at(i)))
- return false;
- }
- return true;
+ int pos = editor->position() - 1;
+ for (; pos != -1; --pos) {
+ if (! isIdentifierChar(editor->characterAt(pos)))
+ break;
+ }
+ ++pos;
+
+ const QString word = editor->textAt(pos, cursorPosition - pos);
+ if (word.length() > 2 && checkStartOfIdentifier(word)) {
+ for (int i = 0; i < word.length(); ++i) {
+ if (! isIdentifierChar(word.at(i)))
+ return false;
}
+ return true;
}
}