Kate
expandingdelegate.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ExpandingDelegate_H
00021 #define ExpandingDelegate_H
00022
00023 #include <QtGui/QItemDelegate>
00024 #include <QItemDelegate>
00025 #include <QtGui/QTextLine>
00026 #include <QModelIndex>
00027 #include <QPoint>
00028
00029 class KateRenderer;
00030 class KateCompletionWidget;
00031 class KateDocument;
00032 class KateTextLine;
00033 class ExpandingWidgetModel;
00034 class QVariant;
00035 class QStyleOptionViewItem;
00036
00041 class ExpandingDelegate : public QItemDelegate
00042 {
00043 Q_OBJECT
00044
00045 public:
00046 explicit ExpandingDelegate(ExpandingWidgetModel* model, QObject* parent = 0L);
00047
00048
00049
00050 virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00051
00052
00053 QSize basicSizeHint( const QModelIndex& index ) const;
00054
00055 ExpandingWidgetModel* model() const;
00056 protected:
00057
00058 virtual void adjustStyle( const QModelIndex& index, QStyleOptionViewItem & option ) const;
00059 virtual void drawDisplay ( QPainter * painter, const QStyleOptionViewItem & option, const QRect & rect, const QString & text ) const;
00060 virtual QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00061 virtual bool editorEvent ( QEvent * event, QAbstractItemModel * model, const QStyleOptionViewItem & option, const QModelIndex & index );
00062 virtual void drawBackground ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00063
00064 virtual QList<QTextLayout::FormatRange> createHighlighting(const QModelIndex& index, QStyleOptionViewItem& option) const;
00065
00069 QList<QTextLayout::FormatRange> highlightingFromVariantList(const QList<QVariant>& customHighlights) const;
00070
00071
00072 virtual void heightChanged() const;
00073
00074
00075 void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const;
00076
00077 mutable int m_currentColumnStart;
00078 mutable QList<int> m_currentColumnStarts;
00079 mutable QList<QTextLayout::FormatRange> m_cachedHighlights;
00080
00081 mutable Qt::Alignment m_cachedAlignment;
00082 private:
00083
00084 ExpandingWidgetModel* m_model;
00085 };
00086
00087 #endif