From cadaec24aaee548afd9cb4b21beaecc22c69463a Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Tue, 20 Oct 2009 12:54:30 +0200
Subject: [PATCH] Fix function signature completion for cv-qualified functions.

Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
---
 src/plugins/cpptools/cppcodecompletion.cpp | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index c0e832fba99..56e7f73f223 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -1063,10 +1063,18 @@ bool CppCodeCompletion::completeConstructorOrFunction(const QList<TypeOfExpressi
                     Overview overview;
                     overview.setShowArgumentNames(true);
 
-                    TextEditor::CompletionItem item(this);
-                    item.text = overview(f->type());
-                    item.text = item.text.mid(1, item.text.size()-2);
-                    m_completions.append(item);
+                    // get rid of parentheses and cv-qualifiers
+                    QString completion = overview(f->type());
+                    if (f->isVolatile() || f->isConst())
+                        completion = completion.mid(1, completion.lastIndexOf(')') - 1);
+                    else
+                        completion = completion.mid(1, completion.size() - 2);
+
+                    if (completion.size()) {
+                        TextEditor::CompletionItem item(this);
+                        item.text = completion;
+                        m_completions.append(item);
+                    }
                 }
                 return true;
             }
-- 
GitLab