From 12b2a5fff0df1f20b117d3ad9ba4782ee944ccac Mon Sep 17 00:00:00 2001
From: Christian Kandeler <christian.kandeler@nokia.com>
Date: Thu, 28 Apr 2011 15:11:42 +0200
Subject: [PATCH] Maemo: Harmattan application icons are now 80x80 pixels big.

Task-number: https://projects.maemo.org/bugzilla/show_bug.cgi?id=250237
---
 .../qtcreator/templates/shared/deployment.pri |   6 +-
 .../shared/{maemoicon.png => maemoicon64.png} | Bin
 .../templates/shared/maemoicon80.png          | Bin 0 -> 4945 bytes
 .../qt-maemo/maemodeployablelistmodel.cpp     |  17 ++--
 .../qt-maemo/maemodeployablelistmodel.h       |   3 +-
 .../maemodeployconfigurationwidget.cpp        |   5 +-
 .../qt-maemo/maemoglobal.cpp                  |   5 +
 .../qt4projectmanager/qt-maemo/maemoglobal.h  |   1 +
 .../wizards/abstractmobileapp.cpp             |  39 ++++++--
 .../wizards/abstractmobileapp.h               |  18 ++--
 .../wizards/abstractmobileappwizard.cpp       |  91 ++++++++++++------
 .../wizards/abstractmobileappwizard.h         |   7 ++
 .../mobileappwizardmaemooptionspage.ui        |   2 +-
 .../wizards/mobileappwizardpages.cpp          |  20 ++--
 .../wizards/mobileappwizardpages.h            |   3 +-
 tests/manual/appwizards/helpers.cpp           |   6 +-
 16 files changed, 154 insertions(+), 69 deletions(-)
 rename share/qtcreator/templates/shared/{maemoicon.png => maemoicon64.png} (100%)
 create mode 100644 share/qtcreator/templates/shared/maemoicon80.png

