OSDN Git Service

Symbian: Correctly ignore certain deployment rules
authordt_ <qtc-committer@nokia.com>
Tue, 10 May 2011 14:18:04 +0000 (16:18 +0200)
committerdt_ <qtc-committer@nokia.com>
Wed, 11 May 2011 11:48:04 +0000 (13:48 +0200)
Reviewed-By: Pawel Polanski
Task-Nr: QTCREATORBUG-4840

src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp
src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
src/plugins/qt4projectmanager/qt4nodes.cpp
src/plugins/qt4projectmanager/qt4nodes.h

index f1310f3..bf778e5 100644 (file)
@@ -152,26 +152,9 @@ bool S60DeployConfiguration::isApplication(const Qt4ProFileNode &projectNode) co
     return projectNode.projectType() == ApplicationTemplate;
 }
 
-bool S60DeployConfiguration::isDeployable(const Qt4ProFileNode &projectNode) const
-{
-    const QStringList &deployment(projectNode.variableValue(Deployment));
-    // default_*deployment are default for DEPLOYMENT
-    const char * defaultDeploymentStart = "default_";
-    const char * defaultDeploymentEnd = "deployment";
-
-    //we need to filter out the default_*deployment
-    for (int i = deployment.count() - 1; i >= 0; --i) {
-        const QString var = deployment.at(i);
-        if (!var.startsWith(QLatin1String(defaultDeploymentStart))
-                || !var.endsWith(QLatin1String(defaultDeploymentEnd)))
-            return true;
-    }
-    return false;
-}
-
 bool S60DeployConfiguration::hasSisPackage(const Qt4ProFileNode &projectNode) const
 {
-    return isDeployable(projectNode) || isApplication(projectNode);
+    return projectNode.isDeployable();
 }
 
 QStringList S60DeployConfiguration::signedPackages() const
index a820226..2f4ea63 100644 (file)
@@ -129,7 +129,6 @@ private:
     QString symbianTarget() const;
     QString createPackageName(const QString &baseName) const;
     bool isDebug() const;
-    bool isDeployable(const Qt4ProFileNode &projectNode) const;
     bool isStaticLibrary(const Qt4ProFileNode &projectNode) const;
     bool isApplication(const Qt4ProFileNode &projectNode) const;
     bool hasSisPackage(const Qt4ProFileNode &projectNode) const;
index 542b3df..e0998da 100644 (file)
@@ -1321,6 +1321,11 @@ QStringList Qt4ProFileNode::symbianCapabilities() const
     return result;
 }
 
+bool Qt4ProFileNode::isDeployable() const
+{
+    return m_isDeployable;
+}
+
 /*!
   \class Qt4ProFileNode
   Implements abstract ProjectNode class
@@ -1753,7 +1758,18 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
                     QLatin1String("QML_IMPORT_PATH"), m_projectDir);
         newVarValues[Makefile] = m_readerExact->values("MAKEFILE");
         newVarValues[SymbianCapabilities] = m_readerExact->values("TARGET.CAPABILITY");
-        newVarValues[Deployment] = m_readerExact->values("DEPLOYMENT");
+
+        m_isDeployable = false;
+        if (m_projectType == ApplicationTemplate) {
+            m_isDeployable = true;
+        } else {
+            foreach (const QString &item, m_readerExact->values("DEPLOYMENT")) {
+                if (!m_readerExact->values(item + ".sources").isEmpty()) {
+                    m_isDeployable = true;
+                    break;
+                }
+            }
+        }
 
         if (m_varValues != newVarValues) {
             Qt4VariablesHash oldValues = m_varValues;
index a7dc61f..2854009 100644 (file)
@@ -104,8 +104,7 @@ enum Qt4Variable {
     ConfigVar,
     QmlImportPathVar,
     Makefile,
-    SymbianCapabilities,
-    Deployment
+    SymbianCapabilities
 };
 
 class Qt4PriFileNode;
@@ -305,6 +304,7 @@ public:
 
     QString makefile() const;
     QStringList symbianCapabilities() const;
+    bool isDeployable() const;
 
     void update();
     void scheduleUpdate();
@@ -348,6 +348,7 @@ private:
 
     Qt4ProjectType m_projectType;
     Qt4VariablesHash m_varValues;
+    bool m_isDeployable;
 
     QMap<QString, QDateTime> m_uitimestamps;
     TargetInformation m_qt4targetInformation;