forked from qt-creator/qt-creator
C++ tooltip: Make sure to get the correct list of base classes.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user