diff options
Diffstat (limited to 'src/plugins/qtsupport/gettingstartedwelcomepage.cpp')
-rw-r--r-- | src/plugins/qtsupport/gettingstartedwelcomepage.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp index de33e6e959..3f96fc4ca1 100644 --- a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp +++ b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp @@ -47,6 +47,7 @@ #include <QtCore/QMutexLocker> #include <QtCore/QWeakPointer> #include <QtCore/QWaitCondition> +#include <QtCore/QDir> #include <QtGui/QGraphicsProxyWidget> #include <QtGui/QScrollBar> #include <QtGui/QSortFilterProxyModel> @@ -254,7 +255,7 @@ QStringList GettingStartedWelcomePage::tagList() const return examplesModel()->tags(); } -QString GettingStartedWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileInfo, QStringList &filesToOpen) +QString GettingStartedWelcomePage::copyToAlternativeLocation(const QFileInfo& proFileInfo, QStringList &filesToOpen, const QStringList& dependencies) { const QString projectDir = proFileInfo.canonicalPath(); QDialog d(Core::ICore::instance()->mainWindow()); @@ -309,6 +310,15 @@ QString GettingStartedWelcomePage::copyToAlternativeLocation(const QFileInfo& pr 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); @@ -320,7 +330,8 @@ QString GettingStartedWelcomePage::copyToAlternativeLocation(const QFileInfo& pr } -void GettingStartedWelcomePage::openProject(const QString &projectFile, const QStringList &additionalFilesToOpen, const QUrl &help) +void GettingStartedWelcomePage::openProject(const QString &projectFile, const QStringList &additionalFilesToOpen, + const QUrl &help, const QStringList &dependencies) { QString proFile = projectFile; if (proFile.isEmpty()) @@ -330,7 +341,7 @@ void GettingStartedWelcomePage::openProject(const QString &projectFile, const QS 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; |