From 80457082ea5dd274e41e1d5b102b385ca4572cc3 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Tue, 17 Mar 2009 15:11:56 +0100
Subject: [PATCH] Add a name filed to the custom executable runconfiguration
 widget

Reported on irc, and probably also have a task for that. Simply
forgotten when i first implemented it.
---
 .../customexecutablerunconfiguration.cpp      | 51 ++++++++++++++++---
 .../customexecutablerunconfiguration.h        | 10 ++++
 .../qt4projectmanager/profilereader.cpp       |  2 -
 3 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index caf65f74999..03eb8643e92 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -51,23 +51,29 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
     QFormLayout *layout = new QFormLayout();
     layout->setMargin(0);
 
-    m_executableChooser = new Core::Utils::PathChooser();
+    m_userName = new QLineEdit(this);
+    layout->addRow("Name:", m_userName);
+
+    m_executableChooser = new Core::Utils::PathChooser(this);
     m_executableChooser->setExpectedKind(Core::Utils::PathChooser::File);
     layout->addRow("Executable:", m_executableChooser);
 
-    m_commandLineArgumentsLineEdit = new QLineEdit;
+    m_commandLineArgumentsLineEdit = new QLineEdit(this);
     m_commandLineArgumentsLineEdit->setMinimumWidth(200); // this shouldn't be fixed here...
     layout->addRow("Arguments:", m_commandLineArgumentsLineEdit);
 
-    m_workingDirectory = new Core::Utils::PathChooser();
+    m_workingDirectory = new Core::Utils::PathChooser(this);
     layout->addRow("Working Directory:", m_workingDirectory);
 
-    m_useTerminalCheck = new QCheckBox(tr("Run in &Terminal"));
+    m_useTerminalCheck = new QCheckBox(tr("Run in &Terminal"), this);
     layout->addRow(QString(), m_useTerminalCheck);
 
     setLayout(layout);
     changed();
     
+
+    connect(m_userName, SIGNAL(textEdited(QString)),
+            this, SLOT(setUserName(QString)));
     connect(m_executableChooser, SIGNAL(changed()),
             this, SLOT(setExecutable()));
     connect(m_commandLineArgumentsLineEdit, SIGNAL(textEdited(const QString&)),
@@ -99,6 +105,13 @@ void CustomExecutableConfigurationWidget::setWorkingDirectory()
     m_ignoreChange = false;
 }
 
+void CustomExecutableConfigurationWidget::setUserName(const QString &name)
+{
+    m_ignoreChange = true;
+    m_runConfiguration->setUserName(name);
+    m_ignoreChange = false;
+}
+
 void CustomExecutableConfigurationWidget::termToggled(bool on)
 {
     m_ignoreChange = true;
@@ -116,10 +129,12 @@ void CustomExecutableConfigurationWidget::changed()
     m_commandLineArgumentsLineEdit->setText(ProjectExplorer::Environment::joinArgumentList(m_runConfiguration->commandLineArguments()));
     m_workingDirectory->setPath(m_runConfiguration->baseWorkingDirectory());
     m_useTerminalCheck->setChecked(m_runConfiguration->runMode() == ApplicationRunConfiguration::Console);
+    m_userName->setText(m_runConfiguration->userName());
 }
 
 CustomExecutableRunConfiguration::CustomExecutableRunConfiguration(Project *pro)
-    : ApplicationRunConfiguration(pro)
+    : ApplicationRunConfiguration(pro),
+      m_userSetName(false)
 {
     m_workingDirectory = "$BUILDDIR";
     setName("Custom Executable");
@@ -139,6 +154,11 @@ QString CustomExecutableRunConfiguration::baseExecutable() const
     return m_executable;
 }
 
+QString CustomExecutableRunConfiguration::userName() const
+{
+    return m_userName;
+}
+
 QString CustomExecutableRunConfiguration::executable() const
 {
     QString exec;
@@ -213,6 +233,8 @@ void CustomExecutableRunConfiguration::save(PersistentSettingsWriter &writer) co
     writer.saveValue("Arguments", m_cmdArguments);
     writer.saveValue("WorkingDirectory", m_workingDirectory);
     writer.saveValue("UseTerminal", m_runMode == Console);
+    writer.saveValue("UserSetName", m_userSetName);
+    writer.saveValue("UserName", m_userName);
     ApplicationRunConfiguration::save(writer);
 }
 
