diff --git a/krusader/Dialogs/krsqueezedtextlabel.cpp b/krusader/Dialogs/krsqueezedtextlabel.cpp --- a/krusader/Dialogs/krsqueezedtextlabel.cpp +++ b/krusader/Dialogs/krsqueezedtextlabel.cpp @@ -55,7 +55,11 @@ QString sqtext = fullText; QFontMetrics fm(fontMetrics()); int labelWidth = size().width(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int textWidth = fm.horizontalAdvance(sqtext); +#else int textWidth = fm.width(sqtext); +#endif if (textWidth > labelWidth) { int avgCharSize = textWidth / sqtext.length(); int numOfExtraChars = (textWidth - labelWidth) / avgCharSize; diff --git a/krusader/DiskUsage/diskusage.cpp b/krusader/DiskUsage/diskusage.cpp --- a/krusader/DiskUsage/diskusage.cpp +++ b/krusader/DiskUsage/diskusage.cpp @@ -146,7 +146,11 @@ searchedDirectory = new KSqueezedTextLabel(loaderBox); searchedDirectory->setFrameShape(QLabel::StyledPanel); searchedDirectory->setFrameShadow(QLabel::Sunken); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + searchedDirectory->setMinimumWidth(width = QFontMetrics(searchedDirectory->font()).horizontalAdvance("W") * 30); +#else searchedDirectory->setMinimumWidth(width = QFontMetrics(searchedDirectory->font()).width("W") * 30); +#endif searchedDirectory->setMaximumWidth(width); synchGrid->addWidget(searchedDirectory, 4, 0, 1, 2); diff --git a/krusader/DiskUsage/diskusagegui.cpp b/krusader/DiskUsage/diskusagegui.cpp --- a/krusader/DiskUsage/diskusagegui.cpp +++ b/krusader/DiskUsage/diskusagegui.cpp @@ -134,7 +134,11 @@ diskUsage->setView(view); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + sizeX = group.readEntry("Window Width", QFontMetrics(font()).horizontalAdvance("W") * 70); +#else sizeX = group.readEntry("Window Width", QFontMetrics(font()).width("W") * 70); +#endif sizeY = group.readEntry("Window Height", QFontMetrics(font()).height() * 25); resize(sizeX, sizeY); diff --git a/krusader/DiskUsage/dulines.cpp b/krusader/DiskUsage/dulines.cpp --- a/krusader/DiskUsage/dulines.cpp +++ b/krusader/DiskUsage/dulines.cpp @@ -88,7 +88,11 @@ QString renderedText = text; int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int pos = 3 * textMargin + option.fontMetrics.horizontalAdvance(display) + iconSize.width(); +#else int pos = 3 * textMargin + option.fontMetrics.width(display) + iconSize.width(); +#endif bool truncd = false; @@ -96,12 +100,22 @@ if (rct.width() > pos) { rct.setX(rct.x() + pos); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + if (fm.horizontalAdvance(renderedText) > rct.width()) { +#else if (fm.width(renderedText) > rct.width()) { +#endif truncd = true; +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int points = fm.horizontalAdvance("..."); + + while (!renderedText.isEmpty() && (fm.horizontalAdvance(renderedText) + points > rct.width())) +#else int points = fm.width("..."); while (!renderedText.isEmpty() && (fm.width(renderedText) + points > rct.width())) +#endif renderedText.truncate(renderedText.length() - 1); renderedText += "..."; @@ -181,7 +195,11 @@ setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); setIndentation(10); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int defaultSize = QFontMetrics(font()).horizontalAdvance("W"); +#else int defaultSize = QFontMetrics(font()).width("W"); +#endif QStringList labels; labels << i18n("Line View"); diff --git a/krusader/DiskUsage/dulistview.cpp b/krusader/DiskUsage/dulistview.cpp --- a/krusader/DiskUsage/dulistview.cpp +++ b/krusader/DiskUsage/dulistview.cpp @@ -65,7 +65,11 @@ if (group.hasKey("D State")) header()->restoreState(group.readEntry("D State", QByteArray())); else { +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int defaultSize = QFontMetrics(font()).horizontalAdvance("W"); +#else int defaultSize = QFontMetrics(font()).width("W"); +#endif setColumnWidth(0, defaultSize * 20); setColumnWidth(1, defaultSize * 5); diff --git a/krusader/DiskUsage/radialMap/labels.cpp b/krusader/DiskUsage/radialMap/labels.cpp --- a/krusader/DiskUsage/radialMap/labels.cpp +++ b/krusader/DiskUsage/radialMap/labels.cpp @@ -292,7 +292,11 @@ qs = fm.elidedText((*it)->segment->file()->name(), Qt::ElideMiddle, width() - x2); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + x3 = width() - fm.horizontalAdvance(qs) +#else x3 = width() - fm.width(qs) +#endif - LABEL_HMARGIN //outer margin - LABEL_TEXT_HMARGIN //margin between strut and text //- ((*it)->lvl - startLevel) * LABEL_HMARGIN //indentation @@ -315,7 +319,11 @@ //**** needs a little tweaking: +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + tx = fm.horizontalAdvance(qs) + LABEL_HMARGIN/* + ((*it)->lvl - startLevel) * LABEL_HMARGIN*/; +#else tx = fm.width(qs) + LABEL_HMARGIN/* + ((*it)->lvl - startLevel) * LABEL_HMARGIN*/; +#endif if (tx > x2) { //text is too long tx = LABEL_HMARGIN + x2 - tx; //some text will be lost from sight x3 = x2; //no text margin (right side of text here) diff --git a/krusader/DiskUsage/radialMap/segmentTip.cpp b/krusader/DiskUsage/radialMap/segmentTip.cpp --- a/krusader/DiskUsage/radialMap/segmentTip.cpp +++ b/krusader/DiskUsage/radialMap/segmentTip.cpp @@ -131,15 +131,24 @@ if (pc > 0) s3 += QString(" (%1%)").arg(loc.toString(pc)); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + maxw = fontMetrics().horizontalAdvance(s3); +#else maxw = fontMetrics().width(s3); +#endif h += fontMetrics().height(); m_text += '\n'; m_text += s3; } uint +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + w = fontMetrics().horizontalAdvance(s1); if (w > maxw) maxw = w; + w = fontMetrics().horizontalAdvance(s2); if (w > maxw) maxw = w; +#else w = fontMetrics().width(s1); if (w > maxw) maxw = w; w = fontMetrics().width(s2); if (w > maxw) maxw = w; +#endif resize(maxw + 2 * MARGIN, h); } diff --git a/krusader/GUI/kcmdline.cpp b/krusader/GUI/kcmdline.cpp --- a/krusader/GUI/kcmdline.cpp +++ b/krusader/GUI/kcmdline.cpp @@ -88,14 +88,22 @@ { QString pathNameLabel = _path; QFontMetrics fm(_pathLabel->fontMetrics()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int textWidth = fm.horizontalAdvance(_path); +#else int textWidth = fm.width(_path); +#endif int maxWidth = (width() + _pathLabel->width()) * 2 / 5; int letters = _path.length() / 2; while (letters && textWidth > maxWidth) { pathNameLabel = _path.left(letters) + "..." + _path.right(letters); letters--; +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + textWidth = fm.horizontalAdvance(pathNameLabel); +#else textWidth = fm.width(pathNameLabel); +#endif } _pathLabel->setText(pathNameLabel + "> "); diff --git a/krusader/GUI/krtreewidget.cpp b/krusader/GUI/krtreewidget.cpp --- a/krusader/GUI/krtreewidget.cpp +++ b/krusader/GUI/krtreewidget.cpp @@ -162,7 +162,11 @@ QString tip = item->text(column); int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int requiredWidth = QFontMetrics(font()).horizontalAdvance(tip) + 2 * textMargin; +#else int requiredWidth = QFontMetrics(font()).width(tip) + 2 * textMargin; +#endif if (column == 0 && indentation()) { int level = 0; diff --git a/krusader/KViewer/lister.cpp b/krusader/KViewer/lister.cpp --- a/krusader/KViewer/lister.cpp +++ b/krusader/KViewer/lister.cpp @@ -127,7 +127,11 @@ // This is quite accurate (although not perfect) way of getting // a single character width along with its surrounding space. +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + const float fontWidth = (fm.horizontalAdvance("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW") - fm.horizontalAdvance("W")) / 99.0; +#else const float fontWidth = (fm.width("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW") - fm.width("W")) / 99.0; +#endif const int sizeY = contentRect.height() / fontHeight; _pageSize = sizeY; @@ -2017,7 +2021,11 @@ const QFontMetrics fmFixed(fixedFont); const int fixedFontHeight = std::max(fmFixed.height(), 1); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + const int fixedFontWidth = std::max(fmFixed.horizontalAdvance("W"), 1); +#else const int fixedFontWidth = std::max(fmFixed.width("W"), 1); +#endif const int effPageSize = drawingRect.height() - normalFontHeight - 1; const int rowsPerPage = std::max(effPageSize / fixedFontHeight, 1); diff --git a/krusader/Locate/locate.cpp b/krusader/Locate/locate.cpp --- a/krusader/Locate/locate.cpp +++ b/krusader/Locate/locate.cpp @@ -178,7 +178,11 @@ resultList->setColumnCount(1); resultList->setHeaderLabel(i18n("Results")); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + resultList->setColumnWidth(0, QFontMetrics(resultList->font()).horizontalAdvance("W") * 60); +#else resultList->setColumnWidth(0, QFontMetrics(resultList->font()).width("W") * 60); +#endif KConfigGroup gl(krConfig, "Look&Feel"); resultList->setFont(gl.readEntry("Filelist Font", _FilelistFont)); diff --git a/krusader/MountMan/kmountmangui.cpp b/krusader/MountMan/kmountmangui.cpp --- a/krusader/MountMan/kmountmangui.cpp +++ b/krusader/MountMan/kmountmangui.cpp @@ -169,8 +169,13 @@ if (grp.hasKey("Last State")) mountList->header()->restoreState(grp.readEntry("Last State", QByteArray())); else { +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int i = QFontMetrics(mountList->font()).horizontalAdvance("W"); + int j = QFontMetrics(mountList->font()).horizontalAdvance("0"); +#else int i = QFontMetrics(mountList->font()).width("W"); int j = QFontMetrics(mountList->font()).width("0"); +#endif j = (i > j ? i : j); mountList->setColumnWidth(0, j*8); diff --git a/krusader/Panel/PanelView/krinterbriefview.cpp b/krusader/Panel/PanelView/krinterbriefview.cpp --- a/krusader/Panel/PanelView/krinterbriefview.cpp +++ b/krusader/Panel/PanelView/krinterbriefview.cpp @@ -545,7 +545,11 @@ { QString text = index.data(Qt::DisplayRole).toString(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int textWidth = QFontMetrics(_viewFont).horizontalAdvance(text); +#else int textWidth = QFontMetrics(_viewFont).width(text); +#endif const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; textWidth += 2 * textMargin; diff --git a/krusader/Panel/PanelView/krinterdetailedview.cpp b/krusader/Panel/PanelView/krinterdetailedview.cpp --- a/krusader/Panel/PanelView/krinterdetailedview.cpp +++ b/krusader/Panel/PanelView/krinterdetailedview.cpp @@ -117,14 +117,24 @@ hideColumn(KrViewProperties::Group); hideColumn(KrViewProperties::Changed); hideColumn(KrViewProperties::Accessed); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + headerView->resizeSection(KrViewProperties::Ext, QFontMetrics(_viewFont).horizontalAdvance("tar.bz2 ")); + headerView->resizeSection(KrViewProperties::KrPermissions, QFontMetrics(_viewFont).horizontalAdvance("rwx ")); + headerView->resizeSection(KrViewProperties::Size, QFontMetrics(_viewFont).horizontalAdvance("9") * 10); +#else headerView->resizeSection(KrViewProperties::Ext, QFontMetrics(_viewFont).width("tar.bz2 ")); headerView->resizeSection(KrViewProperties::KrPermissions, QFontMetrics(_viewFont).width("rwx ")); headerView->resizeSection(KrViewProperties::Size, QFontMetrics(_viewFont).width("9") * 10); +#endif QDateTime tmp(QDate(2099, 12, 29), QTime(23, 59)); QString desc = QLocale().toString(tmp, QLocale::ShortFormat) + " "; +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + headerView->resizeSection(KrViewProperties::Modified, QFontMetrics(_viewFont).horizontalAdvance(desc)); +#else headerView->resizeSection(KrViewProperties::Modified, QFontMetrics(_viewFont).width(desc)); +#endif } else { headerView->restoreState(savedState); @@ -379,7 +389,11 @@ int width = header()->sectionSize(index.column()); QString text = index.data(Qt::DisplayRole).toString(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int textWidth = QFontMetrics(_viewFont).horizontalAdvance(text); +#else int textWidth = QFontMetrics(_viewFont).width(text); +#endif const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1; textWidth += 2 * textMargin; diff --git a/krusader/Panel/krfiletreeview.cpp b/krusader/Panel/krfiletreeview.cpp --- a/krusader/Panel/krfiletreeview.cpp +++ b/krusader/Panel/krfiletreeview.cpp @@ -111,7 +111,11 @@ connect(mSourceModel, &KDirModel::expand, this, &KrFileTreeView::slotExpanded); QFontMetrics fontMetrics(viewport()->font()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + header()->resizeSection(KDirModel::Name, fontMetrics.horizontalAdvance("WWWWWWWWWWWWWWW")); +#else header()->resizeSection(KDirModel::Name, fontMetrics.width("WWWWWWWWWWWWWWW")); +#endif header()->setContextMenuPolicy(Qt::CustomContextMenu); connect(header(), &QHeaderView::customContextMenuRequested, this, diff --git a/krusader/Synchronizer/synchronizergui.cpp b/krusader/Synchronizer/synchronizergui.cpp --- a/krusader/Synchronizer/synchronizergui.cpp +++ b/krusader/Synchronizer/synchronizergui.cpp @@ -362,8 +362,13 @@ if (group.hasKey("State")) syncList->header()->restoreState(group.readEntry("State", QByteArray())); else { +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int i = QFontMetrics(syncList->font()).horizontalAdvance("W"); + int j = QFontMetrics(syncList->font()).horizontalAdvance("0"); +#else int i = QFontMetrics(syncList->font()).width("W"); int j = QFontMetrics(syncList->font()).width("0"); +#endif j = (i > j ? i : j); int typeWidth = j * 7 / 2; diff --git a/krusader/paneltabbar.cpp b/krusader/paneltabbar.cpp --- a/krusader/paneltabbar.cpp +++ b/krusader/paneltabbar.cpp @@ -197,23 +197,40 @@ // set the real max length QFontMetrics fm(fontMetrics()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + _maxTabLength = (dynamic_cast(parent())->width() - (6 * fm.horizontalAdvance("W"))) / fm.horizontalAdvance("W"); +#else _maxTabLength = (dynamic_cast(parent())->width() - (6 * fm.width("W"))) / fm.width("W"); +#endif // each tab gets a fair share of the max tab length const int effectiveTabLength = _maxTabLength / (count() == 0 ? 1 : count()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + const int labelWidth = fm.horizontalAdvance("W") * effectiveTabLength; + const int textWidth = fm.horizontalAdvance(text); +#else const int labelWidth = fm.width("W") * effectiveTabLength; const int textWidth = fm.width(text); +#endif if (textWidth <= labelWidth) return text; // squeeze text - start with the dots only QString squeezedText = "..."; +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + int squeezedWidth = fm.horizontalAdvance(squeezedText); +#else int squeezedWidth = fm.width(squeezedText); +#endif int letters = text.length() * (labelWidth - squeezedWidth) / textWidth / 2; if (labelWidth < squeezedWidth) letters = 1; squeezedText = text.left(letters) + "..." + text.right(letters); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + squeezedWidth = fm.horizontalAdvance(squeezedText); +#else squeezedWidth = fm.width(squeezedText); +#endif if (squeezedWidth < labelWidth) { // we estimated too short @@ -221,7 +238,11 @@ do { letters++; squeezedText = text.left(letters) + "..." + text.right(letters); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + squeezedWidth = fm.horizontalAdvance(squeezedText); +#else squeezedWidth = fm.width(squeezedText); +#endif } while (squeezedWidth < labelWidth); letters--; squeezedText = text.left(letters) + "..." + text.right(letters); @@ -231,7 +252,11 @@ do { letters--; squeezedText = text.left(letters) + "..." + text.right(letters); +#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) + squeezedWidth = fm.horizontalAdvance(squeezedText); +#else squeezedWidth = fm.width(squeezedText); +#endif } while (letters && squeezedWidth > labelWidth); }