diff --git a/src/plugins/squish/squishnavigationwidget.cpp b/src/plugins/squish/squishnavigationwidget.cpp index f83ea82ca10..b7390fdb574 100644 --- a/src/plugins/squish/squishnavigationwidget.cpp +++ b/src/plugins/squish/squishnavigationwidget.cpp @@ -251,8 +251,9 @@ void SquishNavigationWidget::onItemActivated(const QModelIndex &idx) break; } - if (!item->filePath().isEmpty()) - Core::EditorManager::openEditor(Utils::FilePath::fromString(item->filePath())); + auto filePath = Utils::FilePath::fromString(item->filePath()); + if (filePath.exists()) + Core::EditorManager::openEditor(filePath); } void SquishNavigationWidget::onExpanded(const QModelIndex &idx) diff --git a/src/plugins/squish/suiteconf.cpp b/src/plugins/squish/suiteconf.cpp index dddb28b1769..94b78900ec1 100644 --- a/src/plugins/squish/suiteconf.cpp +++ b/src/plugins/squish/suiteconf.cpp @@ -260,10 +260,19 @@ QStringList SuiteConf::validTestCases(const QString &baseDirectory) const Utils::FilePath testCaseDir = subDir / testCase; if (testCaseDir.isDir()) { Utils::FilePath testCaseTest = testCaseDir.pathAppended("test" + extension); - if (testCaseTest.isFile()) - validCases.append(testCaseTest.toString()); + validCases.append(testCaseTest.toString()); } } + + // now unlisted matching tests (suite.conf's TEST_CASES is used for some ordering) + const Utils::FilePaths entries = subDir.dirEntries(QDir::Dirs | QDir::NoDotAndDotDot); + for (const Utils::FilePath &entry : entries) { + if (!entry.fileName().startsWith("tst_")) + continue; + const QString testFileStr = entry.pathAppended("test" + extension).toString(); + if (!validCases.contains(testFileStr)) + validCases.append(testFileStr); + } } return validCases; }