diff options
Diffstat (limited to 'plugins/autotest/testresultspane.cpp')
-rw-r--r-- | plugins/autotest/testresultspane.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/autotest/testresultspane.cpp b/plugins/autotest/testresultspane.cpp index bb641d264a..eee9fc9340 100644 --- a/plugins/autotest/testresultspane.cpp +++ b/plugins/autotest/testresultspane.cpp @@ -86,6 +86,7 @@ void TestResultsPane::createToolButtons() m_filterButton->setPopupMode(QToolButton::InstantPopup); m_filterMenu = new QMenu(m_filterButton); initializeFilterMenu(); + connect(m_filterMenu, &QMenu::aboutToShow, this, &TestResultsPane::updateFilterMenu); connect(m_filterMenu, &QMenu::triggered, this, &TestResultsPane::filterMenuTriggered); m_filterButton->setMenu(m_filterMenu); } @@ -241,7 +242,6 @@ void TestResultsPane::onRunSelectedTriggered() void TestResultsPane::initializeFilterMenu() { QMap<ResultType, QString> textAndType; - textAndType.clear(); textAndType.insert(ResultType::PASS, QLatin1String("Pass")); textAndType.insert(ResultType::FAIL, QLatin1String("Fail")); textAndType.insert(ResultType::EXPECTED_FAIL, QLatin1String("Expected Fail")); @@ -260,6 +260,14 @@ void TestResultsPane::initializeFilterMenu() } } +void TestResultsPane::updateFilterMenu() +{ + foreach (QAction *action, m_filterMenu->actions()) { + action->setEnabled(m_model->hasResultType( + static_cast<ResultType>(action->data().value<int>()))); + } +} + void TestResultsPane::filterMenuTriggered(QAction *action) { m_filterModel->toggleTestResultType(static_cast<ResultType>(action->data().value<int>())); |