summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@digia.com>2014-11-06 10:48:17 +0100
committerChristian Stenger <christian.stenger@theqtcompany.com>2014-12-04 13:52:15 +0100
commit1258c58a7f74f8113edc4781baacaa68f7fe9d44 (patch)
tree8f86736cdd59721515dfe13fac46c34613d933ab
parenta2a4fe564a170dd65f509e63e77fdf65a78a5c6b (diff)
downloadqt-creator-1258c58a7f74f8113edc4781baacaa68f7fe9d44.tar.gz
Disable context menu on test tree when executing test
-rw-r--r--plugins/autotest/testrunner.cpp12
-rw-r--r--plugins/autotest/testrunner.h3
-rw-r--r--plugins/autotest/testtreeview.cpp10
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);