From fb48a262e6f34b8fb4e6f87b69556afaeb263bfa Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Mon, 6 Jul 2009 16:29:44 +0200
Subject: [PATCH] Added a bit more completion for the DUI editor.

---
 src/plugins/duieditor/duicodecompletion.cpp | 17 ++++++++++++++++-
 src/plugins/duieditor/duieditor.h           |  2 ++
 src/plugins/duieditor/duieditor.pro         |  6 ++++--
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/plugins/duieditor/duicodecompletion.cpp b/src/plugins/duieditor/duicodecompletion.cpp
index cceca642d2f..bdef36faaab 100644
--- a/src/plugins/duieditor/duicodecompletion.cpp
+++ b/src/plugins/duieditor/duicodecompletion.cpp
@@ -1,4 +1,4 @@
-
+#include "duicompletionvisitor.h"
 #include "duicodecompletion.h"
 #include "duieditor.h"
 #include <texteditor/basetexteditor.h>
@@ -61,6 +61,21 @@ int DuiCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
         m_completions.append(item);
     }
 
+    DuiDocument::Ptr duiDocument = edit->duiDocument();
+    if (!duiDocument.isNull()) {
+        QmlJS::AST::UiProgram *program = duiDocument->program();
+
+        if (program) {
+            DuiCompletionVisitor visitor;
+
+            foreach (const QString &word, visitor(program, m_startPosition)) {
+                TextEditor::CompletionItem item(this);
+                item.m_text = word;
+                m_completions.append(item);
+            }
+        }
+    }
+
     return pos;
 }
 
diff --git a/src/plugins/duieditor/duieditor.h b/src/plugins/duieditor/duieditor.h
index 4e5171aa533..d6e58f628e8 100644
--- a/src/plugins/duieditor/duieditor.h
+++ b/src/plugins/duieditor/duieditor.h
@@ -106,6 +106,8 @@ public:
 
 	virtual void unCommentSelection();
 
+    DuiDocument::Ptr duiDocument() const { return m_document; }
+
 public slots:
 	virtual void setFontSettings(const TextEditor::FontSettings &);
 
diff --git a/src/plugins/duieditor/duieditor.pro b/src/plugins/duieditor/duieditor.pro
index daaa282e0c7..ca06112d9d4 100644
--- a/src/plugins/duieditor/duieditor.pro
+++ b/src/plugins/duieditor/duieditor.pro
@@ -20,7 +20,8 @@ duieditoractionhandler.h \
 duicodecompletion.h \
 duieditorconstants.h \
 duihoverhandler.h \
-duidocument.h
+duidocument.h \
+duicompletionvisitor.h
 
 SOURCES += duieditor.cpp \
 duieditorfactory.cpp \
@@ -29,6 +30,7 @@ duihighlighter.cpp \
 duieditoractionhandler.cpp \
 duicodecompletion.cpp \
 duihoverhandler.cpp \
-duidocument.cpp
+duidocument.cpp \
+duicompletionvisitor.cpp
 
 RESOURCES += duieditor.qrc
-- 
GitLab