diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index a7651566a1d4d8f9db3190e3e521b26775752baa..f65944933ee331a6b3b0044028fe6371ab4675fd 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -55,6 +55,7 @@ #include <QtGui/QMainWindow> #include <QtGui/QComboBox> #include <QtGui/QMessageBox> +#include <QtGui/QLineEdit> using namespace QmlProjectManager; using namespace QmlProjectManager::Internal; @@ -365,6 +366,9 @@ QStringList QmlRunConfiguration::commandLineArguments() const { QStringList args; + if (!m_qmlViewerArgs.isEmpty()) + args.append(m_qmlViewerArgs); + const QString s = mainScript(); if (! s.isEmpty()) args.append(s); @@ -424,7 +428,12 @@ QWidget *QmlRunConfiguration::configurationWidget() qmlViewer->setPath(executable()); connect(qmlViewer, SIGNAL(changed(QString)), this, SLOT(onQmlViewerChanged())); + QLineEdit *qmlViewerArgs = new QLineEdit; + qmlViewerArgs->setText(m_qmlViewerArgs); + connect(qmlViewerArgs, SIGNAL(textChanged(QString)), this, SLOT(onQmlViewerArgsChanged())); + form->addRow(tr("QML Viewer"), qmlViewer); + form->addRow(tr("QML Viewer arguments:"), qmlViewerArgs); form->addRow(tr("Main QML File:"), combo); return config; @@ -454,11 +463,18 @@ void QmlRunConfiguration::onQmlViewerChanged() } } +void QmlRunConfiguration::onQmlViewerArgsChanged() +{ + if (QLineEdit *lineEdit = qobject_cast<QLineEdit*>(sender())) + m_qmlViewerArgs = lineEdit->text(); +} + void QmlRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writer) const { ProjectExplorer::LocalApplicationRunConfiguration::save(writer); writer.saveValue(QLatin1String("qmlviewer"), m_qmlViewer); + writer.saveValue(QLatin1String("qmlviewerargs"), m_qmlViewerArgs); writer.saveValue(QLatin1String("mainscript"), m_scriptFile); } @@ -467,6 +483,7 @@ void QmlRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReade ProjectExplorer::LocalApplicationRunConfiguration::restore(reader); m_qmlViewer = reader.restoreValue(QLatin1String("qmlviewer")).toString(); + m_qmlViewerArgs = reader.restoreValue(QLatin1String("qmlviewerargs")).toString(); m_scriptFile = reader.restoreValue(QLatin1String("mainscript")).toString(); if (m_qmlViewer.isEmpty()) diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h index 90ee0c99f7b4a2ba918080819a8d81cb3656fa5c..b53a3930d93ce8b2867db5b6f4dc62e8510d2299 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.h +++ b/src/plugins/qmlprojectmanager/qmlproject.h @@ -166,6 +166,7 @@ public: private Q_SLOTS: void setMainScript(const QString &scriptFile); void onQmlViewerChanged(); + void onQmlViewerArgsChanged(); private: @@ -175,6 +176,7 @@ private: QmlProject *m_project; QString m_scriptFile; QString m_qmlViewer; + QString m_qmlViewerArgs; QLatin1String m_type; };