diff options
Diffstat (limited to 'src/kitemviews/kitemlistwidget.h')
| -rw-r--r-- | src/kitemviews/kitemlistwidget.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistwidget.h b/src/kitemviews/kitemlistwidget.h index 2de82c6fb..517f7e049 100644 --- a/src/kitemviews/kitemlistwidget.h +++ b/src/kitemviews/kitemlistwidget.h @@ -35,7 +35,7 @@ public: KItemListWidgetInformant(); virtual ~KItemListWidgetInformant(); - virtual void calculateItemSizeHints(QVector<qreal>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const = 0; + virtual void calculateItemSizeHints(QVector<std::pair<qreal, bool>>& logicalHeightHints, qreal& logicalWidthHint, const KItemListView* view) const = 0; virtual qreal preferredRoleColumnWidth(const QByteArray& role, int index, @@ -53,6 +53,8 @@ class DOLPHIN_EXPORT KItemListWidget : public QGraphicsWidget { Q_OBJECT + Q_PROPERTY(int iconSize READ iconSize WRITE setIconSize) + public: KItemListWidget(KItemListWidgetInformant* informant, QGraphicsItem* parent); ~KItemListWidget() override; @@ -80,6 +82,9 @@ public: void setColumnWidth(const QByteArray& role, qreal width); qreal columnWidth(const QByteArray& role) const; + void setLeadingPadding(qreal width); + qreal leadingPadding() const; + void setStyleOption(const KItemListStyleOption& option); const KItemListStyleOption& styleOption() const; @@ -94,6 +99,9 @@ public: void setHovered(bool hovered); bool isHovered() const; + void setExpansionAreaHovered(bool hover); + bool expansionAreaHovered() const; + void setHoverPosition(const QPointF& pos); void setAlternateBackground(bool enable); @@ -123,6 +131,13 @@ public: QByteArray editedRole() const; /** + * Contains the actual icon size used to draw the icon. + * Also used during icon resizing animation. + */ + void setIconSize(int iconSize); + int iconSize() const; + + /** * @return True if \a point is inside KItemListWidget::hoverRect(), * KItemListWidget::textRect(), KItemListWidget::selectionToggleRect() * or KItemListWidget::expansionToggleRect(). @@ -182,6 +197,7 @@ protected: virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>()); virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous); virtual void columnWidthChanged(const QByteArray& role, qreal current, qreal previous); + virtual void leadingPaddingChanged(qreal width); virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous); virtual void currentChanged(bool current); virtual void selectedChanged(bool selected); @@ -189,7 +205,9 @@ protected: virtual void alternateBackgroundChanged(bool enabled); virtual void siblingsInformationChanged(const QBitArray& current, const QBitArray& previous); virtual void editedRoleChanged(const QByteArray& current, const QByteArray& previous); + virtual void iconSizeChanged(int current, int previous); void resizeEvent(QGraphicsSceneResizeEvent* event) override; + void clearHoverCache(); /** * Called when the user starts hovering this item. @@ -225,7 +243,6 @@ private Q_SLOTS: private: void initializeSelectionToggle(); void setHoverOpacity(qreal opacity); - void clearHoverCache(); void drawItemStyleOption(QPainter* painter, QWidget* widget, QStyle::State styleState); private: @@ -236,11 +253,13 @@ private: bool m_selected; bool m_current; bool m_hovered; + bool m_expansionAreaHovered; bool m_alternateBackground; bool m_enabledSelectionToggle; QHash<QByteArray, QVariant> m_data; QList<QByteArray> m_visibleRoles; QHash<QByteArray, qreal> m_columnWidths; + qreal m_leadingPadding; KItemListStyleOption m_styleOption; QBitArray m_siblingsInfo; @@ -254,6 +273,7 @@ private: KItemListSelectionToggle* m_selectionToggle; QByteArray m_editedRole; + int m_iconSize; }; inline const KItemListWidgetInformant* KItemListWidget::informant() const |
