void KItemListHeaderWidget::mousePressEvent(QGraphicsSceneMouseEvent* event) { if (event->button() & Qt::LeftButton) { updatePressedRoleIndex(event->pos()); m_pressedMousePos = event->pos(); m_roleOperation = isAboveRoleGrip(m_pressedMousePos, m_pressedRoleIndex) ? ResizeRoleOperation : NoRoleOperation; event->accept(); } else { event->ignore(); } }
void KItemListHeaderWidget::hoverMoveEvent(QGraphicsSceneHoverEvent* event) { QGraphicsWidget::hoverMoveEvent(event); const QPointF& pos = event->pos(); updateHoveredRoleIndex(pos); if (m_hoveredRoleIndex >= 0 && isAboveRoleGrip(pos, m_hoveredRoleIndex)) { setCursor(Qt::SplitHCursor); } else { unsetCursor(); } }
void KItemListHeaderWidget::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) { QGraphicsItem::mouseDoubleClickEvent(event); const int roleIndex = roleIndexAt(event->pos()); if (roleIndex >= 0 && isAboveRoleGrip(event->pos(), roleIndex)) { const QByteArray role = m_columns.at(roleIndex); qreal previousWidth = columnWidth(role); setColumnWidth(role, preferredColumnWidth(role)); qreal currentWidth = columnWidth(role); emit columnWidthChanged(role, currentWidth, previousWidth); } }