From e7657f62126e702834e549364a7ce06147f4010e Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 14 Aug 2020 14:55:57 +0100 Subject: [PATCH] Use QTextBoundaryFinder to truncate resource names --- qrenderdoc/Code/QRDUtils.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Code/QRDUtils.cpp b/qrenderdoc/Code/QRDUtils.cpp index 94d74b2e5..be2b66c82 100644 --- a/qrenderdoc/Code/QRDUtils.cpp +++ b/qrenderdoc/Code/QRDUtils.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include "Code/Resources.h" @@ -162,9 +163,17 @@ rdcstr DoStringise(const PointerVal &el) QString GetTruncatedResourceName(ICaptureContext &ctx, ResourceId id) { - rdcstr name = ctx.GetResourceName(id); + QString name = ctx.GetResourceName(id); if(name.length() > 64) - return name.substr(0, 64) + "..."; + { + QTextBoundaryFinder boundaries(QTextBoundaryFinder::Grapheme, name.data(), name.length()); + boundaries.setPosition(64); + if(!boundaries.isAtBoundary()) + boundaries.toPreviousBoundary(); + int pos = boundaries.position(); + name.resize(pos); + name += lit("..."); + } return name; }