CppTools: Fix recent regression in type hierarchy model

Change-Id: I9fe462a61f32884b422ad402b18f17b44b60c7ab
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
hjk
2012-10-16 15:01:07 +02:00
committed by David Schulz
parent b515768dde
commit 22f929ea34
2 changed files with 7 additions and 6 deletions

View File

@@ -183,24 +183,24 @@ void CppTypeHierarchyWidget::perform()
m_inspectedClass->setup(cppClass); m_inspectedClass->setup(cppClass);
QStandardItem *bases = new QStandardItem(tr("Bases")); QStandardItem *bases = new QStandardItem(tr("Bases"));
m_model->invisibleRootItem()->appendRow(bases); m_model->invisibleRootItem()->appendRow(bases);
buildHierarchy(*cppClass, bases, true, cppClass->bases); buildHierarchy(*cppClass, bases, true, &CppClass::bases);
QStandardItem *derived = new QStandardItem(tr("Derived")); QStandardItem *derived = new QStandardItem(tr("Derived"));
m_model->invisibleRootItem()->appendRow(derived); m_model->invisibleRootItem()->appendRow(derived);
buildHierarchy(*cppClass, derived, true, cppClass->derived); buildHierarchy(*cppClass, derived, true, &CppClass::derived);
m_treeView->expandAll(); m_treeView->expandAll();
} }
} }
} }
void CppTypeHierarchyWidget::buildHierarchy(const CppClass &cppClass, QStandardItem *parent, bool isRoot, const QList<CppClass> &classes) void CppTypeHierarchyWidget::buildHierarchy(const CppClass &cppClass, QStandardItem *parent, bool isRoot, const HierarchyMember member)
{ {
if (!isRoot) { if (!isRoot) {
QStandardItem *item = itemForClass(cppClass); QStandardItem *item = itemForClass(cppClass);
parent->appendRow(item); parent->appendRow(item);
parent = item; parent = item;
} }
foreach (const CppClass &klass, sortClasses(classes)) foreach (const CppClass &klass, sortClasses(cppClass.*member))
buildHierarchy(klass, parent, false, classes); buildHierarchy(klass, parent, false, member);
} }
void CppTypeHierarchyWidget::onItemClicked(const QModelIndex &index) void CppTypeHierarchyWidget::onItemClicked(const QModelIndex &index)

View File

@@ -75,7 +75,8 @@ private slots:
void onItemClicked(const QModelIndex &index); void onItemClicked(const QModelIndex &index);
private: private:
void buildHierarchy(const CppClass &cppClass, QStandardItem *parent, bool isRoot, const QList<CppClass> &classes); typedef QList<CppClass> CppClass::*HierarchyMember;
void buildHierarchy(const CppClass &cppClass, QStandardItem *parent, bool isRoot, HierarchyMember member);
CPPEditorWidget *m_cppEditor; CPPEditorWidget *m_cppEditor;
Utils::NavigationTreeView *m_treeView; Utils::NavigationTreeView *m_treeView;