QString AbstractMobileApp::path(int fileType) const { const QString originsRootApp = originsRoot(); const QString originsRootShared = templatesRoot() + QLatin1String("shared/"); const QString mainCppFileName = QLatin1String("main.cpp"); const QString symbianIconFileName = QLatin1String("symbianicon.svg"); QString cleanProjectName = m_projectName; cleanProjectName.replace(QLatin1Char('-'), QString()); switch (fileType) { case MainCpp: return outputPathBase() + mainCppFileName; case MainCppOrigin: return originsRootApp + mainCppFileName; case AppPro: return outputPathBase() + cleanProjectName + QLatin1String(".pro"); case AppProOrigin: return originsRootApp + QLatin1String("app.pro"); case AppProPath: return outputPathBase(); case Desktop: return outputPathBase() + cleanProjectName + QLatin1String(".desktop"); case DesktopOrigin: return originsRootShared + QLatin1String("app.desktop"); case DeploymentPri: return outputPathBase() + DeploymentPriFileName; case DeploymentPriOrigin: return originsRootShared + DeploymentPriFileName; 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"); default: return pathExtended(fileType); } return QString(); }
QByteArray Html5App::appViewerCppFileCode(QString *errorMessage) const { static const char* touchNavigavigationFiles[] = { "webtouchphysicsinterface.h", "webtouchphysics.h", "webtouchevent.h", "webtouchscroller.h", "webtouchnavigation.h", "webnavigation.h", "navigationcontroller.h", "webtouchphysicsinterface.cpp", "webtouchphysics.cpp", "webtouchevent.cpp", "webtouchscroller.cpp", "webtouchnavigation.cpp", "webnavigation.cpp", "navigationcontroller.cpp", }; static const QString touchNavigavigationDir = originsRoot() + appViewerOriginsSubDir + QLatin1String("touchnavigation/"); QByteArray touchNavigavigationCode; for (size_t i = 0; i < sizeof(touchNavigavigationFiles) / sizeof(touchNavigavigationFiles[0]); ++i) { QFile touchNavigavigationFile(touchNavigavigationDir + QLatin1String(touchNavigavigationFiles[i])); if (!touchNavigavigationFile.open(QIODevice::ReadOnly)) { if (errorMessage) *errorMessage = QCoreApplication::translate("Qt4ProjectManager::AbstractMobileApp", "Could not open template file '%1'.").arg(QLatin1String(touchNavigavigationFiles[i])); return QByteArray(); } QTextStream touchNavigavigationFileIn(&touchNavigavigationFile); QString line; while (!(line = touchNavigavigationFileIn.readLine()).isNull()) { if (line.startsWith(QLatin1String("#include")) || ((line.startsWith(QLatin1String("#ifndef")) || line.startsWith(QLatin1String("#define")) || line.startsWith(QLatin1String("#endif"))) && line.endsWith(QLatin1String("_H")))) continue; touchNavigavigationCode.append(line.toLatin1()); touchNavigavigationCode.append('\n'); } } QFile appViewerCppFile(path(AppViewerCppOrigin)); if (!appViewerCppFile.open(QIODevice::ReadOnly)) { if (errorMessage) *errorMessage = QCoreApplication::translate("Qt4ProjectManager::AbstractMobileApp", "Could not open template file '%1'.").arg(path(AppViewerCppOrigin)); return QByteArray(); } QTextStream in(&appViewerCppFile); QByteArray appViewerCppCode; bool touchNavigavigationCodeInserted = false; QString line; while (!(line = in.readLine()).isNull()) { if (!touchNavigavigationCodeInserted && line == QLatin1String("#ifdef TOUCH_OPTIMIZED_NAVIGATION")) { appViewerCppCode.append(line.toLatin1()); appViewerCppCode.append('\n'); while (!(line = in.readLine()).isNull() && !line.contains(QLatin1String("#endif // TOUCH_OPTIMIZED_NAVIGATION"))) { if (!line.startsWith(QLatin1String("#include \""))) { appViewerCppCode.append(line.toLatin1()); appViewerCppCode.append('\n'); } } appViewerCppCode.append(touchNavigavigationCode); touchNavigavigationCodeInserted = true; } appViewerCppCode.append(line.toLatin1()); appViewerCppCode.append('\n'); } return appViewerCppCode; }