diff options
author | Eike Ziller <eike.ziller@nokia.com> | 2011-11-28 08:34:37 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2011-11-28 08:34:37 +0100 |
commit | b50e48a1fa2a4ff17f4353dd34e5c0a0d36b348c (patch) | |
tree | 2f0ebd8b430ad11468d44e68d49bf497217e565c /src/plugins/qtsupport/gettingstartedwelcomepage.cpp | |
parent | add5c8cb7a506f159b1660396acf7f327861ba93 (diff) | |
parent | 8500fa9f6ac5de53b6e669f9a4346b14ffcb6c4f (diff) | |
download | qt-creator-b50e48a1fa2a4ff17f4353dd34e5c0a0d36b348c.tar.gz |
Merge remote-tracking branch 'origin/2.4'
Conflicts:
share/qtcreator/welcomescreen/widgets/ExampleDelegate.qml
src/plugins/qtsupport/exampleslistmodel.cpp
src/plugins/qtsupport/exampleslistmodel.h
src/plugins/qtsupport/gettingstartedwelcomepage.cpp
src/plugins/qtsupport/gettingstartedwelcomepage.h
Change-Id: I268072db01064d71bc4828942d71fc772ddd3539
Diffstat (limited to 'src/plugins/qtsupport/gettingstartedwelcomepage.cpp')
-rw-r--r-- | src/plugins/qtsupport/gettingstartedwelcomepage.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp index 757855a417..39318f9768 100644 --- a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp +++ b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp @@ -304,7 +304,7 @@ QStringList ExamplesWelcomePage::tagList() const return examplesModel()->tags(); } -QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileInfo, QStringList &filesToOpen) +QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileInfo, QStringList &filesToOpen, const QStringList& dependencies) { const QString projectDir = proFileInfo.canonicalPath(); QDialog d(Core::ICore::instance()->mainWindow()); @@ -359,6 +359,15 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI for (it = filesToOpen.begin(); it != filesToOpen.end(); ++it) it->replace(projectDir, targetDir); + foreach (const QString &dependency, dependencies) { + QString dirName = QDir(dependency).dirName(); + if (!Utils::FileUtils::copyRecursively(dependency, targetDir + QDir::separator()+ dirName, &error)) { + QMessageBox::warning(Core::ICore::instance()->mainWindow(), tr("Cannot Copy Project"), error); + // do not fail, just warn; + } + } + + return targetDir+ '/' + proFileInfo.fileName(); } else { QMessageBox::warning(Core::ICore::instance()->mainWindow(), tr("Cannot Copy Project"), error); @@ -370,7 +379,8 @@ QString ExamplesWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileI } -void ExamplesWelcomePage::openProject(const QString &projectFile, const QStringList &additionalFilesToOpen, const QUrl &help) +void ExamplesWelcomePage::openProject(const QString &projectFile, const QStringList &additionalFilesToOpen, + const QUrl &help, const QStringList &dependencies) { QString proFile = projectFile; if (proFile.isEmpty()) @@ -380,7 +390,7 @@ void ExamplesWelcomePage::openProject(const QString &projectFile, const QStringL QFileInfo proFileInfo(proFile); // If the Qt is a distro Qt on Linux, it will not be writable, hence compilation will fail if (!proFileInfo.isWritable()) - proFile = copyToAlternativeLocation(proFileInfo, filesToOpen); + proFile = copyToAlternativeLocation(proFileInfo, filesToOpen, dependencies); // don't try to load help and files if loading the help request is being cancelled QString errorMessage; |