summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@nokia.com>2011-11-23 12:50:52 +0100
committerChristian Kandeler <christian.kandeler@nokia.com>2011-11-24 15:04:51 +0100
commit273d7c03a0f90ebd046a1087252ae9dc40996067 (patch)
treecdd3112c4890bf4d98b1565bb1326150449e9eeb
parentff14295b47a63c66e11498e74f807a6660bc979e (diff)
downloadqt-creator-273d7c03a0f90ebd046a1087252ae9dc40996067.tar.gz
Harmattan: Use pkgmgr for deployment instead of dpkg.
Apparently, packages installed by dpkg are not uninstallable via the home screen. Change-Id: Ibe22b0ecde983ad3dfafb374eabff18db9055b74 Task-number: QTCREATORBUG-6603 Reviewed-by: Christian Kandeler <christian.kandeler@nokia.com>
-rw-r--r--src/plugins/madde/maddeuploadandinstallpackagesteps.cpp23
-rw-r--r--src/plugins/madde/maddeuploadandinstallpackagesteps.h1
-rw-r--r--src/plugins/madde/maemopackageinstaller.cpp16
-rw-r--r--src/plugins/madde/maemopackageinstaller.h12
4 files changed, 50 insertions, 2 deletions
diff --git a/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp b/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp
index d3789c0967..3e5e32d9f2 100644
--- a/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp
+++ b/src/plugins/madde/maddeuploadandinstallpackagesteps.cpp
@@ -36,6 +36,7 @@
#include "maemopackageinstaller.h"
#include "maemoqemumanager.h"
#include "qt4maemodeployconfiguration.h"
+#include "qt4maemotarget.h"
#include <qt4projectmanager/qt4buildconfiguration.h>
#include <qtsupport/baseqtversion.h>
@@ -102,6 +103,23 @@ private:
MaemoDebianPackageInstaller * const m_installer;
};
+class HarmattanUploadAndInstallPackageAction : public AbstractMaddeUploadAndInstallPackageAction
+{
+ Q_OBJECT
+
+public:
+ HarmattanUploadAndInstallPackageAction(AbstractRemoteLinuxDeployStep *step)
+ : AbstractMaddeUploadAndInstallPackageAction(step),
+ m_installer(new HarmattanPackageInstaller(this))
+ {
+ }
+
+ AbstractRemoteLinuxPackageInstaller *packageInstaller() const { return m_installer; }
+
+private:
+ HarmattanPackageInstaller * const m_installer;
+};
+
class MeegoUploadAndInstallPackageAction : public AbstractMaddeUploadAndInstallPackageAction
{
Q_OBJECT
@@ -137,7 +155,10 @@ MaemoUploadAndInstallPackageStep::MaemoUploadAndInstallPackageStep(ProjectExplor
void MaemoUploadAndInstallPackageStep::ctor()
{
setDefaultDisplayName(displayName());
- m_deployService = new MaemoUploadAndInstallPackageAction(this);
+ if (qobject_cast<Qt4HarmattanTarget *>(target()))
+ m_deployService = new HarmattanUploadAndInstallPackageAction(this);
+ else
+ m_deployService = new MaemoUploadAndInstallPackageAction(this);
}
AbstractRemoteLinuxDeployService *MaemoUploadAndInstallPackageStep::deployService() const
diff --git a/src/plugins/madde/maddeuploadandinstallpackagesteps.h b/src/plugins/madde/maddeuploadandinstallpackagesteps.h
index 3e4b209476..63dfeea2f9 100644
--- a/src/plugins/madde/maddeuploadandinstallpackagesteps.h
+++ b/src/plugins/madde/maddeuploadandinstallpackagesteps.h
@@ -62,7 +62,6 @@ private:
RemoteLinux::AbstractUploadAndInstallPackageService *m_deployService;
};
-
class MeegoUploadAndInstallPackageStep : public RemoteLinux::AbstractRemoteLinuxDeployStep
{
Q_OBJECT
diff --git a/src/plugins/madde/maemopackageinstaller.cpp b/src/plugins/madde/maemopackageinstaller.cpp
index 57cbcf84dc..7f7400ab8d 100644
--- a/src/plugins/madde/maemopackageinstaller.cpp
+++ b/src/plugins/madde/maemopackageinstaller.cpp
@@ -97,5 +97,21 @@ QString MaemoRpmPackageInstaller::cancelInstallationCommandLine() const
return QLatin1String("pkill rpm");
}
+HarmattanPackageInstaller::HarmattanPackageInstaller(QObject *parent)
+ : AbstractRemoteLinuxPackageInstaller(parent)
+{
+}
+
+QString HarmattanPackageInstaller::installCommandLine(const QString &packageFilePath) const
+{
+ return QLatin1String("pkgmgr install-file -f ") + packageFilePath
+ + QLatin1String(" |grep -v '%'"); // Otherwise, the terminal codes will screw with our output.
+}
+
+QString HarmattanPackageInstaller::cancelInstallationCommandLine() const
+{
+ return QLatin1String("pkill pkgmgr");
+}
+
} // namespace Internal
} // namespace Madde
diff --git a/src/plugins/madde/maemopackageinstaller.h b/src/plugins/madde/maemopackageinstaller.h
index 8749c2c635..8cf86170b0 100644
--- a/src/plugins/madde/maemopackageinstaller.h
+++ b/src/plugins/madde/maemopackageinstaller.h
@@ -68,6 +68,18 @@ private:
QString cancelInstallationCommandLine() const;
};
+
+class HarmattanPackageInstaller: public RemoteLinux::AbstractRemoteLinuxPackageInstaller
+{
+ Q_OBJECT
+public:
+ explicit HarmattanPackageInstaller(QObject *parent);
+
+private:
+ QString installCommandLine(const QString &packageFilePath) const;
+ QString cancelInstallationCommandLine() const;
+};
+
} // namespace Internal
} // namespace Madde