aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Molkentin <daniel.molkentin@nokia.com>2010-11-16 19:10:13 +0100
committerDaniel Molkentin <daniel.molkentin@nokia.com>2010-11-18 15:35:41 +0100
commit08ddd9f944fa2295dd616c81e8c7eae87e676d43 (patch)
treeded4ade09f5267661b44e615e7424d0ad950b6e3
parent7ea4d2bb7b18c07bf239ad1c74f996e9ef104e88 (diff)
Move Qt QML projects to pro-based projects
Reviewed-by: dt
-rw-r--r--src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp66
1 files changed, 45 insertions, 21 deletions
diff --git a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
index 8137cb788c8..2329ba7919c 100644
--- a/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
+++ b/src/plugins/qt4projectmanager/gettingstartedwelcomepagewidget.cpp
@@ -66,6 +66,7 @@ namespace Internal {
const char ExamplePathPropertyName[] = "__qt_ExamplePath";
const char HelpPathPropertyName[] = "__qt_HelpPath";
+const char QmlMainFileName[] = "__qt_QmlMainFileName";
void PixmapDownloader::populatePixmap(QNetworkReply *reply) {
QImage image;
@@ -192,21 +193,32 @@ void GettingStartedWelcomePageWidget::parseXmlFile(QFile *file, QMenuHash &cppSu
const QString name = reader.attributes().value(QLatin1String("name")).toString();
const bool isQml = reader.attributes().value(QLatin1String("qml")).toString() == "true";
const QString localDir = reader.attributes().value(QLatin1String("filename")).toString();
- const QString extension = isQml ? QLatin1String(".qmlproject") : QLatin1String(".pro");
- const QString fileName = localDir.section(',', -1);
- const QString relativeProPath = slash + dirName + slash + localDir + slash + fileName + extension;
+ const QString fileName = localDir.section('/', -1);
+ QString replacedFileName = fileName;
+ replacedFileName.replace(QLatin1Char('-'), QString());
+ QString relativeProPath = slash + dirName + slash + localDir + slash + replacedFileName;
- QString finaleFileName = examplePath + relativeProPath;
- if (!QFile::exists(finaleFileName))
- finaleFileName = sourcePath + QLatin1String("/examples") + relativeProPath;
+ QString finalFileName = examplePath + relativeProPath + QLatin1String(".pro");
- if (!QFile::exists(finaleFileName))
+ if (!QFile::exists(finalFileName))
+ finalFileName = sourcePath + QLatin1String("/examples") + relativeProPath + QLatin1String(".pro");
+
+ if (isQml && !QFile::exists(finalFileName)) {
+ // maybe it's an old-style QML project?
+ relativeProPath = slash + dirName + slash + localDir + slash + fileName;
+ finalFileName = examplePath + relativeProPath + QLatin1String(".qmlproject");
+
+ if (!QFile::exists(finalFileName))
+ finalFileName = sourcePath + QLatin1String("/examples") + relativeProPath + QLatin1String(".qmlproject");;
+ }
+
+ if (!QFile::exists(finalFileName))
break;
- QString dirName1 = dirName;
- dirName1.replace(slash, QLatin1Char('-'));
+ QString dirNameforHelp = dirName;
+ dirNameforHelp.replace(slash, QLatin1Char('-'));
QString helpPath = QLatin1String("qthelp://com.trolltech.qt/qdoc/") +
- dirName1 +
+ dirNameforHelp +
QLatin1Char('-') + fileName + QLatin1String(".html");
QAction *exampleAction = 0;
@@ -231,8 +243,10 @@ void GettingStartedWelcomePageWidget::parseXmlFile(QFile *file, QMenuHash &cppSu
exampleAction = new QAction(name, subMenu);
subMenu->insertAction(beforeAction, exampleAction);
connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample()));
- exampleAction->setProperty(ExamplePathPropertyName, finaleFileName);
+ exampleAction->setProperty(ExamplePathPropertyName, finalFileName);
exampleAction->setProperty(HelpPathPropertyName, helpPath);
+ if (isQml)
+ exampleAction->setProperty(QmlMainFileName, fileName);
}
}
break;
@@ -339,6 +353,12 @@ void GettingStartedWelcomePageWidget::slotOpenExample()
QString helpFile = action->property(HelpPathPropertyName).toString();
QString proFile = action->property(ExamplePathPropertyName).toString();
+ QString qmlMainFileName;
+ bool isQmlProject = false;
+ if (action->dynamicPropertyNames().contains(QmlMainFileName)) {
+ qmlMainFileName = action->property(QmlMainFileName).toString();
+ isQmlProject = true;
+ }
QStringList files;
QFileInfo proFileInfo(proFile);
@@ -399,18 +419,22 @@ void GettingStartedWelcomePageWidget::slotOpenExample()
}
}
-
- QString tryFile = proFileInfo.path() + "/main.cpp";
+ QString tryFile;
files << proFile;
- if(!QFile::exists(tryFile))
- tryFile = proFileInfo.path() + '/' + proFileInfo.baseName() + ".cpp";
- // maybe it's a QML project?
- if(!QFile::exists(tryFile))
+ if (isQmlProject) {
tryFile = proFileInfo.path() + '/' + "/main.qml";
- if(!QFile::exists(tryFile))
- tryFile = proFileInfo.path() + '/' + proFileInfo.baseName() + ".qml";
- if(QFile::exists(tryFile))
- files << tryFile;
+ if(!QFile::exists(tryFile))
+ tryFile = proFileInfo.path() + "/qml/" + qmlMainFileName + ".qml";
+ // legacy qmlproject case
+ if(!QFile::exists(tryFile))
+ tryFile = proFileInfo.path() + '/' + qmlMainFileName + ".qml";
+ if(QFile::exists(tryFile))
+ files << tryFile;
+ } else {
+ tryFile = proFileInfo.path() + "/main.cpp";
+ if(!QFile::exists(tryFile))
+ tryFile = proFileInfo.path() + '/' + proFileInfo.baseName() + ".cpp";
+ }
Core::ICore::instance()->openFiles(files, Core::ICore::SwitchMode);
if (!helpFile.isEmpty())
slotOpenContextHelpPage(helpFile);