From 659774c31d97a5eef33a6c500a4461cc0d0e8bbd Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 10 Mar 2016 13:10:35 +0100 Subject: [PATCH] AutoTest: Disable Run buttons if projects' configuration changes Change-Id: I62cb190fa54a9069cd1cd5a09664689485acc4cc Reviewed-by: David Schulz --- src/plugins/autotest/testresultspane.cpp | 17 ++++++++++++----- src/plugins/autotest/testresultspane.h | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp index be6df5f6468..971df223cae 100644 --- a/src/plugins/autotest/testresultspane.cpp +++ b/src/plugins/autotest/testresultspane.cpp @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -137,6 +138,9 @@ TestResultsPane::TestResultsPane(QObject *parent) : this, &TestResultsPane::onTestRunFinished); connect(TestRunner::instance(), &TestRunner::testResultReady, this, &TestResultsPane::addTestResult); + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), + &ProjectExplorer::ProjectExplorerPlugin::updateRunActions, + this, &TestResultsPane::updateRunActions); } void TestResultsPane::createToolButtons() @@ -255,13 +259,13 @@ void TestResultsPane::visibilityChanged(bool visible) return; if (visible) { connect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged, - this, &TestResultsPane::onTestTreeModelChanged); + this, &TestResultsPane::updateRunActions); // make sure run/run all are in correct state - onTestTreeModelChanged(); + updateRunActions(); TestTreeModel::instance()->enableParsing(); } else { disconnect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged, - this, &TestResultsPane::onTestTreeModelChanged); + this, &TestResultsPane::updateRunActions); TestTreeModel::instance()->disableParsing(); } m_wasVisibleBefore = visible; @@ -507,9 +511,12 @@ void TestResultsPane::onScrollBarRangeChanged(int, int max) m_treeView->verticalScrollBar()->setValue(max); } -void TestResultsPane::onTestTreeModelChanged() +void TestResultsPane::updateRunActions() { - const bool enable = TestTreeModel::instance()->hasTests(); + QString whyNot; + const bool enable = TestTreeModel::instance()->hasTests() + && ProjectExplorer::ProjectExplorerPlugin::canRunStartupProject( + ProjectExplorer::Constants::NORMAL_RUN_MODE, &whyNot); m_runAll->setEnabled(enable); m_runSelected->setEnabled(enable); } diff --git a/src/plugins/autotest/testresultspane.h b/src/plugins/autotest/testresultspane.h index 47291850b7c..86b9bbd4a92 100644 --- a/src/plugins/autotest/testresultspane.h +++ b/src/plugins/autotest/testresultspane.h @@ -108,7 +108,7 @@ private: void onTestRunStarted(); void onTestRunFinished(); void onScrollBarRangeChanged(int, int max); - void onTestTreeModelChanged(); + void updateRunActions(); void onCustomContextMenuRequested(const QPoint &pos); void onCopyItemTriggered(const QModelIndex &idx); void onCopyWholeTriggered();