From: Felix Ernst Date: Mon, 4 Apr 2022 10:59:29 +0000 (+0200) Subject: Merge branch 'release/22.04' X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/fc965a725cd0cfdca520b1a08e1f144f06aab7d2?hp=-c Merge branch 'release/22.04' --- fc965a725cd0cfdca520b1a08e1f144f06aab7d2 diff --combined src/kitemviews/kstandarditemlistwidget.cpp index db4e4a90e,b531b8641..247581a4e --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@@ -954,11 -954,8 +954,8 @@@ void KStandardItemListWidget::updateExp if (expandedParentsCount >= 0) { const int widgetIconSize = iconSize(); const qreal widgetHeight = size().height(); - const qreal inc = (widgetHeight - iconSize()) / 2; - const qreal x = - layoutDirection() == Qt::LeftToRight - ? expandedParentsCount * widgetHeight + inc - : size().width() - iconSize() - (expandedParentsCount * widgetHeight + inc); + const qreal inc = (widgetHeight - widgetIconSize) / 2; + const qreal x = expandedParentsCount * widgetHeight + inc; const qreal y = inc; const qreal xPadding = m_highlightEntireRow ? leadingPadding() : 0; m_expansionArea = QRectF(xPadding + x, y, widgetIconSize, widgetIconSize); @@@ -1095,20 -1092,8 +1092,8 @@@ void KStandardItemListWidget::updatePix } else { // Center horizontally and vertically within the icon-area const TextInfo* textInfo = m_textInfo.value("text"); - const auto width = (scaledIconSize + m_scaledPixmapSize.width()) / 2.0; - const auto iPadding = 2.0 * padding; - const auto x = textInfo->pos.x(); - - const QHash values = data(); - const int expandedParentsCount = values.value("expandedParentsCount", 0).toInt(); - const int expansionOffset = - (m_layout == DetailsLayout) ? - size().height() + size().height() * expandedParentsCount : - 0; - - m_pixmapPos.setX(layoutDirection() == Qt::LeftToRight - ? x - iPadding - width - : size().width() - iPadding - width - expansionOffset); + m_pixmapPos.setX(textInfo->pos.x() - 2.0 * padding + - (scaledIconSize + m_scaledPixmapSize.width()) / 2.0); // Derive icon's vertical center from the center of the text frame, including // any necessary adjustment if the font's midline is offset from the frame center @@@ -1211,11 -1196,7 +1196,11 @@@ QString KStandardItemListWidget::elideR QString ret = m_customizedFontMetrics.elidedText(text.chopped(extensionLength), Qt::ElideRight, elidingWidth - extensionWidth); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) ret.append(text.rightRef(extensionLength)); +#else + ret.append(QStringView(text).right(extensionLength)); +#endif return ret; } } @@@ -1380,11 -1361,7 +1365,7 @@@ void KStandardItemListWidget::updateCom textInfo->staticText.setText(elidedText); } - if (layoutDirection() == Qt::LeftToRight) { - textInfo->pos = QPointF(x, y); - } else { - textInfo->pos = QPointF(x - size().height(), y); - } + textInfo->pos = QPointF(x, y); textInfo->staticText.setTextWidth(maxWidth); maximumRequiredTextWidth = qMax(maximumRequiredTextWidth, requiredWidth); @@@ -1392,11 -1369,7 +1373,7 @@@ y += lineSpacing; } - if (layoutDirection() == Qt::LeftToRight) { - m_textRect = QRectF(x - option.padding, 0, maximumRequiredTextWidth + 2 * option.padding, widgetHeight); - } else { - m_textRect = QRectF(x - option.padding - size().height(), 0, maximumRequiredTextWidth + 2 * option.padding, widgetHeight); - } + m_textRect = QRectF(x - option.padding, 0, maximumRequiredTextWidth + 2 * option.padding, widgetHeight); } void KStandardItemListWidget::updateDetailsLayoutTextCache() @@@ -1416,15 -1389,14 +1393,14 @@@ const int fontHeight = m_customizedFontMetrics.height(); const qreal columnWidthInc = columnPadding(option); - - qreal firstColumnOffset = iconSize(); + qreal firstColumnInc = iconSize(); if (m_supportsItemExpanding) { - firstColumnOffset += (m_expansionArea.width() + widgetHeight) / 2; + firstColumnInc += (m_expansionArea.left() + m_expansionArea.right() + widgetHeight) / 2; } else { - firstColumnOffset += option.padding + leadingPadding(); + firstColumnInc += option.padding + leadingPadding(); } - qreal x = firstColumnOffset; + qreal x = firstColumnInc; const qreal y = qMax(qreal(option.padding), (widgetHeight - fontHeight) / 2); for (const QByteArray& role : qAsConst(m_sortedVisibleRoles)) { @@@ -1435,13 -1407,9 +1411,9 @@@ const qreal roleWidth = columnWidth(role); qreal availableTextWidth = roleWidth - columnWidthInc; - const QHash values = data(); - const int expandedParentsCount = values.value("expandedParentsCount", 0).toInt(); - const int expansionOffset = size().height() * expandedParentsCount; - const bool isTextRole = (role == "text"); if (isTextRole) { - availableTextWidth -= firstColumnOffset - leadingPadding(); + availableTextWidth -= firstColumnInc - leadingPadding(); } if (requiredWidth > availableTextWidth) { @@@ -1451,15 -1419,7 +1423,7 @@@ TextInfo* textInfo = m_textInfo.value(role); textInfo->staticText.setText(text); - textInfo->pos = QPointF(x - (layoutDirection() == Qt::LeftToRight ? 0 : firstColumnOffset), y); - if (layoutDirection() == Qt::LeftToRight) { - textInfo->pos.rx() += columnWidthInc/2 + expansionOffset; - } else { - textInfo->pos.rx() -= expansionOffset; - if (textInfo->pos.x() < iconSize()) { - textInfo->pos.rx() = iconSize(); - } - } + textInfo->pos = QPointF(x + columnWidthInc / 2, y); x += roleWidth; if (isTextRole) { @@@ -1471,7 -1431,7 +1435,7 @@@ // 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 -= firstColumnOffset - leadingPadding(); + x -= firstColumnInc - leadingPadding(); } else if (isRoleRightAligned(role)) { textInfo->pos.rx() += roleWidth - requiredWidth - columnWidthInc; } @@@ -1523,22 -1483,13 +1487,13 @@@ void KStandardItemListWidget::drawPixma void KStandardItemListWidget::drawSiblingsInformation(QPainter* painter) { const int siblingSize = size().height(); - const int x = (m_expansionArea.width() - siblingSize) / 2; - - const QHash values = data(); - const int expandedParentsCount = values.value("expandedParentsCount", 0).toInt(); - const int expansionOffset = siblingSize * expandedParentsCount; - - QRect siblingRect( - layoutDirection() == Qt::LeftToRight - ? x + expansionOffset - : size().width() - x - siblingSize - expansionOffset, 0, siblingSize, siblingSize); + const int x = (m_expansionArea.left() + m_expansionArea.right() - siblingSize) / 2; + QRect siblingRect(x, 0, siblingSize, siblingSize); bool isItemSibling = true; const QBitArray siblings = siblingsInformation(); QStyleOption option; - option.direction = layoutDirection(); const auto normalColor = option.palette.color(normalTextColorRole()); const auto highlightColor = option.palette.color(expansionAreaHovered() ? QPalette::Highlight : normalTextColorRole()); for (int i = siblings.count() - 1; i >= 0; --i) { @@@ -1560,11 -1511,7 +1515,7 @@@ style()->drawPrimitive(QStyle::PE_IndicatorBranch, &option, painter); - if (layoutDirection() == Qt::LeftToRight) { - siblingRect.translate(-siblingRect.width(), 0); - } else { - siblingRect.translate(siblingRect.width(), 0); - } + siblingRect.translate(-siblingRect.width(), 0); } }