diff options
| author | Méven Car <[email protected]> | 2023-02-14 18:19:15 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2023-02-18 16:01:44 +0000 |
| commit | da7ccef4886df64913b8a6a4bc14cfdb06067325 (patch) | |
| tree | 0e357a730e65e31669032ec684745a646b759126 /src/kitemviews | |
| parent | 090db6e8f4d972c6d650d04b49a1dd8ab676c442 (diff) | |
DolphinView: Allow to have tootips on columns headers
Add events columnHovered/columnUnHovered to KItemListview and
KItemListHeaderWidget.
Diffstat (limited to 'src/kitemviews')
| -rw-r--r-- | src/kitemviews/kitemlistview.cpp | 4 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistview.h | 3 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistheaderwidget.cpp | 8 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistheaderwidget.h | 6 |
4 files changed, 20 insertions, 1 deletions
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index d9455ce9e..7f1347920 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -601,6 +601,8 @@ void KItemListView::setHeaderVisible(bool visible) connect(m_headerWidget, &KItemListHeaderWidget::columnMoved, this, &KItemListView::slotHeaderColumnMoved); connect(m_headerWidget, &KItemListHeaderWidget::sortOrderChanged, this, &KItemListView::sortOrderChanged); connect(m_headerWidget, &KItemListHeaderWidget::sortRoleChanged, this, &KItemListView::sortRoleChanged); + connect(m_headerWidget, &KItemListHeaderWidget::columnHovered, this, &KItemListView::columnHovered); + connect(m_headerWidget, &KItemListHeaderWidget::columnUnHovered, this, &KItemListView::columnUnHovered); m_layouter->setHeaderHeight(headerSize.height()); m_headerWidget->setVisible(true); @@ -610,6 +612,8 @@ void KItemListView::setHeaderVisible(bool visible) disconnect(m_headerWidget, &KItemListHeaderWidget::columnMoved, this, &KItemListView::slotHeaderColumnMoved); disconnect(m_headerWidget, &KItemListHeaderWidget::sortOrderChanged, this, &KItemListView::sortOrderChanged); disconnect(m_headerWidget, &KItemListHeaderWidget::sortRoleChanged, this, &KItemListView::sortRoleChanged); + disconnect(m_headerWidget, &KItemListHeaderWidget::columnHovered, this, &KItemListView::columnHovered); + disconnect(m_headerWidget, &KItemListHeaderWidget::columnUnHovered, this, &KItemListView::columnUnHovered); m_layouter->setHeaderHeight(0); m_headerWidget->setVisible(false); diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h index e9b4a62dd..6c3d3648d 100644 --- a/src/kitemviews/kitemlistview.h +++ b/src/kitemviews/kitemlistview.h @@ -327,6 +327,9 @@ Q_SIGNALS: */ void scrollingStopped(); + void columnHovered(int roleIndex); + void columnUnHovered(int roleIndex); + protected: QVariant itemChange(GraphicsItemChange change, const QVariant &value) override; void setItemSize(const QSizeF &size); diff --git a/src/kitemviews/private/kitemlistheaderwidget.cpp b/src/kitemviews/private/kitemlistheaderwidget.cpp index ac25d189c..d23b7def9 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.cpp +++ b/src/kitemviews/private/kitemlistheaderwidget.cpp @@ -372,6 +372,7 @@ void KItemListHeaderWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { QGraphicsWidget::hoverLeaveEvent(event); if (m_hoveredRoleIndex != -1) { + Q_EMIT columnUnHovered(m_hoveredRoleIndex); m_hoveredRoleIndex = -1; update(); } @@ -488,8 +489,15 @@ void KItemListHeaderWidget::updatePressedRoleIndex(const QPointF &pos) void KItemListHeaderWidget::updateHoveredRoleIndex(const QPointF &pos) { const int hoverIndex = roleIndexAt(pos); + if (m_hoveredRoleIndex != hoverIndex) { + if (m_hoveredRoleIndex != -1) { + Q_EMIT columnUnHovered(m_hoveredRoleIndex); + } m_hoveredRoleIndex = hoverIndex; + if (m_hoveredRoleIndex != -1) { + Q_EMIT columnHovered(m_hoveredRoleIndex); + } update(); } } diff --git a/src/kitemviews/private/kitemlistheaderwidget.h b/src/kitemviews/private/kitemlistheaderwidget.h index 58c27b43a..05a5924e1 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.h +++ b/src/kitemviews/private/kitemlistheaderwidget.h @@ -93,6 +93,9 @@ Q_SIGNALS: */ void sortRoleChanged(const QByteArray ¤t, const QByteArray &previous); + void columnUnHovered(int roleIndex); + void columnHovered(int roleIndex); + protected: void mousePressEvent(QGraphicsSceneMouseEvent *event) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; @@ -158,7 +161,8 @@ private: int x; int xDec; int index; - } m_movingRole; + }; + MovingRole m_movingRole; }; #endif |
