aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/cpptools/cppcompletionassist.cpp54
1 files changed, 26 insertions, 28 deletions
diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index d2c458f56f3..dddbca6e2fa 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -1614,40 +1614,38 @@ bool CppCompletionAssistProcessor::completeQtMethod(const QList<CPlusPlus::Looku
continue;
else if (! wantSignals && ! fun->isSlot())
continue;
- BasicProposalItem *item = toCompletionItem(fun);
- if (item) {
- unsigned count = fun->argumentCount();
- while (true) {
- BasicProposalItem *ci = item;
-
- QString signature;
- signature += Overview().prettyName(fun->name());
- signature += QLatin1Char('(');
- for (unsigned i = 0; i < count; ++i) {
- Symbol *arg = fun->argumentAt(i);
- if (i != 0)
- signature += QLatin1Char(',');
- signature += o.prettyType(arg->type());
- }
- signature += QLatin1Char(')');
-
- const QByteArray normalized =
- QMetaObject::normalizedSignature(signature.toLatin1());
- signature = QString::fromLatin1(normalized, normalized.size());
+ unsigned count = fun->argumentCount();
+ while (true) {
+ QString signature;
+ signature += Overview().prettyName(fun->name());
+ signature += QLatin1Char('(');
+ for (unsigned i = 0; i < count; ++i) {
+ Symbol *arg = fun->argumentAt(i);
+ if (i != 0)
+ signature += QLatin1Char(',');
+ signature += o.prettyType(arg->type());
+ }
+ signature += QLatin1Char(')');
- if (! signatures.contains(signature)) {
- signatures.insert(signature);
+ const QByteArray normalized =
+ QMetaObject::normalizedSignature(signature.toLatin1());
- ci->setText(signature); // fix the completion item.
- m_completions.append(ci);
- }
+ signature = QString::fromLatin1(normalized, normalized.size());
- if (count && fun->argumentAt(count - 1)->asArgument()->hasInitializer())
- --count;
- else
+ if (! signatures.contains(signature)) {
+ BasicProposalItem *ci = toCompletionItem(fun);
+ if (!ci)
break;
+ signatures.insert(signature);
+ ci->setText(signature); // fix the completion item.
+ m_completions.append(ci);
}
+
+ if (count && fun->argumentAt(count - 1)->asArgument()->hasInitializer())
+ --count;
+ else
+ break;
}
}
}