diff options
author | Leandro Melo <leandro.melo@nokia.com> | 2010-10-06 15:23:05 +0200 |
---|---|---|
committer | Leandro Melo <leandro.melo@nokia.com> | 2010-10-06 15:40:01 +0200 |
commit | 2d50925071cd71942d78f52486eae69a02da3234 (patch) | |
tree | f03bd65b0717e732a60936ded74889e660b1756f /src/plugins/cppeditor/cpptypehierarchy.h | |
parent | ed6585c312c12239185376ca114c7cfcff978c14 (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.h | 38 |
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 |