From 96da2973c32bffbf93320ae70055e0c0783aa880 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 12 Oct 2017 14:56:21 +0200 Subject: [PATCH] AutoTest: Clear cached information before running We cache the last processed model index as well as the used font. In some cases the cached information interfered with new information and ended up in an ugly painting issue where old information partially got repainted instead of using the new. Clear cached information when starting a new run to avoid this. Change-Id: Ibb01e5e3bdd7b542325b5867d37c677d31a14aae Reviewed-by: David Schulz --- src/plugins/autotest/testresultdelegate.cpp | 6 ++++++ src/plugins/autotest/testresultdelegate.h | 1 + src/plugins/autotest/testresultspane.cpp | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/plugins/autotest/testresultdelegate.cpp b/src/plugins/autotest/testresultdelegate.cpp index 9bd01925848..c6401343b17 100644 --- a/src/plugins/autotest/testresultdelegate.cpp +++ b/src/plugins/autotest/testresultdelegate.cpp @@ -181,6 +181,12 @@ void TestResultDelegate::currentChanged(const QModelIndex ¤t, const QModel emit sizeHintChanged(previous); } +void TestResultDelegate::clearCache() +{ + m_lastProcessedIndex = QModelIndex(); + m_lastProcessedFont = QFont(); +} + void TestResultDelegate::recalculateTextLayout(const QModelIndex &index, const QString &output, const QFont &font, int width) const { diff --git a/src/plugins/autotest/testresultdelegate.h b/src/plugins/autotest/testresultdelegate.h index 7d94c76c18d..2161906a606 100644 --- a/src/plugins/autotest/testresultdelegate.h +++ b/src/plugins/autotest/testresultdelegate.h @@ -42,6 +42,7 @@ public: void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override; void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); + void clearCache(); private: void recalculateTextLayout(const QModelIndex &index, const QString &output, diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp index 9f2f8431ea1..6324770ca89 100644 --- a/src/plugins/autotest/testresultspane.cpp +++ b/src/plugins/autotest/testresultspane.cpp @@ -275,6 +275,8 @@ int TestResultsPane::priorityInStatusBar() const void TestResultsPane::clearContents() { m_filterModel->clearTestResults(); + if (auto delegate = qobject_cast(m_treeView->itemDelegate())) + delegate->clearCache(); setIconBadgeNumber(0); navigateStateChanged(); m_summaryWidget->setVisible(false);