diff --git a/share/qtcreator/templates/shared/deployment.pri b/share/qtcreator/templates/shared/deployment.pri
index f147e99417c..51a39db035e 100644
--- a/share/qtcreator/templates/shared/deployment.pri
+++ b/share/qtcreator/templates/shared/deployment.pri
@@ -52,8 +52,12 @@ symbian {
 } else:unix {
     maemo5 {
         desktopfile.path = /usr/share/applications/hildon
+        icon.files = $${TARGET}64.png
+        icon.path = /usr/share/icons/hicolor/64x64/apps
     } else {
         desktopfile.path = /usr/share/applications
+        icon.files = $${TARGET}80.png
+        icon.path = /usr/share/icons/hicolor/80x80/apps
         copyCommand =
         for(deploymentfolder, DEPLOYMENTFOLDERS) {
             source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
@@ -92,8 +96,6 @@ symbian {
         export($$itempath)
         INSTALLS += $$item
     }
-    icon.files = $${TARGET}.png
-    icon.path = /usr/share/icons/hicolor/64x64/apps
     desktopfile.files = $${TARGET}.desktop
     target.path = $${installPrefix}/bin
     export(icon.files)
diff --git a/share/qtcreator/templates/shared/maemoicon.png b/share/qtcreator/templates/shared/maemoicon64.png
similarity index 100%
rename from share/qtcreator/templates/shared/maemoicon.png
rename to share/qtcreator/templates/shared/maemoicon64.png
diff --git a/share/qtcreator/templates/shared/maemoicon80.png b/share/qtcreator/templates/shared/maemoicon80.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ad8096c45a52356c197727402ef4fab769257b7
GIT binary patch
literal 4945
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
Jjgn>L{{TKddny0`

literal 0
HcmV?d00001

diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp
index 1eafceacd2d..f3d6b3a4a4b 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp
@@ -52,9 +52,6 @@
 
 namespace Qt4ProjectManager {
 namespace Internal {
-namespace {
-const QLatin1String RemoteIconPath("/usr/share/icons/hicolor/64x64/apps");
-} // anonymous namespace
 
 MaemoDeployableListModel::MaemoDeployableListModel(const Qt4ProFileNode *proFileNode,
     ProFileUpdateSetting updateSetting, QObject *parent)
@@ -269,7 +266,7 @@ bool MaemoDeployableListModel::addIcon(const QString &fileName)
         return true;
 
     const QString filesLine = QLatin1String("icon.files = ") + fileName;
-    const QString pathLine = QLatin1String("icon.path = ") + RemoteIconPath;
+    const QString pathLine = QLatin1String("icon.path = ") + remoteIconDir();
     const QLatin1String installsLine("INSTALLS += icon");
     if (!addLinesToProFile(QStringList() << filesLine << pathLine
             << installsLine))
@@ -278,7 +275,7 @@ bool MaemoDeployableListModel::addIcon(const QString &fileName)
     beginInsertRows(QModelIndex(), rowCount(), rowCount());
     const QString filePath = QFileInfo(m_proFilePath).path()
         + QLatin1Char('/') + fileName;
-    m_deployables << MaemoDeployable(filePath, RemoteIconPath);
+    m_deployables << MaemoDeployable(filePath, remoteIconDir());
     endInsertRows();
     return true;
 }
@@ -291,7 +288,7 @@ QString MaemoDeployableListModel::remoteIconFilePath() const
     foreach (const MaemoDeployable &d, m_deployables) {
         const QByteArray extension
             = QFileInfo(d.localFilePath).suffix().toLocal8Bit();
-        if (d.remoteDir.startsWith(RemoteIconPath)
+        if (d.remoteDir.startsWith(remoteIconDir())
                 && imageTypes.contains(extension))
             return d.remoteDir + QLatin1Char('/')
                 + QFileInfo(d.localFilePath).fileName();
@@ -339,5 +336,13 @@ QString MaemoDeployableListModel::installPrefix() const
     return QLatin1String("/opt/") + m_projectName;
 }
 
+QString MaemoDeployableListModel::remoteIconDir() const
+{
+    const QtVersion *const qv = qtVersion();
+    QTC_ASSERT(qv, return QString());
+    return QString::fromLocal8Bit("/usr/share/icons/hicolor/%1x%1/apps")
+        .arg(MaemoGlobal::applicationIconSize(MaemoGlobal::version(qv)));
+}
+
 } // namespace Qt4ProjectManager
 } // namespace Internal
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.h
index cf9b07783a7..88b4ee2dbc0 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.h
@@ -64,6 +64,7 @@ public:
     MaemoDeployable deployableAt(int row) const;
     bool isModified() const { return m_modified; }
     void setUnModified() { m_modified = false; }
+    const QtVersion *qtVersion() const;
     QString localExecutableFilePath() const;
     QString remoteExecutableFilePath() const;
     QString projectName() const { return m_projectName; }
@@ -97,9 +98,9 @@ private:
     bool isEditable(const QModelIndex &index) const;
     bool buildModel();
     bool addLinesToProFile(const QStringList &lines);
-    const QtVersion *qtVersion() const;
     QString proFileScope() const;
     QString installPrefix() const;
+    QString remoteIconDir() const;
 
     const Qt4ProjectType m_projectType;
     const QString m_proFilePath;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeployconfigurationwidget.cpp
index ff5af3dc4e0..c84ffe4c02c 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployconfigurationwidget.cpp
@@ -133,8 +133,9 @@ void MaemoDeployConfigurationWidget::addIcon()
 
     MaemoDeployableListModel *const model
         = m_deployConfig->deployables()->modelAt(modelRow);
+    const int iconDim = MaemoGlobal::applicationIconSize(MaemoGlobal::version(model->qtVersion()));
     const QString origFilePath = QFileDialog::getOpenFileName(this,
-        tr("Choose Icon (will be scaled to 64x64 pixels, if necessary)"),
+        tr("Choose Icon (will be scaled to %1x%1 pixels, if necessary)").arg(iconDim),
         model->projectDir(), QLatin1String("(*.png)"));
     if (origFilePath.isEmpty())
         return;
@@ -144,7 +145,7 @@ void MaemoDeployConfigurationWidget::addIcon()
             tr("Unable to read image"));
         return;
     }
-    const QSize iconSize(64, 64);
+    const QSize iconSize(iconDim, iconDim);
     if (pixmap.size() != iconSize)
         pixmap = pixmap.scaled(iconSize);
     const QString newFileName = model->projectName() + QLatin1Char('.')
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
index c21c242f5e7..315083dcb05 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
@@ -127,6 +127,11 @@ QString MaemoGlobal::devrootshPath()
     return QLatin1String("/usr/lib/mad-developer/devrootsh");
 }
 
+int MaemoGlobal::applicationIconSize(MaemoDeviceConfig::OsVersion osVersion)
+{
+    return osVersion == MaemoDeviceConfig::Maemo6 ? 80 : 64;
+}
+
 QString MaemoGlobal::remoteSudo(MaemoDeviceConfig::OsVersion osVersion,
     const QString &uname)
 {
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
index 65ee14a539a..9a6925e597e 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
@@ -83,6 +83,7 @@ public:
 
     static QString homeDirOnDevice(const QString &uname);
     static QString devrootshPath();
+    static int applicationIconSize(MaemoDeviceConfig::OsVersion osVersion);
     static QString remoteSudo(MaemoDeviceConfig::OsVersion,
         const QString &uname);
     static QString remoteCommandPrefix(MaemoDeviceConfig::OsVersion osVersion,
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
index f308711afc6..b993bb13b35 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
@@ -115,14 +115,24 @@ QString AbstractMobileApp::symbianSvgIcon() const
     return path(SymbianSvgIconOrigin);
 }
 
-void AbstractMobileApp::setMaemoPngIcon(const QString &icon)
+void AbstractMobileApp::setMaemoPngIcon64(const QString &icon)
 {
-    m_maemoPngIcon = icon;
+    m_maemoPngIcon64 = icon;
 }
 
-QString AbstractMobileApp::maemoPngIcon() const
+QString AbstractMobileApp::maemoPngIcon64() const
 {
-    return path(MaemoPngIconOrigin);
+    return path(MaemoPngIconOrigin64);
+}
+
+void AbstractMobileApp::setMaemoPngIcon80(const QString &icon)
+{
+    m_maemoPngIcon80 = icon;
+}
+
+QString AbstractMobileApp::maemoPngIcon80() const
+{
+    return path(MaemoPngIconOrigin80);
 }
 
 void AbstractMobileApp::setSymbianTargetUid(const QString &uid)
@@ -167,9 +177,12 @@ QString AbstractMobileApp::path(int fileType) const
         case SymbianSvgIcon:        return outputPathBase() + cleanProjectName + QLatin1String(".svg");
         case SymbianSvgIconOrigin:  return !m_symbianSvgIcon.isEmpty() ? m_symbianSvgIcon
                                         : originsRootShared + symbianIconFileName;
-        case MaemoPngIcon:          return outputPathBase() + cleanProjectName +  QLatin1String(".png");
-        case MaemoPngIconOrigin:    return !m_maemoPngIcon.isEmpty() ? m_maemoPngIcon
-                                        : originsRootShared + QLatin1String("maemoicon.png");
+        case MaemoPngIcon64:        return outputPathBase() + cleanProjectName +  QLatin1String("64.png");
+        case MaemoPngIconOrigin64:  return !m_maemoPngIcon64.isEmpty() ? m_maemoPngIcon64
+                                        : originsRootShared + QLatin1String("maemoicon64.png");
+        case MaemoPngIcon80:        return outputPathBase() + cleanProjectName +  QLatin1String("80.png");
+        case MaemoPngIconOrigin80:  return !m_maemoPngIcon80.isEmpty() ? m_maemoPngIcon80
+                                        : originsRootShared + QLatin1String("maemoicon80.png");
         default:                    return pathExtended(fileType);
     }
     return QString();
@@ -189,6 +202,8 @@ QByteArray AbstractMobileApp::generateDesktopFile(QString *errorMessage) const
     QByteArray desktopFileContent;
     if (!readTemplate(DesktopOrigin, &desktopFileContent, errorMessage))
         return QByteArray();
+    desktopFileContent.replace("Icon=thisApp",
+        "Icon=" + projectName().toUtf8() + "64");
     return desktopFileContent.replace("thisApp", projectName().toUtf8());
 }
 
@@ -378,7 +393,8 @@ Core::GeneratedFiles AbstractMobileApp::generateFiles(QString *errorMessage) con
     files.last().setAttributes(Core::GeneratedFile::OpenProjectAttribute);
     files << file(generateFile(AbstractGeneratedFileInfo::MainCppFile, errorMessage), path(MainCpp));
     files << file(generateFile(AbstractGeneratedFileInfo::SymbianSvgIconFile, errorMessage), path(SymbianSvgIcon));
-    files << file(generateFile(AbstractGeneratedFileInfo::MaemoPngIconFile, errorMessage), path(MaemoPngIcon));
+    files << file(generateFile(AbstractGeneratedFileInfo::MaemoPngIconFile64, errorMessage), path(MaemoPngIcon64));
+    files << file(generateFile(AbstractGeneratedFileInfo::MaemoPngIconFile80, errorMessage), path(MaemoPngIcon80));
     files << file(generateFile(AbstractGeneratedFileInfo::DesktopFile, errorMessage), path(Desktop));
     return files;
 }
@@ -415,8 +431,11 @@ QByteArray AbstractMobileApp::generateFile(int fileType,
         case AbstractGeneratedFileInfo::SymbianSvgIconFile:
             data = readBlob(path(SymbianSvgIconOrigin), errorMessage);
             break;
-        case AbstractGeneratedFileInfo::MaemoPngIconFile:
-            data = readBlob(path(MaemoPngIconOrigin), errorMessage);
+        case AbstractGeneratedFileInfo::MaemoPngIconFile64:
+            data = readBlob(path(MaemoPngIconOrigin64), errorMessage);
+            break;
+        case AbstractGeneratedFileInfo::MaemoPngIconFile80:
+            data = readBlob(path(MaemoPngIconOrigin80), errorMessage);
             break;
         case AbstractGeneratedFileInfo::DesktopFile:
             data = generateDesktopFile(errorMessage);
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
index 9c5824e6570..f3264f54ed8 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
@@ -57,7 +57,8 @@ struct
         AppProFile,
         DeploymentPriFile,
         SymbianSvgIconFile,
-        MaemoPngIconFile,
+        MaemoPngIconFile64,
+        MaemoPngIconFile80,
         DesktopFile,
         ExtendedFile
     };
@@ -102,8 +103,10 @@ public:
         DeploymentPriOrigin,
         SymbianSvgIcon,
         SymbianSvgIconOrigin,
-        MaemoPngIcon,
-        MaemoPngIconOrigin,
+        MaemoPngIcon64,
+        MaemoPngIconOrigin64,
+        MaemoPngIcon80,
+        MaemoPngIconOrigin80,
         ExtendedFile
     };
 
@@ -116,8 +119,10 @@ public:
     void setProjectPath(const QString &path);
     void setSymbianSvgIcon(const QString &icon);
     QString symbianSvgIcon() const;
-    void setMaemoPngIcon(const QString &icon);
-    QString maemoPngIcon() const;
+    void setMaemoPngIcon64(const QString &icon);
+    QString maemoPngIcon64() const;
+    void setMaemoPngIcon80(const QString &icon);
+    QString maemoPngIcon80() const;
     void setSymbianTargetUid(const QString &uid);
     QString symbianTargetUid() const;
     void setNetworkEnabled(bool enabled);
@@ -181,7 +186,8 @@ private:
     QString m_projectName;
     QFileInfo m_projectPath;
     QString m_symbianSvgIcon;
-    QString m_maemoPngIcon;
+    QString m_maemoPngIcon64;
+    QString m_maemoPngIcon80;
     QString m_symbianTargetUid;
     ScreenOrientation m_orientation;
     bool m_networkEnabled;
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
index ee4584ab96f..45ad70691e4 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
@@ -63,14 +63,18 @@ AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, co
     m_symbianOptionsPage = new Internal::MobileAppWizardSymbianOptionsPage;
     m_symbianOptionsPageId = addPageWithTitle(m_symbianOptionsPage,
         QLatin1String("    ") + tr("Symbian Specific"));
-    m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage;
+    m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(64);
     m_maemoOptionsPageId = addPageWithTitle(m_maemoOptionsPage,
-        QLatin1String("    ") + tr("Maemo Specific"));
+        QLatin1String("    ") + tr("Maemo5 And Meego Specific"));
+    m_harmattanOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(80);
+    m_harmattanOptionsPageId = addPageWithTitle(m_harmattanOptionsPage,
+        QLatin1String("    ") + tr("Harmattan Specific"));
 
     m_targetItem = wizardProgress()->item(m_targetsPageId);
     m_genericItem = wizardProgress()->item(m_genericOptionsPageId);
     m_symbianItem = wizardProgress()->item(m_symbianOptionsPageId);
     m_maemoItem = wizardProgress()->item(m_maemoOptionsPageId);
+    m_harmattanItem = wizardProgress()->item(m_harmattanOptionsPageId);
 
     m_targetItem->setNextShownItem(0);
     m_genericItem->setNextShownItem(0);
@@ -91,30 +95,32 @@ int AbstractMobileAppWizardDialog::addPageWithTitle(QWizardPage *page, const QSt
 
 int AbstractMobileAppWizardDialog::nextId() const
 {
-    const bool symbianTargetSelected =
-        m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_EMULATOR_TARGET_ID))
-        || m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_DEVICE_TARGET_ID));
-    const bool fremantleTargetSelected
-        = m_targetsPage->isTargetSelected(QLatin1String(Constants::MAEMO5_DEVICE_TARGET_ID));
-    const bool maemoTargetSelected = fremantleTargetSelected
-            || m_targetsPage->isTargetSelected(QLatin1String(Constants::HARMATTAN_DEVICE_TARGET_ID))
-            || m_targetsPage->isTargetSelected(QLatin1String(Constants::MEEGO_DEVICE_TARGET_ID));
-
     if (currentPage() == m_targetsPage) {
-        if (symbianTargetSelected || fremantleTargetSelected)
+        if (isSymbianTargetSelected() || isFremantleTargetSelected())
             return m_genericOptionsPageId;
-        else if (maemoTargetSelected)
+        else if (isMeegoTargetSelected())
             return m_maemoOptionsPageId;
+        else if (isHarmattanTargetSelected())
+            return m_harmattanOptionsPageId;
         else
             return idOfNextGenericPage();
     } else if (currentPage() == m_genericOptionsPage) {
-        if (symbianTargetSelected)
+        if (isSymbianTargetSelected())
             return m_symbianOptionsPageId;
-        else
+        else if (isFremantleTargetSelected() || isMeegoTargetSelected())
             return m_maemoOptionsPageId;
+        else
+            return m_harmattanOptionsPageId;
     } else if (currentPage() == m_symbianOptionsPage) {
-        if (maemoTargetSelected)
+        if (isFremantleTargetSelected() || isMeegoTargetSelected())
             return m_maemoOptionsPageId;
+        else if (isHarmattanTargetSelected())
+            return m_harmattanOptionsPageId;
+        else
+            return idOfNextGenericPage();
+    } else if (currentPage() == m_maemoOptionsPage) {
+        if (isHarmattanTargetSelected())
+            return m_harmattanOptionsPageId;
         else
             return idOfNextGenericPage();
     } else {
@@ -125,24 +131,21 @@ int AbstractMobileAppWizardDialog::nextId() const
 void AbstractMobileAppWizardDialog::initializePage(int id)
 {
     if (id == startId()) {
-        m_targetItem->setNextItems(QList<Utils::WizardProgressItem *>() << m_genericItem << m_maemoItem << itemOfNextGenericPage());
-        m_genericItem->setNextItems(QList<Utils::WizardProgressItem *>() << m_symbianItem << m_maemoItem);
-        m_symbianItem->setNextItems(QList<Utils::WizardProgressItem *>() << m_maemoItem << itemOfNextGenericPage());
+        m_targetItem->setNextItems(QList<Utils::WizardProgressItem *>()
+            << m_genericItem << m_maemoItem << m_harmattanItem << itemOfNextGenericPage());
+        m_genericItem->setNextItems(QList<Utils::WizardProgressItem *>()
+            << m_symbianItem << m_maemoItem);
+        m_symbianItem->setNextItems(QList<Utils::WizardProgressItem *>()
+            << m_maemoItem << m_harmattanItem << itemOfNextGenericPage());
     } else if (id == m_genericOptionsPageId) {
-        const bool symbianTargetSelected =
-            m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_EMULATOR_TARGET_ID))
-            || m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_DEVICE_TARGET_ID));
-        const bool maemoTargetSelected =
-            m_targetsPage->isTargetSelected(QLatin1String(Constants::MAEMO5_DEVICE_TARGET_ID))
-                || m_targetsPage->isTargetSelected(QLatin1String(Constants::HARMATTAN_DEVICE_TARGET_ID))
-                || m_targetsPage->isTargetSelected(QLatin1String(Constants::MEEGO_DEVICE_TARGET_ID));
-
         QList<Utils::WizardProgressItem *> order;
         order << m_genericItem;
-        if (symbianTargetSelected)
+        if (isSymbianTargetSelected())
             order << m_symbianItem;
-        if (maemoTargetSelected)
+        if (isFremantleTargetSelected() || isMeegoTargetSelected())
             order << m_maemoItem;
+        if (isHarmattanTargetSelected())
+            order << m_harmattanItem;
         order << itemOfNextGenericPage();
 
         for (int i = 0; i < order.count() - 1; i++)
@@ -162,7 +165,7 @@ void AbstractMobileAppWizardDialog::cleanupPage(int id)
 
 int AbstractMobileAppWizardDialog::idOfNextGenericPage() const
 {
-    return pageIds().at(pageIds().indexOf(m_maemoOptionsPageId) + 1);
+    return pageIds().at(pageIds().indexOf(m_harmattanOptionsPageId) + 1);
 }
 
 Utils::WizardProgressItem *AbstractMobileAppWizardDialog::itemOfNextGenericPage() const
@@ -170,6 +173,28 @@ Utils::WizardProgressItem *AbstractMobileAppWizardDialog::itemOfNextGenericPage(
     return wizardProgress()->item(idOfNextGenericPage());
 }
 
+bool AbstractMobileAppWizardDialog::isSymbianTargetSelected() const
+{
+    return m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_EMULATOR_TARGET_ID))
+        || m_targetsPage->isTargetSelected(QLatin1String(Constants::S60_DEVICE_TARGET_ID));
+}
+
+bool AbstractMobileAppWizardDialog::isFremantleTargetSelected() const
+{
+    return m_targetsPage->isTargetSelected(QLatin1String(Constants::MAEMO5_DEVICE_TARGET_ID));
+}
+
+bool AbstractMobileAppWizardDialog::isHarmattanTargetSelected() const
+{
+    return m_targetsPage->isTargetSelected(QLatin1String(Constants::HARMATTAN_DEVICE_TARGET_ID));
+}
+
+bool AbstractMobileAppWizardDialog::isMeegoTargetSelected() const
+{
+    return m_targetsPage->isTargetSelected(QLatin1String(Constants::MEEGO_DEVICE_TARGET_ID));
+}
+
+
 AbstractMobileAppWizard::AbstractMobileAppWizard(const Core::BaseFileWizardParameters &params,
     QObject *parent) : Core::BaseFileWizard(params, parent)
 {
@@ -185,7 +210,8 @@ QWizard *AbstractMobileAppWizard::createWizardDialog(QWidget *parent,
     wdlg->m_genericOptionsPage->setOrientation(app()->orientation());
     wdlg->m_symbianOptionsPage->setSvgIcon(app()->symbianSvgIcon());
     wdlg->m_symbianOptionsPage->setNetworkEnabled(app()->networkEnabled());
-    wdlg->m_maemoOptionsPage->setPngIcon(app()->maemoPngIcon());
+    wdlg->m_maemoOptionsPage->setPngIcon(app()->maemoPngIcon64());
+    wdlg->m_harmattanOptionsPage->setPngIcon(app()->maemoPngIcon80());
     connect(wdlg, SIGNAL(projectParametersChanged(QString, QString)),
         SLOT(useProjectPath(QString, QString)));
     foreach (QWizardPage *p, extensionPages)
@@ -203,7 +229,8 @@ Core::GeneratedFiles AbstractMobileAppWizard::generateFiles(const QWizard *wizar
     app()->setSymbianTargetUid(wdlg->m_symbianOptionsPage->symbianUid());
     app()->setSymbianSvgIcon(wdlg->m_symbianOptionsPage->svgIcon());
     app()->setNetworkEnabled(wdlg->m_symbianOptionsPage->networkEnabled());
-    app()->setMaemoPngIcon(wdlg->m_maemoOptionsPage->pngIcon());
+    app()->setMaemoPngIcon64(wdlg->m_maemoOptionsPage->pngIcon());
+    app()->setMaemoPngIcon80(wdlg->m_harmattanOptionsPage->pngIcon());
     return app()->generateFiles(errorMessage);
 }
 
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
index 276f05a3fe0..7e75a3e1d69 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
@@ -71,20 +71,27 @@ private:
 
     int idOfNextGenericPage() const;
     Utils::WizardProgressItem *itemOfNextGenericPage() const;
+    bool isSymbianTargetSelected() const;
+    bool isFremantleTargetSelected() const;
+    bool isHarmattanTargetSelected() const;
+    bool isMeegoTargetSelected() const;
 
     Internal::MobileAppWizardGenericOptionsPage *m_genericOptionsPage;
     Internal::MobileAppWizardSymbianOptionsPage *m_symbianOptionsPage;
     Internal::MobileAppWizardMaemoOptionsPage *m_maemoOptionsPage;
+    Internal::MobileAppWizardMaemoOptionsPage *m_harmattanOptionsPage;
     TargetSetupPage *m_targetsPage;
 
     int m_genericOptionsPageId;
     int m_symbianOptionsPageId;
     int m_maemoOptionsPageId;
+    int m_harmattanOptionsPageId;
     int m_targetsPageId;
     Utils::WizardProgressItem *m_targetItem;
     Utils::WizardProgressItem *m_genericItem;
     Utils::WizardProgressItem *m_symbianItem;
     Utils::WizardProgressItem *m_maemoItem;
+    Utils::WizardProgressItem *m_harmattanItem;
 
     friend class AbstractMobileAppWizard;
 };
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
index 20f1f979d21..c21869d7cc6 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
@@ -17,7 +17,7 @@
    <item row="0" column="0">
     <widget class="QLabel" name="appIconLabel">
      <property name="text">
-      <string>Application icon (64x64):</string>
+      <string>Application icon (%%w%%x%%h%%):</string>
      </property>
     </widget>
    </item>
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
index cfe53d100c5..285d0610c3b 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
@@ -62,6 +62,7 @@ class MobileAppWizardSymbianOptionsPagePrivate
 class MobileAppWizardMaemoOptionsPagePrivate
 {
     Ui::MobileAppWizardMaemoOptionsPage ui;
+    QSize iconSize;
     QString pngIcon;
     friend class MobileAppWizardMaemoOptionsPage;
 };
@@ -166,11 +167,18 @@ void MobileAppWizardSymbianOptionsPage::openSvgIcon()
 }
 
 
-MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(QWidget *parent)
+MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(int appIconSize,
+        QWidget *parent)
     : QWizardPage(parent)
     , m_d(new MobileAppWizardMaemoOptionsPagePrivate)
 {
     m_d->ui.setupUi(this);
+    QString iconLabelText = m_d->ui.appIconLabel->text();
+    iconLabelText.replace(QLatin1String("%%w%%"), QString::number(appIconSize));
+    iconLabelText.replace(QLatin1String("%%h%%"), QString::number(appIconSize));
+    m_d->ui.appIconLabel->setText(iconLabelText);
+    m_d->iconSize = QSize(appIconSize, appIconSize);
+    m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
     connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
 }
 
@@ -194,18 +202,18 @@ void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
         return;
     }
 
-    const QSize iconSize(64, 64);
     QString actualIconPath;
-    if (iconPixmap.size() == iconSize) {
+    if (iconPixmap.size() == m_d->iconSize) {
         actualIconPath = icon;
     } else {
         const QMessageBox::StandardButton button = QMessageBox::warning(this,
-            tr("Wrong Icon Size"), tr("The icon needs to be 64x64 pixels big, "
-                "but is not. Do you want Creator to scale it?"),
+            tr("Wrong Icon Size"), tr("The icon needs to be %1x%2 pixels big, "
+                "but is not. Do you want Creator to scale it?")
+                .arg(m_d->iconSize.width()).arg(m_d->iconSize.height()),
             QMessageBox::Ok | QMessageBox::Cancel);
         if (button != QMessageBox::Ok)
             return;
-        iconPixmap = iconPixmap.scaled(iconSize);
+        iconPixmap = iconPixmap.scaled(m_d->iconSize);
         Utils::TempFileSaver saver;
         saver.setAutoRemove(false);
         if (!saver.hasError())
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
index 1b75f14247e..3ff8dbf4591 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
@@ -85,7 +85,8 @@ class MobileAppWizardMaemoOptionsPage : public QWizardPage
     Q_DISABLE_COPY(MobileAppWizardMaemoOptionsPage)
 
 public:
-    explicit MobileAppWizardMaemoOptionsPage(QWidget *parent = 0);
+    explicit MobileAppWizardMaemoOptionsPage(int appIconSize,
+        QWidget *parent = 0);
     virtual ~MobileAppWizardMaemoOptionsPage();
 
     QString pngIcon() const;
diff --git a/tests/manual/appwizards/helpers.cpp b/tests/manual/appwizards/helpers.cpp
index f7442f8c917..826e5476877 100644
--- a/tests/manual/appwizards/helpers.cpp
+++ b/tests/manual/appwizards/helpers.cpp
@@ -56,7 +56,8 @@ bool QtQuickApp::generateFiles(QString *errorMessage) const
             && writeFile(generateFile(QtQuickAppGeneratedFileInfo::AppViewerCppFile, errorMessage), path(AppViewerCpp))
             && writeFile(generateFile(QtQuickAppGeneratedFileInfo::AppViewerHFile, errorMessage), path(AppViewerH))
             && writeFile(generateFile(QtQuickAppGeneratedFileInfo::SymbianSvgIconFile, errorMessage), path(SymbianSvgIcon))
-            && writeFile(generateFile(QtQuickAppGeneratedFileInfo::MaemoPngIconFile, errorMessage), path(MaemoPngIcon))
+            && writeFile(generateFile(QtQuickAppGeneratedFileInfo::MaemoPngIconFile64, errorMessage), path(MaemoPngIcon64))
+            && writeFile(generateFile(QtQuickAppGeneratedFileInfo::MaemoPngIconFile80, errorMessage), path(MaemoPngIcon80))
             && writeFile(generateFile(QtQuickAppGeneratedFileInfo::DesktopFile, errorMessage), path(Desktop));
 }
 
@@ -69,7 +70,8 @@ bool Html5App::generateFiles(QString *errorMessage) const
             && writeFile(generateFile(Html5AppGeneratedFileInfo::AppViewerCppFile, errorMessage), path(AppViewerCpp))
             && writeFile(generateFile(Html5AppGeneratedFileInfo::AppViewerHFile, errorMessage), path(AppViewerH))
             && writeFile(generateFile(Html5AppGeneratedFileInfo::SymbianSvgIconFile, errorMessage), path(SymbianSvgIcon))
-            && writeFile(generateFile(Html5AppGeneratedFileInfo::MaemoPngIconFile, errorMessage), path(MaemoPngIcon))
+            && writeFile(generateFile(Html5AppGeneratedFileInfo::MaemoPngIconFile64, errorMessage), path(MaemoPngIcon64))
+            && writeFile(generateFile(Html5AppGeneratedFileInfo::MaemoPngIconFile80, errorMessage), path(MaemoPngIcon80))
             && writeFile(generateFile(Html5AppGeneratedFileInfo::DesktopFile, errorMessage), path(Desktop));
 }
 
-- 
GitLab