diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp index d11d4c30147..18ef662638a 100644 --- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp +++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp @@ -257,6 +257,28 @@ QByteArray AbstractMobileApp::generateProFile(QString *errorMessage) const } else if (line.contains(QLatin1String("# NETWORKACCESS")) && !networkEnabled()) { commentOutNextLine = true; + } else if (line.contains(QLatin1String("# DEPLOYMENTFOLDERS"))) { + // Eat lines + QString nextLine; + while (!(nextLine = in.readLine()).isNull() + && !nextLine.contains(QLatin1String("# DEPLOYMENTFOLDERS_END"))) + { } + if (nextLine.isNull()) + continue; + + int foldersCount = 0; + QStringList folders; + foreach (const DeploymentFolder &folder, deploymentFolders()) { + foldersCount++; + const QString folderName = + QString::fromLatin1("folder_%1").arg(foldersCount, 2, 10, QLatin1Char('0')); + out << folderName << ".source = " << folder.first << endl; + if (!folder.second.isEmpty()) + out << folderName << ".target = " << folder.second << endl; + folders.append(folderName); + } + if (foldersCount > 0) + out << "DEPLOYMENTFOLDERS = " << folders.join(QLatin1String(" ")) << endl; } else { handleCurrentProFileTemplateLine(line, in, out, commentOutNextLine); } diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h index 259ce376446..1d32ebab95b 100644 --- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h +++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h @@ -35,6 +35,7 @@ #define ABSTRACTMOBILEAPP_H #include +#include #ifndef CREATORLESSTEST #include @@ -67,6 +68,8 @@ struct AbstractGeneratedFileInfo quint16 statedChecksum; // The checksum in the file header }; +typedef QPair DeploymentFolder; // QPair<.source, .target> + class AbstractMobileApp : public QObject { Q_OBJECT @@ -163,6 +166,7 @@ private: QTextStream &proFileTemplate, QTextStream &proFile, bool &commentOutNextLine) const = 0; virtual QList updateableFiles(const QString &mainProFile) const = 0; + virtual QList deploymentFolders() const = 0; QString m_projectName; QFileInfo m_projectPath; diff --git a/src/plugins/qt4projectmanager/wizards/html5app.cpp b/src/plugins/qt4projectmanager/wizards/html5app.cpp index b8c9d44727e..5ed9c716186 100644 --- a/src/plugins/qt4projectmanager/wizards/html5app.cpp +++ b/src/plugins/qt4projectmanager/wizards/html5app.cpp @@ -124,20 +124,7 @@ void Html5App::handleCurrentProFileTemplateLine(const QString &line, bool &commentOutNextLine) const { Q_UNUSED(commentOutNextLine) - if (line.contains(QLatin1String("# DEPLOYMENTFOLDERS"))) { - // Eat lines - QString nextLine; - while (!(nextLine = proFileTemplate.readLine()).isNull() - && !nextLine.contains(QLatin1String("# DEPLOYMENTFOLDERS_END"))) - { } - if (nextLine.isNull()) - return; - QStringList folders; - proFile << "folder_01.source = " << path(HtmlDirProFileRelative) << endl; - proFile << "folder_01.target = ." << endl; - folders.append(QLatin1String("folder_01")); - proFile << "DEPLOYMENTFOLDERS = " << folders.join(QLatin1String(" ")) << endl; - } else if (line.contains(QLatin1String("# INCLUDE_DEPLOYMENT_PRI"))) { + if (line.contains(QLatin1String("# INCLUDE_DEPLOYMENT_PRI"))) { proFileTemplate.readLine(); // eats 'include(deployment.pri)' } } @@ -225,6 +212,13 @@ QList Html5App::updateableFiles(const QString &mainPr return result; } +QList Html5App::deploymentFolders() const +{ + QList result; + result.append(DeploymentFolder(path(HtmlDirProFileRelative), QLatin1String("."))); + return result; +} + const int Html5App::StubVersion = 10; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/wizards/html5app.h b/src/plugins/qt4projectmanager/wizards/html5app.h index 69b0c562e89..42c0bb0a776 100644 --- a/src/plugins/qt4projectmanager/wizards/html5app.h +++ b/src/plugins/qt4projectmanager/wizards/html5app.h @@ -101,6 +101,7 @@ private: QTextStream &proFileTemplate, QTextStream &proFile, bool &commentOutNextLine) const; QList updateableFiles(const QString &mainProFile) const; + QList deploymentFolders() const; QFileInfo m_indexHtmlFile; }; diff --git a/src/plugins/qt4projectmanager/wizards/mobileapp.cpp b/src/plugins/qt4projectmanager/wizards/mobileapp.cpp index b0b3f65694b..bee82db02bb 100644 --- a/src/plugins/qt4projectmanager/wizards/mobileapp.cpp +++ b/src/plugins/qt4projectmanager/wizards/mobileapp.cpp @@ -148,6 +148,12 @@ QList MobileApp::updateableFiles(const QString &mainP return QList(); // Nothing to update, here } +QList MobileApp::deploymentFolders() const +{ + QList result; + return result; +} + const int MobileApp::StubVersion = 2; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/wizards/mobileapp.h b/src/plugins/qt4projectmanager/wizards/mobileapp.h index fc334bdf84d..a9a1a44bcc3 100644 --- a/src/plugins/qt4projectmanager/wizards/mobileapp.h +++ b/src/plugins/qt4projectmanager/wizards/mobileapp.h @@ -81,6 +81,7 @@ private: QTextStream &proFileTemplate, QTextStream &proFile, bool &commentOutNextLine) const; QList updateableFiles(const QString &mainProFile) const; + QList deploymentFolders() const; }; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp index ee634a3eb2b..1c6653142d1 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp +++ b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp @@ -219,31 +219,7 @@ void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line, QTextStream &proFileTemplate, QTextStream &proFile, bool &commentOutNextLine) const { - if (line.contains(QLatin1String("# DEPLOYMENTFOLDERS"))) { - // Eat lines - QString nextLine; - while (!(nextLine = proFileTemplate.readLine()).isNull() - && !nextLine.contains(QLatin1String("# DEPLOYMENTFOLDERS_END"))) - { } - if (nextLine.isNull()) - return; - QStringList folders; - proFile << "folder_01.source = " << path(QmlDirProFileRelative) << endl; - proFile << "folder_01.target = qml" << endl; - folders.append(QLatin1String("folder_01")); - int foldersCount = 1; - foreach (const QmlModule *module, m_modules) { - if (module->isExternal) { - foldersCount ++; - const QString folder = - QString::fromLatin1("folder_%1").arg(foldersCount, 2, 10, QLatin1Char('0')); - folders.append(folder); - proFile << folder << ".source = " << module->path(QmlModule::ContentDir) << endl; - proFile << folder << ".target = " << module->path(QmlModule::DeployedContentBase) << endl; - } - } - proFile << "DEPLOYMENTFOLDERS = " << folders.join(QLatin1String(" ")) << endl; - } else if (line.contains(QLatin1String("# QMLJSDEBUGGER"))) { + if (line.contains(QLatin1String("# QMLJSDEBUGGER"))) { // ### disabled for now; figure out the private headers problem first. //commentOutNextLine = true; Q_UNUSED(commentOutNextLine) @@ -432,6 +408,16 @@ QList QtQuickApp::updateableFiles(const QString &main return result; } +QList QtQuickApp::deploymentFolders() const +{ + QList result; + result.append(DeploymentFolder(path(QmlDirProFileRelative), QLatin1String("qml"))); + foreach (const QmlModule *module, m_modules) + if (module->isExternal) + result.append(DeploymentFolder(module->path(QmlModule::ContentDir), module->path(QmlModule::DeployedContentBase))); + return result; +} + const int QtQuickApp::StubVersion = 10; } // namespace Internal diff --git a/src/plugins/qt4projectmanager/wizards/qtquickapp.h b/src/plugins/qt4projectmanager/wizards/qtquickapp.h index 983fefa022d..88a2f11d2ae 100644 --- a/src/plugins/qt4projectmanager/wizards/qtquickapp.h +++ b/src/plugins/qt4projectmanager/wizards/qtquickapp.h @@ -136,6 +136,7 @@ private: QTextStream &proFileTemplate, QTextStream &proFile, bool &commentOutNextLine) const; QList updateableFiles(const QString &mainProFile) const; + QList deploymentFolders() const; bool addExternalModule(const QString &uri, const QFileInfo &dir, const QFileInfo &contentDir);