summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-01-15 15:58:48 +0100
committerTobias Hunger <tobias.hunger@digia.com>2013-01-24 15:11:21 +0100
commit6e6229b5f6e0645e947065984531d7df418e1ab1 (patch)
treebd31b5a495eca0e1cf02035ff234aaf8d0d061b9
parent3ffccdbfaca2e21b9bbb9c5431922b9e58b0df8f (diff)
downloadqt-creator-6e6229b5f6e0645e947065984531d7df418e1ab1.tar.gz
Qbs: Make canceling a build work
Change-Id: Iea0b964d8db9b563d387315cc6469b0b3ae322a1
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp6
-rw-r--r--src/plugins/qbsprojectmanager/qbscleanstep.cpp7
2 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index 9bb5856237..59a67d0c26 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -74,6 +74,8 @@ QbsBuildStep::QbsBuildStep(ProjectExplorer::BuildStepList *bsl, const QbsBuildSt
QbsBuildStep::~QbsBuildStep()
{
cancel();
+ m_job->deleteLater();
+ m_job = 0;
delete m_parser;
}
@@ -144,8 +146,8 @@ bool QbsBuildStep::runInGuiThread() const
void QbsBuildStep::cancel()
{
- m_job->deleteLater();
- m_job = 0;
+ if (m_job)
+ m_job->cancel();
}
QVariantMap QbsBuildStep::qbsConfiguration() const
diff --git a/src/plugins/qbsprojectmanager/qbscleanstep.cpp b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
index 363916c284..64907c0772 100644
--- a/src/plugins/qbsprojectmanager/qbscleanstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbscleanstep.cpp
@@ -73,6 +73,8 @@ QbsCleanStep::QbsCleanStep(ProjectExplorer::BuildStepList *bsl, const QbsCleanSt
QbsCleanStep::~QbsCleanStep()
{
cancel();
+ m_job->deleteLater();
+ m_job = 0;
}
bool QbsCleanStep::init()
@@ -125,9 +127,8 @@ bool QbsCleanStep::runInGuiThread() const
void QbsCleanStep::cancel()
{
- // FIXME: Will this work? I somehow doubt it...
- delete m_job;
- m_job = 0;
+ if (m_job)
+ m_job->cancel();
}
bool QbsCleanStep::dryRun() const