From 83c98f1ff75022d28c0b3ce5c84cebd5cd52c8d1 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 11 Oct 2019 11:39:23 +0100 Subject: [PATCH] Tweak rich resource text rendering to match non-rich text positioning --- qrenderdoc/Code/QRDUtils.cpp | 19 +++++++++++++------ qrenderdoc/Widgets/Extended/RDTreeView.cpp | 2 ++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/qrenderdoc/Code/QRDUtils.cpp b/qrenderdoc/Code/QRDUtils.cpp index ec2b807ae..50f751cf0 100644 --- a/qrenderdoc/Code/QRDUtils.cpp +++ b/qrenderdoc/Code/QRDUtils.cpp @@ -124,7 +124,8 @@ struct RichResourceText if(v.userType() == qMetaTypeId()) { QString resname = QString(ctx.GetResourceName(v.value())).toHtmlEscaped(); - html += lit("%1") + html += lit("%1" + "") .arg(resname) .arg(highdpi ? lit("@2x") : QString()); text += resname; @@ -135,7 +136,7 @@ struct RichResourceText } else { - html += lit("%1").arg(v.toString().toHtmlEscaped()); + html += lit("%1").arg(v.toString().toHtmlEscaped()); text += v.toString(); // this only generates one block @@ -340,9 +341,11 @@ void RichResourceTextPaint(const QWidget *owner, QPainter *painter, QRect rect, int diff = rect.height() - linkedText->doc.size().height(); if(diff > 0) - painter->translate(0, diff / 2); + painter->translate(1, diff / 2); + else + painter->translate(1, 0); - linkedText->doc.drawContents(painter, QRectF(0, 0, rect.width(), rect.height())); + linkedText->doc.drawContents(painter, QRectF(0, 0, rect.width() - 1, rect.height())); if(mouseOver) { @@ -352,7 +355,9 @@ void RichResourceTextPaint(const QWidget *owner, QPainter *painter, QRect rect, QPoint p = mousePos - rect.topLeft(); if(diff > 0) - p -= QPoint(0, diff / 2); + p -= QPoint(1, diff / 2); + else + p -= QPoint(1, 0); int pos = layout->hitTest(p, Qt::FuzzyHit); @@ -495,7 +500,9 @@ bool RichResourceTextMouseEvent(const QWidget *owner, const QVariant &var, QRect QPoint p = event->pos() - rect.topLeft(); if(diff > 0) - p -= QPoint(0, diff / 2); + p -= QPoint(1, diff / 2); + else + p -= QPoint(1, 0); int pos = layout->hitTest(p, Qt::FuzzyHit); diff --git a/qrenderdoc/Widgets/Extended/RDTreeView.cpp b/qrenderdoc/Widgets/Extended/RDTreeView.cpp index b52241bd1..a532529b1 100644 --- a/qrenderdoc/Widgets/Extended/RDTreeView.cpp +++ b/qrenderdoc/Widgets/Extended/RDTreeView.cpp @@ -49,6 +49,8 @@ QSize RDTreeViewDelegate::sizeHint(const QStyleOptionViewItem &option, const QMo // ensure we have at least the margin on top of font size. If the style applied more, don't add to // it. int minHeight = option.fontMetrics.height(); + if(!m_View->ignoreIconSize()) + minHeight = qMax(option.decorationSize.height(), minHeight); ret.setHeight(qMax(ret.height(), minHeight + m_View->verticalItemMargin())); return ret;