┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kitemlistview.cpp4
-rw-r--r--src/kitemviews/kitemlistview.h3
-rw-r--r--src/kitemviews/private/kitemlistheaderwidget.cpp8
-rw-r--r--src/kitemviews/private/kitemlistheaderwidget.h6
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 &current, 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