From: Travis Burrows Date: Thu, 26 May 2022 12:38:22 +0000 (+0000) Subject: Extend selection rectangle to left edge X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/58622f431b0d7d347333a4bc7b2f57fe17878f9d?ds=inline Extend selection rectangle to left edge This commit changes it so the sizes of selection rectangles and hover highlights in compact and details view mode is identical for all items. Before this commit, selection rectangles in lists would have varying indentation of the left edge of the selection rectangle depending on the preview image's width-to-height ratio. This would cause a sort of "ragged edge" in both compact and details list view when multiple items were selected. This commit doesn't change anything about icon view mode. BUG: 453046 --- diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 7adcc8539..d0eef5ef4 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -1104,7 +1104,16 @@ void KStandardItemListWidget::updatePixmapCache() } - m_iconRect = QRectF(m_pixmapPos, QSizeF(m_scaledPixmapSize)); + if (m_layout == IconsLayout) { + m_iconRect = QRectF(m_pixmapPos, QSizeF(m_scaledPixmapSize)); + } else { + const qreal widthOffset = widgetIconSize - m_scaledPixmapSize.width(); + const qreal heightOffset = widgetIconSize - m_scaledPixmapSize.height(); + const QPointF squareIconPos(m_pixmapPos.x() - 0.5 * widthOffset, + m_pixmapPos.y() - 0.5 * heightOffset); + const QSizeF squareIconSize(widgetIconSize, widgetIconSize); + m_iconRect = QRectF(squareIconPos, squareIconSize); + } // Prepare the pixmap that is used when the item gets hovered if (isHovered()) {