forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user