]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Extend selection rectangle to left edge
authorTravis Burrows <tjburrows90@gmail.com>
Thu, 26 May 2022 12:38:22 +0000 (12:38 +0000)
committerFelix Ernst <fe.a.ernst@gmail.com>
Thu, 26 May 2022 12:38:22 +0000 (12:38 +0000)
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

src/kitemviews/kstandarditemlistwidget.cpp

index 7adcc8539669a18a26ec2ffc786d4710169d7260..d0eef5ef47dd4e97c1d67c6ec601c75b63c3b801 100644 (file)
@@ -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()) {
 
     // Prepare the pixmap that is used when the item gets hovered
     if (isHovered()) {