diff options
Diffstat (limited to 'src/kitemviews/kitemlistwidget.h')
| -rw-r--r-- | src/kitemviews/kitemlistwidget.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/kitemviews/kitemlistwidget.h b/src/kitemviews/kitemlistwidget.h index 8a28913b6..fdb07d62e 100644 --- a/src/kitemviews/kitemlistwidget.h +++ b/src/kitemviews/kitemlistwidget.h @@ -32,9 +32,31 @@ #include <QStyle> class KItemListSelectionToggle; +class KItemListView; class QPropertyAnimation; /** + * @brief Provides information for creating an instance of KItemListWidget. + * + * KItemListView only creates KItemListWidget instances for the visible + * area. For calculating the required size of all items the expected + * size for the invisible items must be accessible. KItemListWidgetInformant + * provides this information. + */ +class LIBDOLPHINPRIVATE_EXPORT KItemListWidgetInformant +{ +public: + KItemListWidgetInformant(); + virtual ~KItemListWidgetInformant(); + + virtual QSizeF itemSizeHint(int index, const KItemListView* view) const = 0; + + virtual qreal preferredRoleColumnWidth(const QByteArray& role, + int index, + const KItemListView* view) const = 0; +}; + +/** * @brief Widget that shows a visible item from the model. * * For showing an item from a custom model it is required to at least overwrite KItemListWidget::paint(). @@ -46,7 +68,7 @@ class LIBDOLPHINPRIVATE_EXPORT KItemListWidget : public QGraphicsWidget Q_OBJECT public: - KItemListWidget(QGraphicsItem* parent); + KItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent); virtual ~KItemListWidget(); void setIndex(int index); @@ -176,6 +198,8 @@ protected: */ qreal hoverOpacity() const; + const KItemListWidgetInformant* informant() const; + private slots: void slotHoverAnimationFinished(); @@ -188,6 +212,7 @@ private: private: Q_PROPERTY(qreal hoverOpacity READ hoverOpacity WRITE setHoverOpacity) + KItemListWidgetInformant* m_informant; int m_index; bool m_selected; bool m_current; @@ -208,6 +233,12 @@ private: QByteArray m_editedRole; }; + +inline const KItemListWidgetInformant* KItemListWidget::informant() const +{ + return m_informant; +} + #endif |
