X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fc965a725cd0cfdca520b1a08e1f144f06aab7d2..579eadeb6ddffb03e8043090a330c6dba0717299:/src/kitemviews/kstandarditemlistwidget.cpp diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index 247581a4e..ddc7c2988 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -21,7 +21,6 @@ #include #include #include -#include #include #include @@ -242,6 +241,7 @@ KStandardItemListWidget::KStandardItemListWidget(KItemListWidgetInformant* infor m_customizedFont(), m_customizedFontMetrics(m_customizedFont), m_isExpandable(false), + m_highlightEntireRow(false), m_supportsItemExpanding(false), m_dirtyLayout(true), m_dirtyContent(true), @@ -509,7 +509,7 @@ QRectF KStandardItemListWidget::selectionRect() const QRectF adjustedIconRect = iconRect().adjusted(-padding, -padding, padding, padding); QRectF result = adjustedIconRect | m_textRect; if (m_highlightEntireRow) { - result.setRight(m_columnWidthSum + leadingPadding()); + result.setRight(m_columnWidthSum + sidePadding()); } return result; } @@ -727,7 +727,7 @@ void KStandardItemListWidget::columnWidthChanged(const QByteArray& role, m_dirtyLayout = true; } -void KStandardItemListWidget::leadingPaddingChanged(qreal padding) { +void KStandardItemListWidget::sidePaddingChanged(qreal padding) { Q_UNUSED(padding) m_dirtyLayout = true; } @@ -957,7 +957,7 @@ void KStandardItemListWidget::updateExpansionArea() const qreal inc = (widgetHeight - widgetIconSize) / 2; const qreal x = expandedParentsCount * widgetHeight + inc; const qreal y = inc; - const qreal xPadding = m_highlightEntireRow ? leadingPadding() : 0; + const qreal xPadding = m_highlightEntireRow ? sidePadding() : 0; m_expansionArea = QRectF(xPadding + x, y, widgetIconSize, widgetIconSize); return; } @@ -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()) { @@ -1397,7 +1406,7 @@ void KStandardItemListWidget::updateDetailsLayoutTextCache() if (m_supportsItemExpanding) { firstColumnInc += (m_expansionArea.left() + m_expansionArea.right() + widgetHeight) / 2; } else { - firstColumnInc += option.padding + leadingPadding(); + firstColumnInc += option.padding + sidePadding(); } qreal x = firstColumnInc; @@ -1413,7 +1422,7 @@ void KStandardItemListWidget::updateDetailsLayoutTextCache() const bool isTextRole = (role == "text"); if (isTextRole) { - availableTextWidth -= firstColumnInc - leadingPadding(); + availableTextWidth -= firstColumnInc - sidePadding(); } if (requiredWidth > availableTextWidth) { @@ -1435,7 +1444,7 @@ void KStandardItemListWidget::updateDetailsLayoutTextCache() // The column after the name should always be aligned on the same x-position independent // from the expansion-level shown in the name column - x -= firstColumnInc - leadingPadding(); + x -= firstColumnInc - sidePadding(); } else if (isRoleRightAligned(role)) { textInfo->pos.rx() += roleWidth - requiredWidth - columnWidthInc; } @@ -1447,7 +1456,7 @@ void KStandardItemListWidget::updateAdditionalInfoTextColor() QColor c1; if (m_customTextColor.isValid()) { c1 = m_customTextColor; - } else if (isSelected()) { + } else if (isSelected() && (m_layout != DetailsLayout || m_highlightEntireRow)) { // The detail text colour needs to match the main text (HighlightedText) for the same level // of readability. We short circuit early here to avoid interpolating with another colour. m_additionalInfoTextColor = styleOption().palette.color(QPalette::HighlightedText);