X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/a27443d904bc220615f2c4e8df74187b0c806d8a..94e08f04f4524fc4993b921a1ae1dd8cc6f8725c:/src/kitemviews/kitemlistview.cpp?ds=sidebyside diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index c56785c36..75d85be35 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -398,6 +398,12 @@ void KItemListView::setGeometry(const QRectF &rect) doLayout(NoAnimation); } +qreal KItemListView::scrollSingleStep() const +{ + const QFontMetrics metrics(font()); + return metrics.height(); +} + qreal KItemListView::verticalPageStep() const { qreal headerHeight = 0; @@ -419,7 +425,7 @@ std::optional KItemListView::itemAt(const QPointF &pos) const const KItemListWidget *widget = it.value(); const QPointF mappedPos = widget->mapFromItem(this, pos); - if (widget->contains(mappedPos) || widget->selectionRect().contains(mappedPos)) { + if (widget->contains(mappedPos)) { return it.key(); } } @@ -536,7 +542,7 @@ QRectF KItemListView::itemContextRect(int index) const const KItemListWidget *widget = m_visibleItems.value(index); if (widget) { - contextRect = widget->iconRect() | widget->textRect(); + contextRect = widget->selectionRectCore(); contextRect.translate(itemRect(index).topLeft()); } @@ -744,7 +750,11 @@ QPixmap KItemListView::createDragPixmap(const KItemSet &indexes) const void KItemListView::editRole(int index, const QByteArray &role) { KStandardItemListWidget *widget = qobject_cast(m_visibleItems.value(index)); - if (!widget || m_editingRole) { + if (!widget) { + return; + } + if (m_editingRole || m_animation->isStarted(widget)) { + Q_EMIT widget->roleEditingCanceled(index, role, QVariant()); return; } @@ -1910,6 +1920,9 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha if (animate) { if (m_animation->isStarted(widget, KItemListViewAnimation::MovingAnimation)) { + if (m_editingRole) { + Q_EMIT widget->roleEditingCanceled(widget->index(), QByteArray(), QVariant()); + } m_animation->start(widget, KItemListViewAnimation::MovingAnimation, newPos); applyNewPos = false; }