From d0cbac9032b55b6d6c9d11dc152bf1376dfeed1f Mon Sep 17 00:00:00 2001
From: ck <qt-info@nokia.com>
Date: Wed, 14 Jul 2010 08:33:17 +0200
Subject: [PATCH] Maemo: Make sure deploying stops when build step thread
 finishes.

This is important for the "canceled" case and doesn't hurt otherwise.
---
 src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp | 3 ++-
 src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h   | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
index 889076d828a..c1d94b21309 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.cpp
@@ -88,6 +88,7 @@ void MaemoDeployStep::run(QFutureInterface<bool> &fi)
     QTimer::singleShot(0, this, SLOT(start()));
 
     MaemoDeployEventHandler eventHandler(this, fi);
+    connect (&eventHandler, SIGNAL(destroyed()), this, SLOT(stop()));
 }
 
 BuildStepConfigWidget *MaemoDeployStep::createConfigWidget()
@@ -176,8 +177,8 @@ void MaemoDeployStep::stop()
     } else if (!m_uploadsInProgress.isEmpty() || !m_linksInProgress.isEmpty()) {
         m_uploadsInProgress.clear();
         m_linksInProgress.clear();
-        m_uploader->closeChannel();
         disconnect(m_uploader.data(), 0, this, 0);
+        m_uploader->closeChannel();
     }
     if (m_connection)
         disconnect(m_connection.data(), 0, this, 0);
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h
index 95331c1cd96..9d2fb076df2 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeploystep.h
@@ -74,6 +74,7 @@ signals:
 
 private slots:
     void start();
+    void stop();
     void handleConnected();
     void handleConnectionFailure();
     void handleSftpChannelInitialized();
@@ -95,7 +96,6 @@ private:
     virtual bool fromMap(const QVariantMap &map);
 
     void ctor();
-    void stop();
     void raiseError(const QString &error);
     void writeOutput(const QString &text,
         const QTextCharFormat &format = QTextCharFormat());
-- 
GitLab