Tooltips and help ids: Fix for templates.

Tooltips can still be improved.
This commit is contained in:
Leandro Melo
2010-09-23 18:34:17 +02:00
parent 9ebbac63c3
commit b87edd821d
2 changed files with 43 additions and 0 deletions

View File

@@ -192,6 +192,8 @@ void CppElementEvaluator::handleLookupItemMatch(const Snapshot &snapshot,
} else if (declaration->isDeclaration() && type.isValid()) {
m_element = QSharedPointer<CppElement>(
new CppVariable(declaration, context, lookupItem.scope()));
} else if (declaration->isTemplate() && declaration->asTemplate()->declaration()) {
m_element = QSharedPointer<CppElement>(new CppTemplate(declaration));
} else {
m_element = QSharedPointer<CppElement>(new CppDeclarableElement(declaration));
}
@@ -491,3 +493,31 @@ CppVariable::CppVariable(Symbol *declaration, const LookupContext &context, Scop
CppVariable::~CppVariable()
{}
// CppTemplate
CppTemplate::CppTemplate(CPlusPlus::Symbol *declaration) : CppDeclarableElement(declaration)
{
Template *templateSymbol = declaration->asTemplate();
if (templateSymbol->declaration()->isClass() ||
templateSymbol->declaration()->isForwardClassDeclaration()) {
m_isClassTemplate = true;
setHelpCategory(TextEditor::HelpItem::ClassOrNamespace);
setTooltip(qualifiedName());
} else {
m_isClassTemplate = false;
setHelpCategory(TextEditor::HelpItem::Function);
}
}
CppTemplate::~CppTemplate()
{}
bool CppTemplate::isClassTemplate() const
{
return m_isClassTemplate;
}
bool CppTemplate::isFunctionTemplate() const
{
return !m_isClassTemplate;
}