Commit 3e104ce4 authored by Leandro Melo's avatar Leandro Melo
Browse files

Tooltips: Do not show -qtnamespace (if any) in the tips.

This is basically for consistency with the docs and with the html
extraction mechanism.

Reviewed-by: Roberto Raggi
parent 4c0814f7
......@@ -66,6 +66,18 @@ namespace {
ch = doc->characterAt(tc->position());
}
}
QStringList stripName(const QString &name) {
QStringList all;
all << name;
int colonColon = 0;
const int size = name.size();
while ((colonColon = name.indexOf(QLatin1String("::"), colonColon)) != -1) {
all << name.right(size - colonColon - 2);
colonColon += 2;
}
return all;
}
}
CppElementEvaluator::CppElementEvaluator(CPPEditor *editor) :
......@@ -314,16 +326,7 @@ CppDeclarableElement::CppDeclarableElement(Symbol *declaration) : CppElement()
declaration->enclosingScope()->isNamespace() ||
declaration->enclosingScope()->isEnum()) {
m_qualifiedName = overview.prettyName(LookupContext::fullyQualifiedName(declaration));
QStringList helpIds;
helpIds << m_qualifiedName;
int colonColon = 0;
const int size = m_qualifiedName.size();
while ((colonColon = m_qualifiedName.indexOf(QLatin1String("::"), colonColon)) != -1) {
helpIds << m_qualifiedName.right(size - colonColon - 2);
colonColon += 2;
}
setHelpIdCandidates(helpIds);
setHelpIdCandidates(stripName(m_qualifiedName));
} else {
m_qualifiedName = m_name;
setHelpIdCandidates(QStringList(m_name));
......@@ -489,10 +492,15 @@ CppVariable::CppVariable(Symbol *declaration, const LookupContext &context, Scop
Symbol *symbol = clazz->symbols().at(0);
const QString &name =
overview.prettyName(LookupContext::fullyQualifiedName(symbol));
setTooltip(name);
setHelpCategory(TextEditor::HelpItem::ClassOrNamespace);
setHelpMark(name);
setHelpIdCandidates(QStringList(name));
if (!name.isEmpty()) {
setTooltip(name);
setHelpCategory(TextEditor::HelpItem::ClassOrNamespace);
const QStringList &allNames = stripName(name);
if (!allNames.isEmpty()) {
setHelpMark(allNames.last());
setHelpIdCandidates(allNames);
}
}
}
}
}
......
......@@ -114,14 +114,26 @@ void CppHoverHandler::decorateToolTip()
const TextEditor::HelpItem &help = lastHelpItemIdentified();
if (help.isValid()) {
// If Qt is built with a namespace, we still show the tip without it, as
// it is in the docs and for consistency with the doc extraction mechanism.
const TextEditor::HelpItem::Category category = help.category();
const QString &contents = help.extractContent(false);
if (!contents.isEmpty()) {
if (help.category() == TextEditor::HelpItem::ClassOrNamespace) {
setToolTip(Qt::escape(toolTip()));
appendToolTip(contents);
} else {
if (category == TextEditor::HelpItem::ClassOrNamespace)
setToolTip(help.helpId() + contents);
else
setToolTip(contents);
}
} else if (category == TextEditor::HelpItem::Typedef ||
category == TextEditor::HelpItem::Enum ||
category == TextEditor::HelpItem::ClassOrNamespace) {
// This approach is a bit limited since it cannot be used for functions
// because the help id doesn't really help in that case.
QString prefix;
if (category == TextEditor::HelpItem::Typedef)
prefix = QLatin1String("typedef ");
else if (category == TextEditor::HelpItem::Enum)
prefix = QLatin1String("enum ");
setToolTip(prefix + help.helpId());
}
addF1ToToolTip();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment