AutoTest: Take indentation of sub items into account

Otherwise we might end up losing final lines depending on
the output and the need of wrapping the text.

Fixes: QTCREATORBUG-26122
Change-Id: I724bacfa8be37a056f56a67fce4b724d367fda4a
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Christian Stenger
2021-08-17 16:55:26 +02:00
parent 668a4b59bf
commit 017416e327

View File

@@ -147,8 +147,11 @@ QSize TestResultDelegate::sizeHint(const QStyleOptionViewItem &option, const QMo
int fontHeight = fm.height(); int fontHeight = fm.height();
TestResultFilterModel *resultFilterModel = static_cast<TestResultFilterModel *>(view->model()); TestResultFilterModel *resultFilterModel = static_cast<TestResultFilterModel *>(view->model());
LayoutPositions positions(opt, resultFilterModel); LayoutPositions positions(opt, resultFilterModel);
const int depth = resultFilterModel->itemForIndex(index)->level() + 1;
const int indentation = depth * view->style()->pixelMetric(QStyle::PM_TreeViewIndentation, &opt);
QSize s; QSize s;
s.setWidth(opt.rect.width()); s.setWidth(opt.rect.width() - indentation);
if (selected) { if (selected) {
const TestResult *testResult = resultFilterModel->testResult(index); const TestResult *testResult = resultFilterModel->testResult(index);
@@ -159,7 +162,7 @@ QSize TestResultDelegate::sizeHint(const QStyleOptionViewItem &option, const QMo
if (AutotestPlugin::settings()->limitResultOutput && output.length() > outputLimit) if (AutotestPlugin::settings()->limitResultOutput && output.length() > outputLimit)
output = output.left(outputLimit).append("..."); output = output.left(outputLimit).append("...");
recalculateTextLayout(index, output, opt.font, positions.textAreaWidth()); recalculateTextLayout(index, output, opt.font, positions.textAreaWidth() - indentation);
s.setHeight(m_lastCalculatedHeight + 3); s.setHeight(m_lastCalculatedHeight + 3);
} else { } else {