@@ -222,13 +244,16 @@ void CustomExecutableRunConfiguration::restore(const PersistentSettingsReader &r
     m_cmdArguments = reader.restoreValue("Arguments").toStringList();
     m_workingDirectory = reader.restoreValue("WorkingDirectory").toString();
     m_runMode = reader.restoreValue("UseTerminal").toBool() ? Console : Gui;
+    m_userSetName = reader.restoreValue("UserSetName").toBool();
+    m_userName = reader.restoreValue("UserName").toString();
     ApplicationRunConfiguration::restore(reader);
 }
 
 void CustomExecutableRunConfiguration::setExecutable(const QString &executable)
 {
     m_executable = executable;
-    setName(tr("Run %1").arg(m_executable));
+    if (!m_userSetName)
+        setName(tr("Run %1").arg(m_executable));
     emit changed();
 }
 
@@ -255,6 +280,20 @@ QWidget *CustomExecutableRunConfiguration::configurationWidget()
     return new CustomExecutableConfigurationWidget(this);
 }
 
+void CustomExecutableRunConfiguration::setUserName(const QString &name)
+{
+    if (name.isEmpty()) {
+        m_userName = name;
+        m_userSetName = false;
+        setName(tr("Run %1").arg(m_executable));
+    } else {
+        m_userName = name;
+        m_userSetName = true;
+        setName(name);
+    }
+    emit changed();
+}
+
 // Factory
 
 CustomExecutableRunConfigurationFactory::CustomExecutableRunConfigurationFactory()
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index 1f6411abceb..6d2ca1755a3 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -71,6 +71,11 @@ public:
      */
     QString baseExecutable() const;
 
+    /**
+     * Returns the name the user has set, if he has set one
+     */
+    QString userName() const;
+
     virtual ApplicationRunConfiguration::RunMode runMode() const;
     virtual QString workingDirectory() const;
     QString baseWorkingDirectory() const;
@@ -89,11 +94,14 @@ private:
     void setExecutable(const QString &executable);
     void setCommandLineArguments(const QString &commandLineArguments);
     void setWorkingDirectory(const QString &workingDirectory);
+    void setUserName(const QString &name);
     void setRunMode(RunMode runMode);
     QString m_executable;
     QString m_workingDirectory;
     QStringList m_cmdArguments;
     RunMode m_runMode;
+    bool m_userSetName;
+    QString m_userName;
 };
 
 class CustomExecutableRunConfigurationFactory : public IRunConfigurationFactory
@@ -124,6 +132,7 @@ private slots:
 
     void setExecutable();
     void setCommandLineArguments(const QString &commandLineArguments);
+    void setUserName(const QString &name);
     void setWorkingDirectory();
     void termToggled(bool);
 
@@ -131,6 +140,7 @@ private:
     bool m_ignoreChange;
     CustomExecutableRunConfiguration *m_runConfiguration;
     Core::Utils::PathChooser *m_executableChooser;
+    QLineEdit *m_userName;
     QLineEdit *m_commandLineArgumentsLineEdit;
     Core::Utils::PathChooser *m_workingDirectory;
     QCheckBox *m_useTerminalCheck;
diff --git a/src/plugins/qt4projectmanager/profilereader.cpp b/src/plugins/qt4projectmanager/profilereader.cpp
index d226efee8a8..711c38f0155 100644
--- a/src/plugins/qt4projectmanager/profilereader.cpp
+++ b/src/plugins/qt4projectmanager/profilereader.cpp
@@ -174,8 +174,6 @@ void ProFileReader::errorMessage(const QString &message)
 
 ProFile *ProFileReader::proFileFor(const QString &name)
 {
-    qDebug()<<"Asking for "<<name;
-    qDebug()<<"in "<<m_includeFiles.keys();
     QMap<QString, ProFile *>::const_iterator it = m_includeFiles.constFind(name);
     if (it == m_includeFiles.constEnd())
         return 0;
-- 
GitLab