forked from qt-creator/qt-creator
Fix Qt 5.13 deprecation warning about QFontMetrics::width()
Replace by QFontMetrics::horizontalAdvance(), fixing: warning: ‘int QFontMetrics::width(const QString&, int) const’ is deprecated: Use QFontMetrics::horizontalAdvance [-Wdeprecated-declarations] Change-Id: I9991ffefe6e87e872dc35ba291d562e06b28ca64 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -102,19 +102,19 @@ static QVector<QString> splitInTwoLines(const QString &text,
|
||||
nextSplitPos = rx.lastIndexIn(text, nextSplitPos - text.length() - 1);
|
||||
if (nextSplitPos != -1) {
|
||||
int splitCandidate = nextSplitPos + rx.matchedLength();
|
||||
if (fontMetrics.width(text.mid(splitCandidate)) <= availableWidth)
|
||||
if (fontMetrics.horizontalAdvance(text.mid(splitCandidate)) <= availableWidth)
|
||||
splitPos = splitCandidate;
|
||||
else
|
||||
break;
|
||||
}
|
||||
} while (nextSplitPos > 0 && fontMetrics.width(text.left(nextSplitPos)) > availableWidth);
|
||||
} while (nextSplitPos > 0 && fontMetrics.horizontalAdvance(text.left(nextSplitPos)) > availableWidth);
|
||||
// check if we could split at white space at all
|
||||
if (splitPos < 0) {
|
||||
splitLines[0] = fontMetrics.elidedText(text, Qt::ElideRight, int(availableWidth));
|
||||
QString common = Utils::commonPrefix(QStringList({splitLines[0], text}));
|
||||
splitLines[1] = text.mid(common.length());
|
||||
// elide the second line even if it fits, since it is cut off in mid-word
|
||||
while (fontMetrics.width(QChar(0x2026) /*'...'*/ + splitLines[1]) > availableWidth
|
||||
while (fontMetrics.horizontalAdvance(QChar(0x2026) /*'...'*/ + splitLines[1]) > availableWidth
|
||||
&& splitLines[1].length() > 3
|
||||
/*keep at least three original characters (should not happen)*/) {
|
||||
splitLines[1].remove(0, 1);
|
||||
@@ -222,7 +222,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
|
||||
painter.setFont(boldFont);
|
||||
QVector<QString> splitBuildConfiguration(2);
|
||||
const QString buildConfiguration = defaultAction()->property("subtitle").toString();
|
||||
if (boldFm.width(buildConfiguration) <= availableWidth)
|
||||
if (boldFm.horizontalAdvance(buildConfiguration) <= availableWidth)
|
||||
// text fits in one line
|
||||
splitBuildConfiguration[0] = buildConfiguration;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user