C++ tooltip: Make sure to get the correct list of base classes.

This commit is contained in:
Leandro Melo
2010-07-28 16:33:44 +02:00
parent 62e33d0e7a
commit 28be7bc4b4

View File

@@ -60,6 +60,8 @@
#include <QtGui/QToolTip>
#include <QtGui/QTextCursor>
#include <algorithm>
using namespace CppEditor::Internal;
using namespace CPlusPlus;
using namespace Core;
@@ -95,11 +97,14 @@ namespace {
const QList<Symbol *> &symbols = baseClass->symbols();
foreach (Symbol *baseSymbol, symbols) {
if (baseSymbol->isClass()) {
hierarchy->back().append(overview.prettyName(
LookupContext::fullyQualifiedName(baseSymbol)));
buildClassHierarchyHelper(baseSymbol, context, overview, hierarchy);
hierarchy->append(hierarchy->back());
hierarchy->back().removeLast();
const QString &qualifiedName = overview.prettyName(
LookupContext::fullyQualifiedName(baseSymbol));
if (!qualifiedName.isEmpty()) {
hierarchy->back().append(qualifiedName);
buildClassHierarchyHelper(baseSymbol, context, overview, hierarchy);
hierarchy->append(hierarchy->back());
hierarchy->back().removeLast();
}
}
}
}
@@ -476,6 +481,10 @@ void CppHoverHandler::generateDiagramTooltip(const bool extendTooltips)
qSort(m_classHierarchy.begin(), m_classHierarchy.end(), ClassHierarchyComp());
// Remove duplicates (in case there are any).
m_classHierarchy.erase(std::unique(m_classHierarchy.begin(), m_classHierarchy.end()),
m_classHierarchy.end());
QStringList directBaseClasses;
foreach (const QStringList &hierarchy, m_classHierarchy) {
if (hierarchy.size() > 1)