From 5a97436c0c3114ef91cab4ad5c52da9736d4a102 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Wed, 25 Mar 2009 18:29:42 +0100
Subject: [PATCH] Add a argument line edit for the cmake runconfiguration.

Even works.
---
 .../cmakerunconfiguration.cpp                 | 23 +++++++++++++++----
 .../cmakerunconfiguration.h                   |  5 ++++
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 6546207ce85..bef4185ba94 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -34,6 +34,8 @@
 
 #include <projectexplorer/environment.h>
 #include <utils/qtcassert.h>
+#include <QtGui/QFormLayout>
+#include <QtGui/QLineEdit>
 
 using namespace CMakeProjectManager;
 using namespace CMakeProjectManager::Internal;
@@ -74,8 +76,7 @@ QString CMakeRunConfiguration::workingDirectory() const
 
 QStringList CMakeRunConfiguration::commandLineArguments() const
 {
-    // TODO
-    return QStringList();
+    return ProjectExplorer::Environment::parseCombinedArgString(m_arguments);
 }
 
 ProjectExplorer::Environment CMakeRunConfiguration::environment() const
@@ -106,6 +107,7 @@ void CMakeRunConfiguration::save(ProjectExplorer::PersistentSettingsWriter &writ
     writer.saveValue("CMakeRunConfiguration.WorkingDirectory", m_workingDirectory);
     writer.saveValue("CMakeRunConfiguration.UseTerminal", m_runMode == Console);
     writer.saveValue("CMakeRunConfiguation.Title", m_title);
+    writer.saveValue("CMakeRunConfiguration.Arguments", m_arguments);
 }
 
 void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsReader &reader)
@@ -115,12 +117,25 @@ void CMakeRunConfiguration::restore(const ProjectExplorer::PersistentSettingsRea
     m_workingDirectory = reader.restoreValue("CMakeRunConfiguration.WorkingDirectory").toString();
     m_runMode = reader.restoreValue("CMakeRunConfiguration.UseTerminal").toBool() ? Console : Gui;
     m_title = reader.restoreValue("CMakeRunConfiguation.Title").toString();
+    m_arguments = reader.restoreValue("CMakeRunConfiguration.Arguments").toString();
 }
 
 QWidget *CMakeRunConfiguration::configurationWidget()
 {
-    //TODO
-    return new QWidget();
+    QWidget *widget = new QWidget();
+    QFormLayout *fl = new QFormLayout();
+    widget->setLayout(fl);
+    QLineEdit *argumentsLineEdit = new QLineEdit(widget);
+    argumentsLineEdit->setText(m_arguments);
+    connect(argumentsLineEdit, SIGNAL(textChanged(QString)),
+            this, SLOT(setArguments(QString)));
+    fl->addRow(tr("Arguments:"), argumentsLineEdit);
+    return widget;
+}
+
+void CMakeRunConfiguration::setArguments(const QString &newText)
+{
+    m_arguments = newText;
 }
 
 QString CMakeRunConfiguration::dumperLibrary() const
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 8e01eb9d645..f014894a67d 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -41,6 +41,7 @@ class CMakeProject;
 
 class CMakeRunConfiguration : public ProjectExplorer::ApplicationRunConfiguration
 {
+    Q_OBJECT
 public:
     CMakeRunConfiguration(CMakeProject *pro, const QString &target, const QString &workingDirectory, const QString &title);
     virtual ~CMakeRunConfiguration();
@@ -60,11 +61,15 @@ public:
     virtual void save(ProjectExplorer::PersistentSettingsWriter &writer) const;
     virtual void restore(const ProjectExplorer::PersistentSettingsReader &reader);
     virtual QString dumperLibrary() const;
+
+private slots:
+    void setArguments(const QString &newText);
 private:
     RunMode m_runMode;
     QString m_target;
     QString m_workingDirectory;
     QString m_title;
+    QString m_arguments;
 };
 
 /* The run configuration factory is used for restoring run configurations from
-- 
GitLab