summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport/gettingstartedwelcomepage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qtsupport/gettingstartedwelcomepage.cpp')
-rw-r--r--src/plugins/qtsupport/gettingstartedwelcomepage.cpp17
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;