diff --git a/src/plugins/autotest/autotest.qrc b/src/plugins/autotest/autotest.qrc index 8cf636d684f..51d19022da5 100644 --- a/src/plugins/autotest/autotest.qrc +++ b/src/plugins/autotest/autotest.qrc @@ -18,5 +18,7 @@ images/visual@2x.png images/run_file.png images/run_file@2x.png + images/suite.png + images/suite@2x.png diff --git a/src/plugins/autotest/images/suite.png b/src/plugins/autotest/images/suite.png new file mode 100644 index 00000000000..91fc50bf328 Binary files /dev/null and b/src/plugins/autotest/images/suite.png differ diff --git a/src/plugins/autotest/images/suite@2x.png b/src/plugins/autotest/images/suite@2x.png new file mode 100644 index 00000000000..958480af604 Binary files /dev/null and b/src/plugins/autotest/images/suite@2x.png differ diff --git a/src/plugins/autotest/qtest/qttesttreeitem.cpp b/src/plugins/autotest/qtest/qttesttreeitem.cpp index 3fe96b6f393..996482ddea8 100644 --- a/src/plugins/autotest/qtest/qttesttreeitem.cpp +++ b/src/plugins/autotest/qtest/qttesttreeitem.cpp @@ -326,7 +326,7 @@ bool QtTestTreeItem::modify(const TestParseResult *result) switch (type()) { case TestCase: - return modifyTestCaseContent(result); + return modifyTestCaseOrSuiteContent(result); case TestFunctionOrSet: case TestDataFunction: case TestSpecialFunction: diff --git a/src/plugins/autotest/quick/quicktesttreeitem.cpp b/src/plugins/autotest/quick/quicktesttreeitem.cpp index 6bc57a0e381..c099bc38769 100644 --- a/src/plugins/autotest/quick/quicktesttreeitem.cpp +++ b/src/plugins/autotest/quick/quicktesttreeitem.cpp @@ -364,7 +364,7 @@ bool QuickTestTreeItem::modify(const TestParseResult *result) switch (type()) { case TestCase: - return result->name.isEmpty() ? false : modifyTestCaseContent(result); + return result->name.isEmpty() ? false : modifyTestCaseOrSuiteContent(result); case TestFunctionOrSet: case TestDataFunction: case TestSpecialFunction: diff --git a/src/plugins/autotest/testtreeitem.cpp b/src/plugins/autotest/testtreeitem.cpp index e1c1debe9c3..5c0952017c4 100644 --- a/src/plugins/autotest/testtreeitem.cpp +++ b/src/plugins/autotest/testtreeitem.cpp @@ -47,6 +47,7 @@ TestTreeItem::TestTreeItem(const QString &name, const QString &filePath, Type ty switch (m_type) { case Root: case GroupNode: + case TestSuite: case TestCase: case TestFunctionOrSet: m_checked = Qt::Checked; @@ -62,6 +63,7 @@ static QIcon testTreeIcon(TestTreeItem::Type type) static QIcon icons[] = { QIcon(), Utils::Icons::OPENFILE.icon(), + QIcon(":/autotest/images/suite.png"), Utils::CodeModelIcon::iconForType(Utils::CodeModelIcon::Class), Utils::CodeModelIcon::iconForType(Utils::CodeModelIcon::SlotPrivate), QIcon(":/autotest/images/data.png") @@ -120,6 +122,7 @@ Qt::ItemFlags TestTreeItem::flags(int /*column*/) const case Root: case GroupNode: return Qt::ItemIsEnabled | Qt::ItemIsAutoTristate | Qt::ItemIsUserCheckable; + case TestSuite: case TestCase: return defaultFlags | Qt::ItemIsAutoTristate | Qt::ItemIsUserCheckable; case TestFunctionOrSet: @@ -129,7 +132,7 @@ Qt::ItemFlags TestTreeItem::flags(int /*column*/) const } } -bool TestTreeItem::modifyTestCaseContent(const TestParseResult *result) +bool TestTreeItem::modifyTestCaseOrSuiteContent(const TestParseResult *result) { bool hasBeenModified = modifyName(result->name); hasBeenModified |= modifyLineAndColumn(result); @@ -170,6 +173,7 @@ Qt::CheckState TestTreeItem::checked() const switch (m_type) { case Root: case GroupNode: + case TestSuite: case TestCase: case TestFunctionOrSet: case TestDataTag: diff --git a/src/plugins/autotest/testtreeitem.h b/src/plugins/autotest/testtreeitem.h index 0a3bf7d72c7..b404686a175 100644 --- a/src/plugins/autotest/testtreeitem.h +++ b/src/plugins/autotest/testtreeitem.h @@ -59,6 +59,7 @@ public: { Root, GroupNode, + TestSuite, TestCase, TestFunctionOrSet, TestDataTag, @@ -78,7 +79,7 @@ public: virtual QVariant data(int column, int role) const override; virtual bool setData(int column, const QVariant &data, int role) override; virtual Qt::ItemFlags flags(int column) const override; - bool modifyTestCaseContent(const TestParseResult *result); + bool modifyTestCaseOrSuiteContent(const TestParseResult *result); bool modifyTestFunctionContent(const TestParseResult *result); bool modifyDataTagContent(const TestParseResult *result); bool modifyLineAndColumn(const TestParseResult *result); diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index 49fc3d3d2f6..d78e83b9a88 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -171,10 +171,10 @@ QList TestTreeModel::testItemsByName(TestTreeItem *root, const Q QList result; root->forFirstLevelChildren([&testName, &result, this](TestTreeItem *node) { - if (node->type() == TestTreeItem::TestCase) { + if (node->type() == TestTreeItem::TestSuite || node->type() == TestTreeItem::TestCase) { if (node->name() == testName) { result << node; - return; // prioritize Tests over TestCases + return; // prioritize test suites and cases over test functions } TestTreeItem *testCase = node->findFirstLevelChild([&testName](TestTreeItem *it) { QTC_ASSERT(it, return false);