From d3839617193e92463806580699caa595c892b8a6 Mon Sep 17 00:00:00 2001 From: Tom Lin Date: Sun, 16 Jan 2022 14:01:32 +0000 Subject: Full row highlight implementation This commit implements full-row selection and hover highlights for the details view mode. This commit also contains fixes for 444680, 444753, both uncovered during this change. BUG: 181438 BUG: 444680 BUG: 444753 FIXED-IN: 22.04 --- src/kitemviews/kitemlistwidget.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/kitemviews/kitemlistwidget.h') diff --git a/src/kitemviews/kitemlistwidget.h b/src/kitemviews/kitemlistwidget.h index c56c41ab3..0b82266c4 100644 --- a/src/kitemviews/kitemlistwidget.h +++ b/src/kitemviews/kitemlistwidget.h @@ -80,6 +80,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 +97,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); @@ -182,6 +188,7 @@ protected: virtual void dataChanged(const QHash& current, const QSet& roles = QSet()); virtual void visibleRolesChanged(const QList& current, const QList& 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); @@ -190,6 +197,7 @@ protected: virtual void siblingsInformationChanged(const QBitArray& current, const QBitArray& previous); virtual void editedRoleChanged(const QByteArray& current, const QByteArray& previous); void resizeEvent(QGraphicsSceneResizeEvent* event) override; + void clearHoverCache(); /** * Called when the user starts hovering this item. @@ -225,7 +233,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 +243,13 @@ private: bool m_selected; bool m_current; bool m_hovered; + bool m_expansionAreaHovered; bool m_alternateBackground; bool m_enabledSelectionToggle; QHash m_data; QList m_visibleRoles; QHash m_columnWidths; + qreal m_leadingPadding; KItemListStyleOption m_styleOption; QBitArray m_siblingsInfo; -- cgit v1.3.1