From 2f6bec1d485c075075bd11073796f5b32e2fa342 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 10 Aug 2023 17:43:14 +0200 Subject: ProjectExplorer: Fix clipping problem in issues pane Add the missing call to QTextDocument::setTextWidth() in the delegate's paint() method, add a workaround for invalid QStyleOption::rect in sizeHint(), take item indentation into account. Fixes: QTCREATORBUG-29458 Change-Id: I56d9f942d6c82dfac82d357ca0f16138ed39150d Reviewed-by: David Schulz Reviewed-by: --- src/plugins/projectexplorer/taskwindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/plugins/projectexplorer/taskwindow.cpp') diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 7bad834230..dfc72e667f 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -623,6 +623,7 @@ void TaskDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, painter->save(); m_doc.setHtml(options.text); + m_doc.setTextWidth(options.rect.width()); options.text = ""; options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter); painter->translate(options.rect.left(), options.rect.top()); @@ -650,9 +651,12 @@ QSize TaskDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelInd return QStyledItemDelegate::sizeHint(option, index); QStyleOptionViewItem options = option; + options.initFrom(options.widget); initStyleOption(&options, index); m_doc.setHtml(options.text); - m_doc.setTextWidth(options.rect.width()); + const auto view = qobject_cast(options.widget); + QTC_ASSERT(view, return {}); + m_doc.setTextWidth(view->width() * 0.85 - view->indentation()); return QSize(m_doc.idealWidth(), m_doc.size().height()); } -- cgit v1.2.3