OSDN Git Service

Debugger: Add 'Run in terminal' to Start External dialog.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Wed, 4 May 2011 07:21:18 +0000 (09:21 +0200)
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>
Wed, 4 May 2011 07:21:18 +0000 (09:21 +0200)
src/plugins/debugger/debuggerdialogs.cpp
src/plugins/debugger/debuggerdialogs.h
src/plugins/debugger/debuggerplugin.cpp
src/plugins/debugger/startexternaldialog.ui

index 2627e9d..8c1c333 100644 (file)
@@ -594,6 +594,16 @@ bool StartExternalDialog::breakAtMain() const
     return m_ui->checkBoxBreakAtMain->isChecked();
 }
 
+bool StartExternalDialog::runInTerminal() const
+{
+    return m_ui->checkBoxRunInTerminal->isChecked();
+}
+
+void StartExternalDialog::setRunInTerminal(bool v)
+{
+    m_ui->checkBoxRunInTerminal->setChecked(v);
+}
+
 ProjectExplorer::Abi StartExternalDialog::abi() const
 {
     return m_ui->toolChainComboBox->abi();
index a80ea34..0086ed0 100644 (file)
@@ -158,6 +158,9 @@ public:
 
     bool breakAtMain() const;
 
+    bool runInTerminal() const;
+    void setRunInTerminal(bool v);
+
     bool isValid() const;
 
 private slots:
index 71dc06b..b741b70 100644 (file)
@@ -1363,6 +1363,8 @@ void DebuggerPluginPrivate::startExternalApplication()
             configValue(_("LastExternalExecutableFile")).toString());
     dlg.setExecutableArguments(
             configValue(_("LastExternalExecutableArguments")).toString());
+    dlg.setRunInTerminal(
+            configValue(_("LastExternalRunInTerminal")).toBool());
     dlg.setWorkingDirectory(
             configValue(_("LastExternalWorkingDirectory")).toString());
     dlg.setAbiIndex(configValue(_("LastExternalAbiIndex")).toInt());
@@ -1376,6 +1378,8 @@ void DebuggerPluginPrivate::startExternalApplication()
                    dlg.executableArguments());
     setConfigValue(_("LastExternalWorkingDirectory"),
                    dlg.workingDirectory());
+    setConfigValue(_("LastExternalRunInTerminal"),
+                   dlg.runInTerminal());
     setConfigValue(_("LastExternalAbiIndex"), QVariant(dlg.abiIndex()));
 
     sp.executable = dlg.executableFile();
@@ -1384,6 +1388,7 @@ void DebuggerPluginPrivate::startExternalApplication()
     sp.debuggerCommand = dlg.debuggerCommand();
     sp.workingDirectory = dlg.workingDirectory();
     sp.displayName = sp.executable;
+    sp.useTerminal = dlg.runInTerminal();
     if (!dlg.executableArguments().isEmpty())
         sp.processArgs = dlg.executableArguments();
     // Fixme: 1 of 3 testing hacks.
index 6e1dd60..ab6047a 100644 (file)
@@ -2,14 +2,6 @@
 <ui version="4.0">
  <class>StartExternalDialog</class>
  <widget class="QDialog" name="StartExternalDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>443</width>
-    <height>213</height>
-   </rect>
-  </property>
   <property name="windowTitle">
    <string>Start Debugger</string>
   </property>
       <widget class="QLineEdit" name="argsEdit"/>
      </item>
      <item row="2" column="0">
+      <widget class="QLabel" name="labelRunInTerminal">
+       <property name="text">
+        <string>Run in &amp;terminal:</string>
+       </property>
+       <property name="buddy">
+        <cstring>checkBoxRunInTerminal</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QCheckBox" name="checkBoxRunInTerminal"/>
+     </item>
+     <item row="3" column="0">
       <widget class="QLabel" name="workingDirectoryLabel">
        <property name="text">
         <string>&amp;Working directory:</string>
        </property>
       </widget>
      </item>
-     <item row="2" column="1">
+     <item row="3" column="1">
       <widget class="Utils::PathChooser" name="workingDirectory"/>
      </item>
      <item row="4" column="0">
-      <widget class="QLabel" name="labelBreakAtMain">
+      <widget class="QLabel" name="toolChainLabel">
        <property name="text">
-        <string>Break at '&amp;main':</string>
+        <string>&amp;Tool chain:</string>
        </property>
        <property name="buddy">
-        <cstring>checkBoxBreakAtMain</cstring>
+        <cstring>toolChainComboBox</cstring>
        </property>
       </widget>
      </item>
      <item row="4" column="1">
-      <widget class="QCheckBox" name="checkBoxBreakAtMain">
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
       <widget class="Debugger::Internal::DebuggerToolChainComboBox" name="toolChainComboBox"/>
      </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="toolChainLabel">
+     <item row="5" column="0">
+      <widget class="QLabel" name="labelBreakAtMain">
        <property name="text">
-        <string>&amp;Tool chain:</string>
+        <string>Break at '&amp;main':</string>
        </property>
        <property name="buddy">
-        <cstring>toolChainComboBox</cstring>
+        <cstring>checkBoxBreakAtMain</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="1">
+      <widget class="QCheckBox" name="checkBoxBreakAtMain">
+       <property name="text">
+        <string/>
        </property>
       </widget>
      </item>