aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2023-08-10 17:43:14 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2023-08-22 13:41:49 +0000
commit2f6bec1d485c075075bd11073796f5b32e2fa342 (patch)
tree4e07e49784e54b0c09765260c9859354ca45f571
parent3024c1314e8bfea9e9b3fb603417a03cf60552c0 (diff)
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 <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
-rw-r--r--src/plugins/projectexplorer/taskwindow.cpp6
1 files changed, 5 insertions, 1 deletions
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<const QTreeView *>(options.widget);
+ QTC_ASSERT(view, return {});
+ m_doc.setTextWidth(view->width() * 0.85 - view->indentation());
return QSize(m_doc.idealWidth(), m_doc.size().height());
}