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();
|
painter->save();
|
||||||
m_doc.setHtml(options.text);
|
m_doc.setHtml(options.text);
|
||||||
|
m_doc.setTextWidth(options.rect.width());
|
||||||
options.text = "";
|
options.text = "";
|
||||||
options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter);
|
options.widget->style()->drawControl(QStyle::CE_ItemViewItem, &options, painter);
|
||||||
painter->translate(options.rect.left(), options.rect.top());
|
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);
|
return QStyledItemDelegate::sizeHint(option, index);
|
||||||
|
|
||||||
QStyleOptionViewItem options = option;
|
QStyleOptionViewItem options = option;
|
||||||
|
options.initFrom(options.widget);
|
||||||
initStyleOption(&options, index);
|
initStyleOption(&options, index);
|
||||||
m_doc.setHtml(options.text);
|
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());
|
return QSize(m_doc.idealWidth(), m_doc.size().height());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user