diff options
Diffstat (limited to 'plugins/autotest/testresultdelegate.cpp')
-rw-r--r-- | plugins/autotest/testresultdelegate.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/plugins/autotest/testresultdelegate.cpp b/plugins/autotest/testresultdelegate.cpp index 51226270e7..86a12323a7 100644 --- a/plugins/autotest/testresultdelegate.cpp +++ b/plugins/autotest/testresultdelegate.cpp @@ -17,8 +17,10 @@ ** ****************************************************************************/ +#include "autotestplugin.h" #include "testresultdelegate.h" #include "testresultmodel.h" +#include "testsettings.h" #include <QAbstractItemView> #include <QDebug> @@ -28,6 +30,8 @@ namespace Autotest { namespace Internal { +const static int outputLimit = 100000; + TestResultDelegate::TestResultDelegate(QObject *parent) : QStyledItemDelegate(parent) { @@ -124,6 +128,11 @@ void TestResultDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op int leading = fm.leading(); int fontHeight = fm.height(); output.replace(QLatin1Char('\n'), QChar::LineSeparator); + + if (AutotestPlugin::instance()->settings()->limitResultOutput + && output.length() > outputLimit) + output = output.left(outputLimit).append(QLatin1String("...")); + QTextLayout tl(output); tl.setFont(painter->font()); QTextOption txtOption; @@ -143,8 +152,9 @@ void TestResultDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op tl.draw(painter, QPoint(positions.textAreaLeft(), positions.top())); } else { painter->setClipRect(positions.textArea()); + // cut output before generating elided text as this takes quite long for exhaustive output painter->drawText(positions.textAreaLeft(), positions.top() + fm.ascent(), - fm.elidedText(output, Qt::ElideRight, positions.textAreaWidth())); + fm.elidedText(output.left(2000), Qt::ElideRight, positions.textAreaWidth())); } QString file = testResult.fileName(); @@ -222,6 +232,11 @@ QSize TestResultDelegate::sizeHint(const QStyleOptionViewItem &option, const QMo int height = 0; int leading = fm.leading(); + + if (AutotestPlugin::instance()->settings()->limitResultOutput + && output.length() > outputLimit) + output = output.left(outputLimit).append(QLatin1String("...")); + QTextLayout tl(output); tl.setFont(opt.font); QTextOption txtOption; |