diff options
author | Christian Stenger <christian.stenger@digia.com> | 2014-11-06 10:48:17 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@theqtcompany.com> | 2014-12-04 13:52:15 +0100 |
commit | 1258c58a7f74f8113edc4781baacaa68f7fe9d44 (patch) | |
tree | 8f86736cdd59721515dfe13fac46c34613d933ab | |
parent | a2a4fe564a170dd65f509e63e77fdf65a78a5c6b (diff) | |
download | qt-creator-1258c58a7f74f8113edc4781baacaa68f7fe9d44.tar.gz |
Disable context menu on test tree when executing test
-rw-r--r-- | plugins/autotest/testrunner.cpp | 12 | ||||
-rw-r--r-- | plugins/autotest/testrunner.h | 3 | ||||
-rw-r--r-- | plugins/autotest/testtreeview.cpp | 10 |
3 files changed, 19 insertions, 6 deletions
diff --git a/plugins/autotest/testrunner.cpp b/plugins/autotest/testrunner.cpp index fb4028edf0..e4b16ccbc4 100644 --- a/plugins/autotest/testrunner.cpp +++ b/plugins/autotest/testrunner.cpp @@ -52,7 +52,8 @@ TestRunner *TestRunner::instance() TestRunner::TestRunner(QObject *parent) : QObject(parent), - m_building(false) + m_building(false), + m_executingTests(false) { } @@ -375,12 +376,13 @@ void TestRunner::runTests() } } + m_executingTests = true; emit testRunStarted(); QFuture<void> future = QtConcurrent::run(&performTestRun , m_selectedTests); Core::FutureProgress *progress = Core::ProgressManager::addTask(future, tr("Running Tests"), Autotest::Constants::TASK_INDEX); connect(progress, &Core::FutureProgress::finished, - TestRunner::instance(), &TestRunner::testRunFinished); + TestRunner::instance(), &TestRunner::onFinished); } void TestRunner::buildProject(ProjectExplorer::Project *project) @@ -405,6 +407,12 @@ void TestRunner::buildFinished(bool success) m_buildSucceeded = success; } +void TestRunner::onFinished() +{ + m_executingTests = false; + emit testRunFinished(); +} + void TestRunner::stopTestRun() { if (m_runner && m_runner->state() != QProcess::NotRunning && m_currentFuture) diff --git a/plugins/autotest/testrunner.h b/plugins/autotest/testrunner.h index 1a725eada7..6b739b1594 100644 --- a/plugins/autotest/testrunner.h +++ b/plugins/autotest/testrunner.h @@ -41,6 +41,7 @@ public: ~TestRunner(); void setSelectedTests(const QList<TestConfiguration *> &selected); + bool isTestRunning() const { return m_executingTests; } signals: void testRunStarted(); @@ -53,6 +54,7 @@ public slots: private slots: void buildProject(ProjectExplorer::Project *project); void buildFinished(bool success); + void onFinished(); private: explicit TestRunner(QObject *parent = 0); @@ -60,6 +62,7 @@ private: QList<TestConfiguration *> m_selectedTests; bool m_building; bool m_buildSucceeded; + bool m_executingTests; }; diff --git a/plugins/autotest/testtreeview.cpp b/plugins/autotest/testtreeview.cpp index fc2fffe1c1..d16e43c603 100644 --- a/plugins/autotest/testtreeview.cpp +++ b/plugins/autotest/testtreeview.cpp @@ -71,6 +71,7 @@ TestTreeViewWidget::TestTreeViewWidget(QWidget *parent) : void TestTreeViewWidget::contextMenuEvent(QContextMenuEvent *event) { + bool enabled = !TestRunner::instance()->isTestRunning(); bool hasTests = m_model->hasTests(); QMenu menu; QAction *runAll = new QAction(tr("Run All Tests"), &menu); @@ -87,10 +88,11 @@ void TestTreeViewWidget::contextMenuEvent(QContextMenuEvent *event) connect(rescan, &QAction::triggered, TestTreeModel::instance()->parser(), &TestCodeParser::updateTestTree); - runAll->setEnabled(hasTests); - runSelected->setEnabled(hasTests); - selectAll->setEnabled(hasTests); - deselectAll->setEnabled(hasTests); + runAll->setEnabled(enabled && hasTests); + runSelected->setEnabled(enabled && hasTests); + selectAll->setEnabled(enabled && hasTests); + deselectAll->setEnabled(enabled && hasTests); + rescan->setEnabled(enabled); menu.addAction(runAll); menu.addAction(runSelected); |