From 491675559d77dc24223cd16a106f1e1d896bef8b Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Fri, 18 Jun 2010 10:58:11 +0200
Subject: [PATCH] Added snippet expansion to the C++ code completion.

---
 src/plugins/cpptools/cppcodecompletion.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index 23de6cc446e..6660b09775b 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -1623,8 +1623,17 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
 {
     Symbol *symbol = 0;
 
-    if (item.data.isValid())
-        symbol = item.data.value<Symbol *>();
+    if (item.data.isValid()) {
+        if (item.data.canConvert<QString>()) {
+            TextEditor::BaseTextEditor *edit = qobject_cast<TextEditor::BaseTextEditor *>(m_editor->widget());
+            QTextCursor tc = edit->textCursor();
+            tc.setPosition(m_startPosition, QTextCursor::KeepAnchor);
+            edit->insertCodeSnippet(tc, item.data.toString());
+            return;
+        } else {
+            symbol = item.data.value<Symbol *>();
+        }
+    }
 
     QString toInsert;
     QString extraChars;
-- 
GitLab