diff options
Diffstat (limited to 'src/plugins/cpptools/cppcompletionassist.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletionassist.cpp | 54 |
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; } } } |