From: Bojidar Marinov Date: Mon, 23 Jun 2025 12:26:49 +0000 (+0300) Subject: Fix file names overflowing after text eliding X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/aba0de7301b060c40d543adbaa8d53cf69a9d7ee?hp=f9d94fcb36b2cd1c39a5b0371986d7cbbd5e6b47 Fix file names overflowing after text eliding When QFontMetrics::boundingRect().width was replaced with QFontMetrics::horizontalAdvance() in 76a46fd9094b17eb99e8a42cca8562fdc0b3814c, an extra line (formerly introduced by a203c271161ce953354b9e0722492605a4d17415) was changed as well. Unfortunately, boundingRect().width is the correct function to use for calculating the size of the last line, while horizontalAdvance would be correct if we were laying it next to the previous line instead of below the previous line. BUG: 432530 --- diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index d078b0657..2538cddcf 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -1334,7 +1334,7 @@ void KStandardItemListWidget::updateIconsLayoutTextCache() const QString elidedText = nameText.left(line.textStart()) + lastTextLine; nameTextInfo->staticText.setText(elidedText); - lastLineWidth = m_customizedFontMetrics.horizontalAdvance(lastTextLine); + lastLineWidth = m_customizedFontMetrics.boundingRect(lastTextLine).width(); // We do the text eliding in a loop with decreasing width (1 px / iteration) // to avoid problems related to different width calculation code paths