From 0f9d407bb8354d8a80f48a7cb9e34aa079d45931 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 29 May 2022 05:38:19 +0300 Subject: [PATCH] kio: elide metadata values TODO from 6197c258847b9df83584f73d7842f841e5401ded Signed-off-by: Ivailo Monev --- kio/kio/kfilemetainfoitem.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/kio/kio/kfilemetainfoitem.cpp b/kio/kio/kfilemetainfoitem.cpp index 2e2b474c..00a36b5a 100644 --- a/kio/kio/kfilemetainfoitem.cpp +++ b/kio/kio/kfilemetainfoitem.cpp @@ -19,6 +19,20 @@ #include "kfilemetainfoitem.h" #include "kfilemetainfoitem_p.h" #include "kfilemetainfo.h" +#include "kglobalsettings.h" +#include "kwindowsystem.h" + +#include + +static QString elideValue(const QString &value) +{ + static const QSize halfworkareasize = (KWindowSystem::workArea().size() / 2); + if (value.size() > halfworkareasize.width()) { + QFontMetrics fontmetrics(KGlobalSettings::generalFont()); + return fontmetrics.elidedText(value, Qt::ElideRight, halfworkareasize.width()); + } + return value; +} KFileMetaInfoItem::KFileMetaInfoItem() : d(new KFileMetaInfoItemPrivate()) @@ -30,10 +44,10 @@ KFileMetaInfoItem::KFileMetaInfoItem(const KFileMetaInfoItem &other) { } -KFileMetaInfoItem::KFileMetaInfoItem(const QString& key, const QString& value) +KFileMetaInfoItem::KFileMetaInfoItem(const QString &key, const QString &value) : d(new KFileMetaInfoItemPrivate()) { - d->value = value; + d->value = elideValue(value); d->key = key; d->name = KFileMetaInfo::name(d->key); } @@ -42,7 +56,7 @@ KFileMetaInfoItem::~KFileMetaInfoItem() { } -const KFileMetaInfoItem& KFileMetaInfoItem::operator=(const KFileMetaInfoItem& other) +const KFileMetaInfoItem& KFileMetaInfoItem::operator=(const KFileMetaInfoItem &other) { d = other.d; return other;