From c0a922f742c23a33ec4ebd4d69c19dcbd9d1a7bf Mon Sep 17 00:00:00 2001
From: Christian Kandeler <christian.kandeler@nokia.com>
Date: Mon, 23 Aug 2010 15:37:17 +0200
Subject: [PATCH] Maemo: Differentiate between Maemo versions.

Reviewed-by: kh1
---
 .../qt-maemo/maemopackagecreationstep.cpp             |  5 +++++
 .../qt-maemo/maemopackagecreationstep.h               |  2 +-
 .../qt4projectmanager/qt-maemo/maemoremotemounter.cpp |  2 ++
 .../qt-maemo/maemorunconfiguration.cpp                |  5 +++++
 .../qt-maemo/maemorunconfiguration.h                  |  2 +-
 .../qt4projectmanager/qt-maemo/maemotoolchain.cpp     | 11 +++++++++++
 .../qt4projectmanager/qt-maemo/maemotoolchain.h       |  5 +++++
 7 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
index 8a34daf39a2..5ea73b73a16 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
@@ -342,6 +342,11 @@ QString MaemoPackageCreationStep::packageFilePath() const
         % packageFileName(buildConfiguration()->target()->project(), version);
 }
 
+bool MaemoPackageCreationStep::isPackagingEnabled() const
+{
+    return m_packagingEnabled || !maemoToolChain()->allowsPackagingDisabling();
+}
+
 QString MaemoPackageCreationStep::versionString(QString *error) const
 {
     return MaemoTemplatesManager::instance()
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
index 2e1a530733f..e986176b21d 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h
@@ -68,7 +68,7 @@ public:
     ~MaemoPackageCreationStep();
 
     QString packageFilePath() const;
-    bool isPackagingEnabled() const { return m_packagingEnabled; }
+    bool isPackagingEnabled() const;
     void setPackagingEnabled(bool enabled) { m_packagingEnabled = enabled; }
 
     QString versionString(QString *error) const;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp
index 3d8d8d75a89..84066644a24 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoremotemounter.cpp
@@ -80,6 +80,8 @@ void MaemoRemoteMounter::mount()
     m_stop = false;
     Q_ASSERT(m_utfsServers.isEmpty());
 
+    if (!m_toolChain->allowsRemoteMounts())
+        m_mountSpecs.clear();
     if (m_mountSpecs.isEmpty())
         emit mounted();
     else
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
index eef64f68df0..ed82482a5bd 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.cpp
@@ -282,6 +282,11 @@ MaemoPortList MaemoRunConfiguration::freePorts() const
     return devConfig.freePorts();
 }
 
+bool MaemoRunConfiguration::useRemoteGdb() const
+{
+    return m_useRemoteGdb && toolchain()->allowsRemoteMounts();
+}
+
 void MaemoRunConfiguration::setArguments(const QStringList &args)
 {
     m_arguments = args;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
index ffd8f4d5ce0..f4fea4fa142 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemorunconfiguration.h
@@ -93,7 +93,7 @@ public:
     void setArguments(const QStringList &args);
     MaemoDeviceConfig deviceConfig() const;
     MaemoPortList freePorts() const;
-    bool useRemoteGdb() const { return m_useRemoteGdb; }
+    bool useRemoteGdb() const;
     void setUseRemoteGdb(bool useRemoteGdb) { m_useRemoteGdb = useRemoteGdb; }
     void updateFactoryState() { emit isEnabledChanged(true); }
 
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
index a76b8007f31..ebbbde8cd99 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.cpp
@@ -113,6 +113,17 @@ QString MaemoToolChain::sysrootRoot() const
     return m_sysrootRoot;
 }
 
+MaemoToolChain::MaemoVersion MaemoToolChain::version() const
+{
+    const QString &name = targetName();
+    if (name.startsWith(QLatin1String("fremantle")))
+        return Maemo5;
+    if (name.startsWith(QLatin1String("harmattan")))
+        return Maemo6;
+    qWarning("Unknown Maemo version!");
+    return static_cast<MaemoVersion>(-1);
+}
+
 void MaemoToolChain::setMaddeRoot() const
 {
     QDir dir(targetRoot());
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
index 7633d2cb1d7..a08220b25db 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotoolchain.h
@@ -52,6 +52,11 @@ public:
     QString sysrootRoot() const;
     QString madAdminCommand() const;
 
+    enum MaemoVersion { Maemo5, Maemo6 };
+    MaemoVersion version() const;
+    bool allowsRemoteMounts() const { return version() == Maemo5; }
+    bool allowsPackagingDisabling() const { return version() == Maemo5; }
+
 protected:
     bool equals(ToolChain *other) const;
 
-- 
GitLab