Claim proper contents margins for height of RDLabels with rich text

This commit is contained in:
baldurk
2025-09-16 16:29:57 +01:00
parent 511c33c52a
commit b9b8fe4b1b
2 changed files with 9 additions and 5 deletions
+6 -4
View File
@@ -755,7 +755,7 @@ void RichResourceTextPaint(const QWidget *owner, QPainter *painter, QRect rect,
static const int margin = RichResourceTextMargin;
rect.adjust(margin, 0, -margin * 2, 0);
rect.adjust(margin, 0, -margin, 0);
QString name;
@@ -983,18 +983,20 @@ int RichResourceTextHeightHint(const QWidget *owner, const QFont &font, const QV
{
QFontMetrics metrics(font);
static const int margin = RichResourceTextMargin;
if(var.userType() == qMetaTypeId<RichResourceTextPtr>())
{
RichResourceTextPtr linkedText = var.value<RichResourceTextPtr>();
static const int margin = RichResourceTextMargin;
linkedText->cacheDocument(owner);
return linkedText->numLines * (metrics.lineSpacing() + margin * 2);
}
return metrics.height();
const QPixmap &px = Pixmaps::link(owner->devicePixelRatio());
return qMax(metrics.height(), px.height() + margin * 2);
}
bool RichResourceTextMouseEvent(const QWidget *owner, const QVariant &var, QRect rect,
+3 -1
View File
@@ -45,7 +45,9 @@ void RDLabel::modifySizeHint(QSize &sz) const
sz.setWidth(qMax(RichResourceTextWidthHint(this, font(), m_variant) + contentsMargins().left() +
contentsMargins().right() + margin() * 2,
sz.width()));
sz.setHeight(qMax(RichResourceTextHeightHint(this, font(), m_variant), sz.height()));
sz.setHeight(qMax(RichResourceTextHeightHint(this, font(), m_variant) +
contentsMargins().top() + contentsMargins().bottom() + margin() * 2,
sz.height()));
}
}