AutoTest: Disable Run buttons if projects' configuration changes

Change-Id: I62cb190fa54a9069cd1cd5a09664689485acc4cc
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
Christian Stenger
2016-03-10 13:10:35 +01:00
parent bf6f1232f7
commit 659774c31d
2 changed files with 13 additions and 6 deletions

View File

@@ -39,6 +39,7 @@
#include <coreplugin/icontext.h> #include <coreplugin/icontext.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorericons.h> #include <projectexplorer/projectexplorericons.h>
#include <texteditor/texteditor.h> #include <texteditor/texteditor.h>
@@ -137,6 +138,9 @@ TestResultsPane::TestResultsPane(QObject *parent) :
this, &TestResultsPane::onTestRunFinished); this, &TestResultsPane::onTestRunFinished);
connect(TestRunner::instance(), &TestRunner::testResultReady, connect(TestRunner::instance(), &TestRunner::testResultReady,
this, &TestResultsPane::addTestResult); this, &TestResultsPane::addTestResult);
connect(ProjectExplorer::ProjectExplorerPlugin::instance(),
&ProjectExplorer::ProjectExplorerPlugin::updateRunActions,
this, &TestResultsPane::updateRunActions);
} }
void TestResultsPane::createToolButtons() void TestResultsPane::createToolButtons()
@@ -255,13 +259,13 @@ void TestResultsPane::visibilityChanged(bool visible)
return; return;
if (visible) { if (visible) {
connect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged, connect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged,
this, &TestResultsPane::onTestTreeModelChanged); this, &TestResultsPane::updateRunActions);
// make sure run/run all are in correct state // make sure run/run all are in correct state
onTestTreeModelChanged(); updateRunActions();
TestTreeModel::instance()->enableParsing(); TestTreeModel::instance()->enableParsing();
} else { } else {
disconnect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged, disconnect(TestTreeModel::instance(), &TestTreeModel::testTreeModelChanged,
this, &TestResultsPane::onTestTreeModelChanged); this, &TestResultsPane::updateRunActions);
TestTreeModel::instance()->disableParsing(); TestTreeModel::instance()->disableParsing();
} }
m_wasVisibleBefore = visible; m_wasVisibleBefore = visible;
@@ -507,9 +511,12 @@ void TestResultsPane::onScrollBarRangeChanged(int, int max)
m_treeView->verticalScrollBar()->setValue(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_runAll->setEnabled(enable);
m_runSelected->setEnabled(enable); m_runSelected->setEnabled(enable);
} }

View File

@@ -108,7 +108,7 @@ private:
void onTestRunStarted(); void onTestRunStarted();
void onTestRunFinished(); void onTestRunFinished();
void onScrollBarRangeChanged(int, int max); void onScrollBarRangeChanged(int, int max);
void onTestTreeModelChanged(); void updateRunActions();
void onCustomContextMenuRequested(const QPoint &pos); void onCustomContextMenuRequested(const QPoint &pos);
void onCopyItemTriggered(const QModelIndex &idx); void onCopyItemTriggered(const QModelIndex &idx);
void onCopyWholeTriggered(); void onCopyWholeTriggered();