From d5326f37c0eb567bc943e3e99ca1b4445599b32b Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@nokia.com>
Date: Wed, 3 Feb 2010 09:13:23 +0100
Subject: [PATCH] Pass library paths specified in .qmlproject file on to
 qmlviewer

---
 src/plugins/qmlprojectmanager/qmlproject.cpp | 20 +++++++++++++++++++-
 src/plugins/qmlprojectmanager/qmlproject.h   |  1 +
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 40203453b3f..07a959531e6 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -211,6 +211,14 @@ QStringList QmlProject::files() const
     return files;
 }
 
+QStringList QmlProject::libraryPaths() const
+{
+    QStringList libraryPaths;
+    if (m_projectItem)
+        libraryPaths = m_projectItem.data()->libraryPaths();
+    return libraryPaths;
+}
+
 void QmlProject::refreshProjectFile()
 {
     refresh(QmlProject::ProjectFile | Files);
@@ -403,9 +411,18 @@ QStringList QmlRunConfiguration::viewerArguments() const
 {
     QStringList args;
 
+    // arguments in .user file
     if (!m_qmlViewerArgs.isEmpty())
         args.append(m_qmlViewerArgs);
 
+    // arguments from .qmlproject file
+    if (qmlProject()) {
+        foreach (const QString &libraryPath, qmlProject()->libraryPaths()) {
+            args.append(QLatin1String("-L"));
+            args.append(libraryPath);
+        }
+    }
+
     const QString s = mainScript();
     if (! s.isEmpty())
         args.append(s);
@@ -642,7 +659,8 @@ void QmlRunControl::start()
 {
     m_applicationLauncher.start(ApplicationLauncher::Gui, m_executable, m_commandLineArguments);
     emit started();
-    emit addToOutputWindow(this, tr("Starting %1...").arg(QDir::toNativeSeparators(m_executable)));
+    emit addToOutputWindow(this, tr("Starting %1 %2").arg(QDir::toNativeSeparators(m_executable),
+                           m_commandLineArguments.join(QLatin1String(" "))));
 }
 
 void QmlRunControl::stop()
diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h
index b1dd6852287..b229221f196 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.h
+++ b/src/plugins/qmlprojectmanager/qmlproject.h
@@ -186,6 +186,7 @@ public:
 
     QDir projectDir() const;
     QStringList files() const;
+    QStringList libraryPaths() const;
 
 private slots:
     void refreshProjectFile();
-- 
GitLab