From d7dc7159b23d6b91a6320263f4460c792603d8e4 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 15 Jun 2016 13:28:50 +0200 Subject: [PATCH] AutoTest: Filter out test case summary as well If results are filtered and the filtering results in omitting all entries of a test case filter out the test case as well. Change-Id: Icd3b18566ed45a68b2ee630a2f13be80257f6b26 Reviewed-by: David Schulz Reviewed-by: Christian Stenger --- src/plugins/autotest/testresultmodel.cpp | 24 +++++++++++++++++++++++- src/plugins/autotest/testresultmodel.h | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/plugins/autotest/testresultmodel.cpp b/src/plugins/autotest/testresultmodel.cpp index 8159736f387..12299e0b64a 100644 --- a/src/plugins/autotest/testresultmodel.cpp +++ b/src/plugins/autotest/testresultmodel.cpp @@ -336,7 +336,29 @@ bool TestResultFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &s QModelIndex index = m_sourceModel->index(sourceRow, 0, sourceParent); if (!index.isValid()) return false; - return m_enabled.contains(m_sourceModel->testResult(index)->result()); + Result::Type resultType = m_sourceModel->testResult(index)->result(); + switch (resultType) { + case Result::MessageTestCaseSuccess: + return m_enabled.contains(Result::Pass); + case Result::MessageTestCaseFail: + case Result::MessageTestCaseWarn: + return acceptTestCaseResult(index); + default: + return m_enabled.contains(resultType); + } +} + +bool TestResultFilterModel::acceptTestCaseResult(const QModelIndex &index) const +{ + Utils::TreeItem *item = m_sourceModel->itemForIndex(index); + QTC_ASSERT(item, return false); + + for (const Utils::TreeItem *child : item->children()) { + const TestResultItem *resultItem = static_cast(child); + if (m_enabled.contains(resultItem->testResult()->result())) + return true; + } + return false; } } // namespace Internal diff --git a/src/plugins/autotest/testresultmodel.h b/src/plugins/autotest/testresultmodel.h index 431db56dc67..ee933bd0b6e 100644 --- a/src/plugins/autotest/testresultmodel.h +++ b/src/plugins/autotest/testresultmodel.h @@ -94,6 +94,7 @@ protected: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; private: + bool acceptTestCaseResult(const QModelIndex &index) const; TestResultModel *m_sourceModel; QSet m_enabled; };