void TestListView::updateItemForResults(QTreeWidgetItem*item) { Q_ASSERT_X(item, Q_FUNC_INFO, "null item"); const QVariant itemData = item->data(0, Qt::UserRole); // TestProgram if ( itemData.canConvert<TestProgram*>() ) { TestProgram* program = itemData.value<TestProgram*>(); if ( !program->hasRunTests() ) item->setBackgroundColor(0, m_noResultColor); else { if ( program->hasFailedTests() ) item->setBackgroundColor(0, m_failColor); else item->setBackgroundColor(0, m_passColor); } } // TestSuite else if ( itemData.canConvert<TestSuite*>() ) { TestSuite* suite = itemData.value<TestSuite*>(); if ( !suite->hasRunTests() ) item->setBackgroundColor(0, m_noResultColor); else { if ( suite->hasFailedTests() ) item->setBackgroundColor(0, m_failColor); else item->setBackgroundColor(0, m_passColor); } } // TestCase else if ( itemData.canConvert<TestCase*>() ) { TestCase* test = itemData.value<TestCase*>(); if ( !test->wasRun() ) item->setBackgroundColor(0, m_noResultColor); else { if ( !test->passed() ) item->setBackgroundColor(0, m_failColor); else item->setBackgroundColor(0, m_passColor); } } }