diff options
author | Christian Kandeler <christian.kandeler@nokia.com> | 2011-11-23 12:50:52 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@nokia.com> | 2011-11-24 15:04:51 +0100 |
commit | 273d7c03a0f90ebd046a1087252ae9dc40996067 (patch) | |
tree | cdd3112c4890bf4d98b1565bb1326150449e9eeb | |
parent | ff14295b47a63c66e11498e74f807a6660bc979e (diff) | |
download | qt-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.cpp | 23 | ||||
-rw-r--r-- | src/plugins/madde/maddeuploadandinstallpackagesteps.h | 1 | ||||
-rw-r--r-- | src/plugins/madde/maemopackageinstaller.cpp | 16 | ||||
-rw-r--r-- | src/plugins/madde/maemopackageinstaller.h | 12 |
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 |