From 02d12edd4d38b4927a1f6feebf1f8c543281ef27 Mon Sep 17 00:00:00 2001
From: Christian Kandeler <christian.kandeler@nokia.com>
Date: Tue, 19 Jul 2011 15:20:10 +0200
Subject: [PATCH] Harmattan: Support deploying without packaging.

Won't work out of the box with the default paths from our wizards, but
developers might find the faster turn-around time worth the hassle.

Task-number: QTCREATORBUG-5459
Change-Id: I21dbc67f940f2e68cf07f28568ea35c717abc294
Reviewed-on: http://codereview.qt.nokia.com/1828
Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
---
 src/plugins/remotelinux/maemodeploystepfactory.cpp      | 2 ++
 src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp | 9 +++++++++
 2 files changed, 11 insertions(+)

diff --git a/src/plugins/remotelinux/maemodeploystepfactory.cpp b/src/plugins/remotelinux/maemodeploystepfactory.cpp
index 82b90fbe347..3fcea78e209 100644
--- a/src/plugins/remotelinux/maemodeploystepfactory.cpp
+++ b/src/plugins/remotelinux/maemodeploystepfactory.cpp
@@ -81,6 +81,8 @@ QStringList MaemoDeployStepFactory::availableCreationIds(BuildStepList *parent)
         ids << MaemoInstallRpmPackageToSysrootStep::Id;
         ids << MaemoUploadAndInstallRpmPackageStep::Id;
     }
+    if (qobject_cast<Qt4HarmattanTarget *>(parent->target()))
+         ids << MaemoDirectDeviceUploadStep::Id;
     if (qobject_cast<Qt4Maemo5Target *>(parent->target())) {
         ids << MaemoMountAndInstallDeployStep::Id
             << MaemoMountAndCopyDeployStep::Id;
diff --git a/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp b/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp
index a1273471634..6994a232108 100644
--- a/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp
+++ b/src/plugins/remotelinux/maemodirectdeviceuploadstep.cpp
@@ -217,6 +217,15 @@ void MaemoDirectDeviceUploadStep::handleUploadFinished(Utils::SftpJobId jobId,
         setFinished();
     } else {
         setDeployed(connection()->connectionParameters().host, d);
+
+        // Terrible hack for Windows.
+        if (d.remoteDir.contains(QLatin1String("bin"))) {
+            const QString remoteFilePath = d.remoteDir + QLatin1Char('/')
+                + QFileInfo(d.localFilePath).fileName();
+            const QString command = QLatin1String("chmod a+x ") + remoteFilePath;
+            connection()->createRemoteProcess(command.toUtf8())->start();
+        }
+
         uploadNextFile();
     }
 }
-- 
GitLab