From 6357afcbb303ef67fe605289fdff703d8f7d8fe0 Mon Sep 17 00:00:00 2001
From: Pawel Polanski <pawel.3.polanski@nokia.com>
Date: Thu, 25 Nov 2010 10:30:34 +0100
Subject: [PATCH] User is now informed in a proper way if the smartinstaller
 package is not found (SymbianOS)

Task-number: QTCREATORBUG-3176
Reviewed-by: Tobias Hunger
---
 .../qt-s60/s60createpackageparser.cpp         | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
index 9daa10e3ca1..79cc48244c7 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackageparser.cpp
@@ -32,6 +32,9 @@
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/taskwindow.h>
 
+
+#include <QDebug>
+
 using namespace Qt4ProjectManager::Internal;
 
 S60CreatePackageParser::S60CreatePackageParser(const QString &packageName) :
@@ -39,8 +42,9 @@ S60CreatePackageParser::S60CreatePackageParser(const QString &packageName) :
     m_needPassphrase(false)
 {
     setObjectName(QLatin1String("S60CreatePackageParser"));
-    m_signSis.setPattern("^(error:\\s?)+(.+)$");
+    m_signSis.setPattern("^\\s*(error\\s?:\\s?)+(.+)$");
     m_signSis.setMinimal(true);
+    m_signSis.setCaseSensitivity(Qt::CaseInsensitive);
 }
 
 bool S60CreatePackageParser::parseLine(const QString &line)
@@ -72,11 +76,20 @@ bool S60CreatePackageParser::parseLine(const QString &line)
     }
 
     if (m_signSis.indexIn(line) > -1) {
-        if (m_signSis.cap(2).contains(QLatin1String("bad password"))
-            || m_signSis.cap(2).contains(QLatin1String("bad decrypt")))
+        QString errorMessage(m_signSis.cap(2));
+        if (errorMessage.contains(QLatin1String("bad password"))
+            || errorMessage.contains(QLatin1String("bad decrypt")))
             m_needPassphrase = true;
+        else if (errorMessage.contains(QLatin1String("Cannot open file"))
+                 && errorMessage.contains(QLatin1String("smartinstaller")))
+            emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error,
+                                               tr("Cannot create Smart Installer package "
+                                                  "as the Smart Installer's base file is missing. "
+                                                  "Please ensure that it is located in the SDK."),
+                                               QString(), -1,
+                                               ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
         else
-            emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, m_signSis.cap(2), QString(), -1,
+            emit addTask(ProjectExplorer::Task(ProjectExplorer::Task::Error, errorMessage, QString(), -1,
                                                ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM));
         return true;
     }
-- 
GitLab