aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cpptypehierarchy.h
diff options
context:
space:
mode:
authorLeandro Melo <leandro.melo@nokia.com>2010-10-06 15:23:05 +0200
committerLeandro Melo <leandro.melo@nokia.com>2010-10-06 15:40:01 +0200
commit2d50925071cd71942d78f52486eae69a02da3234 (patch)
treef03bd65b0717e732a60936ded74889e660b1756f /src/plugins/cppeditor/cpptypehierarchy.h
parented6585c312c12239185376ca114c7cfcff978c14 (diff)
Create a reusable item delegate wich supports "annotations".
Currently used by the QML outline and C++ type hierarchy. Reviewed-by: kkoehne Task-number: QTCREATORBUG-2583
Diffstat (limited to 'src/plugins/cppeditor/cpptypehierarchy.h')
-rw-r--r--src/plugins/cppeditor/cpptypehierarchy.h38
1 files changed, 8 insertions, 30 deletions
diff --git a/src/plugins/cppeditor/cpptypehierarchy.h b/src/plugins/cppeditor/cpptypehierarchy.h
index db61747151..663feae84d 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.h
+++ b/src/plugins/cppeditor/cpptypehierarchy.h
@@ -37,13 +37,11 @@
#include <QtCore/QString>
#include <QtGui/QWidget>
#include <QtGui/QStackedWidget>
-#include <QtGui/QStandardItem>
-#include <QtGui/QStyledItemDelegate>
QT_BEGIN_NAMESPACE
class QStandardItemModel;
+class QStandardItem;
class QModelIndex;
-class QPainter;
QT_END_NAMESPACE
namespace Core {
@@ -52,6 +50,7 @@ class IEditor;
namespace Utils {
class NavigationTreeView;
+class AnnotatedItemDelegate;
}
namespace CppEditor {
@@ -59,32 +58,6 @@ namespace Internal {
class CPPEditor;
-class CppTypeHierarchyItem : public QStandardItem
-{
-public:
- CppTypeHierarchyItem(const CppClass &cppClass);
- virtual ~CppTypeHierarchyItem();
-
- virtual int type() const;
-
- const CppClass &cppClass() const;
-
-private:
- CppClass m_cppClass;
-};
-
-class CppTypeHierarchyDelegate : public QStyledItemDelegate
-{
-public:
- CppTypeHierarchyDelegate(QObject *parent = 0);
- virtual ~CppTypeHierarchyDelegate();
-
- virtual void paint(QPainter *painter,
- const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
- virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
class CppTypeHierarchyWidget : public QWidget
{
Q_OBJECT
@@ -101,12 +74,17 @@ private slots:
void onItemClicked(const QModelIndex &index);
private:
+ enum ItemRole {
+ AnnotationRole = Qt::UserRole + 1,
+ LinkRole
+ };
+
void buildModel(const CppClass &cppClass, QStandardItem *item);
CPPEditor *m_cppEditor;
Utils::NavigationTreeView *m_treeView;
QStandardItemModel *m_model;
- CppTypeHierarchyDelegate *m_delegate;
+ Utils::AnnotatedItemDelegate *m_delegate;
};
// @todo: Pretty much the same design as the OutlineWidgetStack. Maybe we can generalize the