[nemiver/remote-load-on-connect] Initial support for 'load' upon remote connection



commit 50fb2325341ce6e5964f0432e6a17a5f0fa10f87
Author: Dodji Seketeli <dodji seketeli org>
Date:   Thu Nov 24 16:51:28 2011 +0100

    Initial support for 'load' upon remote connection
    
    	* src/dbgengine/nmv-i-debugger.h (attach_to_remote_target): Add a
    	flag to load the inferior upon connection.
    	* src/dbgengine/nmv-gdb-engine.h (attach_to_remote_target):
    	Likewise.
    	* src/dbgengine/nmv-gdb-engine.cc (attach_to_remote_target):
    	Issue a "monitor reset" and a "load" command after connection if
    	the flag is set.
    	* src/persp/dbgperspective/ui/remotetargetdialog.ui: Add a check
    	box to choose to issue the "load" command upon connection.
    	* src/persp/dbgperspective/nmv-remote-target-dialog.h
    	(get_load_inferior_after_connect)
    	(set_load_inferior_after_connect): New methods.
    	* src/persp/dbgperspective/nmv-remote-target-dialog.cc
    	(RemoteTargetDialog::Priv::{get_load_inferior_after_connect,
    	set_load_inferior_after_connect}): New methods.
    	(RemoteTargetDialog::{get_load_inferior_after_connect,
    	set_load_inferior_after_connect}): Likewise.
    	* src/persp/dbgperspective/nmv-dbg-perspective.h
    	(connect_to_remote_target, reconnect_to_remote_target): Add a flag
    	to load the inferior upon connection.
    	* src/persp/dbgperspective/nmv-dbg-perspective.cc
    	(record_and_save_session): Save the flag to load inferior upon
    	connection into the session.
    	(execute_session): Load that flag from the session and use it to
    	reconnect.
    	(connect_to_remote_target): Use the new flag, possibly set by the
    	check box in the dialog.
    	(reconnect_to_remote_target): Likewise.
    	(pre_fill_remote_target_dialog): Handle the new flag.
    	* main.c: Add a new --load-inferior-after-connect command line
    	switch.
    	(process_gui_options): Pass the result of that new command line
    	switch to the debugging perspective.

 src/dbgengine/nmv-gdb-engine.cc                    |   16 ++-
 src/dbgengine/nmv-gdb-engine.h                     |    6 +-
 src/dbgengine/nmv-i-debugger.h                     |    6 +-
 src/main.cc                                        |   17 ++-
 src/persp/dbgperspective/nmv-dbg-perspective.cc    |   52 +++++--
 src/persp/dbgperspective/nmv-dbg-perspective.h     |    6 +-
 .../dbgperspective/nmv-remote-target-dialog.cc     |   38 +++++-
 .../dbgperspective/nmv-remote-target-dialog.h      |    3 +
 src/persp/dbgperspective/ui/remotetargetdialog.ui  |  146 +++++++++++++------
 9 files changed, 220 insertions(+), 70 deletions(-)
---
diff --git a/src/dbgengine/nmv-gdb-engine.cc b/src/dbgengine/nmv-gdb-engine.cc
index b9b7436..3606a01 100644
--- a/src/dbgengine/nmv-gdb-engine.cc
+++ b/src/dbgengine/nmv-gdb-engine.cc
@@ -3113,17 +3113,29 @@ GDBEngine::attach_to_target (unsigned int a_pid,
 
 bool
 GDBEngine::attach_to_remote_target (const UString &a_host,
-				    unsigned a_port)
+				    unsigned a_port,
+                                    bool a_load_inferior_on_connect)
 {
+    LOG_FUNCTION_SCOPE_NORMAL_DD;
     queue_command (Command ("-target-select remote " + a_host +
                             ":" + UString::from_int (a_port)));
+    if (a_load_inferior_on_connect) {
+        queue_command (Command ("monitor reset halt"));
+        queue_command (Command ("load"));
+    }
     return true;
 }
 
 bool
-GDBEngine::attach_to_remote_target (const UString &a_serial_line)
+GDBEngine::attach_to_remote_target (const UString &a_serial_line,
+                                    bool a_load_inferior_on_connect)
 {
+    LOG_FUNCTION_SCOPE_NORMAL_DD;
     queue_command (Command ("-target-select remote " + a_serial_line));
+    if (a_load_inferior_on_connect) {
+        queue_command (Command ("monitor reset halt"));
+        queue_command (Command ("load"));
+    }
     return true;
 }
 
diff --git a/src/dbgengine/nmv-gdb-engine.h b/src/dbgengine/nmv-gdb-engine.h
index 11b1668..4478e96 100644
--- a/src/dbgengine/nmv-gdb-engine.h
+++ b/src/dbgengine/nmv-gdb-engine.h
@@ -294,9 +294,11 @@ public:
     bool attach_to_target (unsigned int a_pid,
                            const UString &a_tty_path);
 
-    bool attach_to_remote_target (const UString &a_host, unsigned a_port);
+    bool attach_to_remote_target (const UString &a_host, unsigned a_port,
+				  bool a_load_inferior_on_connect);
 
-    bool attach_to_remote_target (const UString &a_serial_line);
+    bool attach_to_remote_target (const UString &a_serial_line,
+				  bool a_load_inferior_on_connect);
 
     void detach_from_target (const UString &a_cookie);
 
diff --git a/src/dbgengine/nmv-i-debugger.h b/src/dbgengine/nmv-i-debugger.h
index 6fb5fff..c72509b 100644
--- a/src/dbgengine/nmv-i-debugger.h
+++ b/src/dbgengine/nmv-i-debugger.h
@@ -1140,9 +1140,11 @@ public:
                                    const UString &a_tty_path="") = 0;
 
     virtual bool attach_to_remote_target (const UString &a_host,
-                                          unsigned a_port) = 0;
+                                          unsigned a_port,
+                                          bool a_load_inferior_on_connect) = 0;
 
-    virtual bool attach_to_remote_target (const UString &a_serial_line) = 0;
+    virtual bool attach_to_remote_target (const UString &a_serial_line,
+                                          bool a_load_inferior_on_connect) = 0;
 
     virtual void detach_from_target (const UString &a_cookie="") = 0;
 
diff --git a/src/main.cc b/src/main.cc
index 7f2bdf8..486e438 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -63,6 +63,7 @@ static bool gv_show_version = false;
 static bool gv_use_launch_terminal = false;
 static gchar *gv_remote = 0;
 static gchar *gv_solib_prefix = 0;
+static bool gv_load_inferior_after_connect = false;
 static gchar *gv_gdb_binary_filepath = 0;
 
 static GOptionEntry entries[] =
@@ -161,6 +162,16 @@ static GOptionEntry entries[] =
         "</path/to/prefix>"
     },
     {
+        "load-inferior-after-connect",
+        0,
+        0,
+        G_OPTION_ARG_NONE,
+        &gv_load_inferior_after_connect,
+        _("Whether to issue a \"load\" command after connecting to the "
+          "remote target.  Use in conjunction with --remote"),
+        0
+    },
+    {
         "gdb-binary",
         0,
         0,
@@ -591,13 +602,15 @@ process_gui_options (int& a_argc, char** a_argv)
                 // "host:port", so let's try to connect to that.
                 debug_persp->connect_to_remote_target (host, port,
                                                        prog_path,
-                                                       solib_prefix);
+                                                       solib_prefix,
+                                                       gv_load_inferior_after_connect);
             } else {
                 // We think gv_remote contains a serial line address.
                 // Let's try to connect via the serial line then.
                 debug_persp->connect_to_remote_target (gv_remote,
                                                        prog_path,
-                                                       solib_prefix);
+                                                       solib_prefix,
+                                                       gv_load_inferior_after_connect);
             }
 	} else if (!prog_path.empty ()) {
             // The user wants to debug a local program
diff --git a/src/persp/dbgperspective/nmv-dbg-perspective.cc b/src/persp/dbgperspective/nmv-dbg-perspective.cc
index 7f00a2d..48e964e 100644
--- a/src/persp/dbgperspective/nmv-dbg-perspective.cc
+++ b/src/persp/dbgperspective/nmv-dbg-perspective.cc
@@ -125,6 +125,7 @@ const char *PROGRAM_ARGS = "programarguments";
 const char *PROGRAM_CWD = "programcwd";
 const char *LAST_RUN_TIME = "lastruntime";
 const char *REMOTE_TARGET = "remotetarget";
+const char *LOAD_INFERIOR_AFTER_CONNECT = "loadinferiorafterconnect";
 const char *SOLIB_PREFIX = "solibprefix";
 
 const char *DBG_PERSPECTIVE_MOUSE_MOTION_DOMAIN =
@@ -585,15 +586,18 @@ public:
     void connect_to_remote_target (const UString &a_server_address,
                                    unsigned a_server_port,
                                    const UString &a_prog_path,
-                                   const UString &a_solib_prefix);
+                                   const UString &a_solib_prefix,
+                                   bool a_load_inferior_on_connect);
 
     void connect_to_remote_target (const UString &a_serial_line,
                                    const UString &a_prog_path,
-                                   const UString &a_solib_prefix);
+                                   const UString &a_solib_prefix,
+                                   bool a_load_inferior_on_connect);
 
     void reconnect_to_remote_target (const UString &a_remote_target,
                                      const UString &a_prog_path,
-                                     const UString &a_solib_prefix);
+                                     const UString &a_solib_prefix,
+                                     bool a_load_inferior_on_connect);
 
     void pre_fill_remote_target_dialog (RemoteTargetDialog &a_dialog);
 
@@ -853,6 +857,7 @@ struct DBGPerspective::Priv {
     vector<UString> prog_args;
     UString prog_cwd;
     UString remote_target;
+    bool load_inferior_after_connect;
     UString solib_prefix;
     map<UString, UString> env_variables;
     list<UString> session_search_paths;
@@ -962,6 +967,7 @@ struct DBGPerspective::Priv {
         reused_session (false),
         debugger_has_just_run (false),
         debugger_engine_alive (false),
+        load_inferior_after_connect (false),
         menubar_merge_id (0),
         toolbar_merge_id (0),
         contextual_menu_merge_id(0),
@@ -4976,6 +4982,10 @@ DBGPerspective::record_and_save_session (ISessMgr::Session &a_session)
     a_session.properties ()[PROGRAM_CWD] = m_priv->prog_cwd;
     a_session.properties ()[REMOTE_TARGET] = m_priv->remote_target;
     a_session.properties ()[SOLIB_PREFIX] = m_priv->solib_prefix;
+    a_session.properties ()[LOAD_INFERIOR_AFTER_CONNECT] =
+        (m_priv->load_inferior_after_connect)
+        ? "true"
+        : "false";
 
     GTimeVal timeval;
     g_get_current_time (&timeval);
@@ -5743,8 +5753,14 @@ DBGPerspective::execute_session (ISessMgr::Session &a_session)
         if ((it = a_session.properties ().find (SOLIB_PREFIX)) != nil)
             solib_prefix = it->second;
     
+    bool load_inferior_after_connect =
+        (a_session.properties ()[LOAD_INFERIOR_AFTER_CONNECT] == "true")
+        ? true:
+        false;
+    
     if (!remote_target.empty ())
-        reconnect_to_remote_target (remote_target, prog_name, solib_prefix);
+        reconnect_to_remote_target (remote_target, prog_name, solib_prefix,
+                                    load_inferior_after_connect);
     else
         execute_program (prog_name,
                          args,
@@ -6103,11 +6119,13 @@ DBGPerspective::connect_to_remote_target ()
         == RemoteTargetDialog::TCP_CONNECTION_TYPE) {
         connect_to_remote_target (dialog.get_server_address (),
                                   dialog.get_server_port (),
-                                  path, solib_prefix);
+                                  path, solib_prefix,
+                                  dialog.get_load_inferior_after_connect ());
     } else if (dialog.get_connection_type ()
                == RemoteTargetDialog::SERIAL_CONNECTION_TYPE) {
         connect_to_remote_target (dialog.get_serial_port_name (),
-                                  path, solib_prefix);
+                                  path, solib_prefix,
+                                  dialog.get_load_inferior_after_connect ());
     }
 }
 
@@ -6115,7 +6133,8 @@ void
 DBGPerspective::connect_to_remote_target (const UString &a_server_address,
                                           unsigned a_server_port,
                                           const UString &a_prog_path,
-                                          const UString &a_solib_prefix)
+                                          const UString &a_solib_prefix,
+                                          bool a_load_inferior_on_connect)
 {
     LOG_FUNCTION_SCOPE_NORMAL_DD
     THROW_IF_FAIL (debugger ());
@@ -6139,7 +6158,8 @@ DBGPerspective::connect_to_remote_target (const UString &a_server_address,
     LOG_DD ("solib prefix path: '" <<  a_solib_prefix << "'");
     debugger ()->set_solib_prefix_path (a_solib_prefix);
     debugger ()->attach_to_remote_target (a_server_address,
-                                          a_server_port);
+                                          a_server_port,
+                                          a_load_inferior_on_connect);
     std::ostringstream remote_target;
     remote_target << a_server_address << ":" << a_server_port;
     m_priv->remote_target = remote_target.str ();
@@ -6150,7 +6170,8 @@ DBGPerspective::connect_to_remote_target (const UString &a_server_address,
 void
 DBGPerspective::connect_to_remote_target (const UString &a_serial_line,
                                           const UString &a_prog_path,
-                                          const UString &a_solib_prefix)
+                                          const UString &a_solib_prefix,
+                                          bool a_load_inferior_on_connect)
 {
     LOG_FUNCTION_SCOPE_NORMAL_DD
     THROW_IF_FAIL (debugger ());
@@ -6173,7 +6194,8 @@ DBGPerspective::connect_to_remote_target (const UString &a_serial_line,
     }
     LOG_DD ("solib prefix path: '" <<  a_solib_prefix << "'");
     debugger ()->set_solib_prefix_path (a_solib_prefix);
-    debugger ()->attach_to_remote_target (a_serial_line);
+    debugger ()->attach_to_remote_target (a_serial_line,
+                                          a_load_inferior_on_connect);
 
     std::ostringstream remote_target;
     remote_target << a_serial_line;
@@ -6185,7 +6207,8 @@ DBGPerspective::connect_to_remote_target (const UString &a_serial_line,
 void
 DBGPerspective::reconnect_to_remote_target (const UString &a_remote_target,
                                             const UString &a_prog_path,
-                                            const UString &a_solib_prefix)
+                                            const UString &a_solib_prefix,
+                                            bool a_load_inferior_on_connect)
 {
     if (a_remote_target.empty ())
         return;
@@ -6196,12 +6219,14 @@ DBGPerspective::reconnect_to_remote_target (const UString &a_remote_target,
         // Try to connect via IP
         connect_to_remote_target (host, port,
                                   a_prog_path,
-                                  a_solib_prefix);
+                                  a_solib_prefix,
+                                  a_load_inferior_on_connect);
     else
         // Try to connect via the serial line
         connect_to_remote_target (a_remote_target,
                                   a_prog_path,
-                                  a_solib_prefix);    
+                                  a_solib_prefix,
+                                  a_load_inferior_on_connect);
 }
 
 bool
@@ -6240,6 +6265,7 @@ DBGPerspective::pre_fill_remote_target_dialog (RemoteTargetDialog &a_dialog)
     } else {
         a_dialog.set_serial_port_name (m_priv->remote_target);
     }
+    a_dialog.set_load_inferior_after_connect (m_priv->load_inferior_after_connect);
 }
 
 void
diff --git a/src/persp/dbgperspective/nmv-dbg-perspective.h b/src/persp/dbgperspective/nmv-dbg-perspective.h
index ddb00ff..831600f 100644
--- a/src/persp/dbgperspective/nmv-dbg-perspective.h
+++ b/src/persp/dbgperspective/nmv-dbg-perspective.h
@@ -121,11 +121,13 @@ public:
     virtual void connect_to_remote_target (const UString &a_server_address,
 					   unsigned a_server_port,
                                            const UString &a_prog_path,
-                                           const UString &a_solib_prefix) = 0;
+                                           const UString &a_solib_prefix,
+					   bool load_inferior_after_connect) = 0;
 
     virtual void connect_to_remote_target (const UString &a_serial_line,
                                            const UString &a_prog_path,
-                                           const UString &a_solib_prefix) = 0;
+                                           const UString &a_solib_prefix,
+					   bool load_inferior_after_connect) = 0;
 
     virtual void load_core_file () = 0;
 
diff --git a/src/persp/dbgperspective/nmv-remote-target-dialog.cc b/src/persp/dbgperspective/nmv-remote-target-dialog.cc
index 22cdc0b..b61dc03 100644
--- a/src/persp/dbgperspective/nmv-remote-target-dialog.cc
+++ b/src/persp/dbgperspective/nmv-remote-target-dialog.cc
@@ -43,13 +43,16 @@ struct RemoteTargetDialog::Priv {
     mutable UString server_address;
     mutable UString serial_port_name;
     enum RemoteTargetDialog::ConnectionType connection_type;
+    mutable bool load_inferior_after_connect;
 
     Priv ();
 
     Priv (Gtk::Dialog &a_dialog,
           const Glib::RefPtr<Gtk::Builder> &a_gtkbuilder) :
         dialog (a_dialog),
-        gtkbuilder (a_gtkbuilder)
+        gtkbuilder (a_gtkbuilder),
+        connection_type (RemoteTargetDialog::TCP_CONNECTION_TYPE),
+        load_inferior_after_connect (false)
     {
         init_members ();
         init_from_gtkbuilder ();
@@ -326,6 +329,25 @@ struct RemoteTargetDialog::Priv {
         chooser->select_filename (a_name);
     }
 
+    bool
+    get_load_inferior_after_connect () const
+    {
+        Gtk::CheckButton *cb =
+            get_widget_from_gtkbuilder<Gtk::CheckButton>
+            (gtkbuilder, "loadafterconnectcheckbutton");
+        load_inferior_after_connect = cb->get_active ();
+        return load_inferior_after_connect;
+    }
+
+    void
+    set_load_inferior_after_connect (bool a_flag)
+    {
+        Gtk::CheckButton *cb =
+            get_widget_from_gtkbuilder<Gtk::CheckButton>
+            (gtkbuilder, "loadafterconnectcheckbutton");
+        cb->set_active (a_flag);
+    }
+
 };//end RemoteTargetDialog::Priv
 
 RemoteTargetDialog::RemoteTargetDialog (const UString &a_root_path) :
@@ -438,4 +460,18 @@ RemoteTargetDialog::set_serial_port_name (const UString &a_serial)
     return m_priv->set_serial_port_name (a_serial);
 }
 
+bool
+RemoteTargetDialog::get_load_inferior_after_connect () const
+{
+    THROW_IF_FAIL (m_priv);
+    return m_priv->get_load_inferior_after_connect ();
+}
+
+void
+RemoteTargetDialog::set_load_inferior_after_connect (bool a_flag)
+{
+    THROW_IF_FAIL (m_priv);
+    return m_priv->set_load_inferior_after_connect (a_flag);
+}
+
 NEMIVER_END_NAMESPACE (nemiver)
diff --git a/src/persp/dbgperspective/nmv-remote-target-dialog.h b/src/persp/dbgperspective/nmv-remote-target-dialog.h
index 32042c6..afbe34c 100644
--- a/src/persp/dbgperspective/nmv-remote-target-dialog.h
+++ b/src/persp/dbgperspective/nmv-remote-target-dialog.h
@@ -62,6 +62,9 @@ public:
 
     const UString& get_serial_port_name () const;
     void set_serial_port_name (const UString &a_serial);
+
+    bool get_load_inferior_after_connect () const;
+    void set_load_inferior_after_connect (bool);
 };//end RemoteTargetDialog
 
 NEMIVER_END_NAMESPACE (nemiver)
diff --git a/src/persp/dbgperspective/ui/remotetargetdialog.ui b/src/persp/dbgperspective/ui/remotetargetdialog.ui
index 466faac..176762b 100644
--- a/src/persp/dbgperspective/ui/remotetargetdialog.ui
+++ b/src/persp/dbgperspective/ui/remotetargetdialog.ui
@@ -1,9 +1,9 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 2.6 -->
-  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkDialog" id="remotetargetdialog">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
     <property name="title" translatable="yes">Connect to Remote Target</property>
     <property name="resizable">False</property>
     <property name="modal">True</property>
@@ -11,19 +11,66 @@
     <property name="default_height">300</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkBox" id="dialog-vbox1">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
         <property name="spacing">6</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancelbutton">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="okbutton">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
         <child>
           <object class="GtkVBox" id="vbox1">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="border_width">6</property>
-            <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Executable to Load&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -38,22 +85,26 @@
             <child>
               <object class="GtkAlignment" id="alignment2">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="border_width">6</property>
                 <child>
                   <object class="GtkFileChooserButton" id="execfilechooserbutton">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="title" translatable="yes">Choose a File</property>
                   </object>
                 </child>
               </object>
               <packing>
                 <property name="expand">False</property>
+                <property name="fill">True</property>
                 <property name="position">1</property>
               </packing>
             </child>
             <child>
               <object class="GtkLabel" id="solibprefixlabesolibprefixlabel">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Shared Libraries Location&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -68,10 +119,12 @@
             <child>
               <object class="GtkAlignment" id="alignmentfoo">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="border_width">6</property>
                 <child>
                   <object class="GtkFileChooserButton" id="solibprefixchooserbutton">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="action">select-folder</property>
                     <property name="title" translatable="yes">Choose a Directory</property>
                   </object>
@@ -79,12 +132,14 @@
               </object>
               <packing>
                 <property name="expand">False</property>
+                <property name="fill">True</property>
                 <property name="position">3</property>
               </packing>
             </child>
             <child>
               <object class="GtkLabel" id="label2">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="xalign">0</property>
                 <property name="label" translatable="yes">&lt;b&gt;Remote Debugging Server&lt;/b&gt;</property>
                 <property name="use_markup">True</property>
@@ -98,17 +153,19 @@
             <child>
               <object class="GtkAlignment" id="alignment3">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="border_width">6</property>
                 <child>
                   <object class="GtkVBox" id="vbox2">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
+                    <property name="can_focus">False</property>
                     <child>
                       <object class="GtkRadioButton" id="tcpradiobutton">
                         <property name="label" translatable="yes">TCP/IP Connection</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
                       </object>
@@ -121,10 +178,12 @@
                     <child>
                       <object class="GtkAlignment" id="tcpconnectioncontainer">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="border_width">6</property>
                         <child>
                           <object class="GtkTable" id="table2">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="n_columns">4</property>
                             <property name="column_spacing">6</property>
                             <property name="row_spacing">6</property>
@@ -143,6 +202,7 @@
                             <child>
                               <object class="GtkLabel" id="label6">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">Port :</property>
                               </object>
@@ -156,6 +216,7 @@
                             <child>
                               <object class="GtkLabel" id="label5">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">Address :</property>
                               </object>
@@ -179,6 +240,8 @@
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
@@ -188,6 +251,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
+                        <property name="use_action_appearance">False</property>
                         <property name="use_underline">True</property>
                         <property name="draw_indicator">True</property>
                         <property name="group">tcpradiobutton</property>
@@ -201,68 +265,58 @@
                     <child>
                       <object class="GtkAlignment" id="serialconnectioncontainer">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="border_width">6</property>
                         <child>
                           <object class="GtkFileChooserButton" id="serialchooserbutton">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                           </object>
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkAlignment" id="alignment4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkCheckButton" id="loadafterconnectcheckbutton">
+                            <property name="label" translatable="yes">Load inferior after connection</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0.50999999046325684</property>
+                            <property name="draw_indicator">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">4</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="position">5</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="cancelbutton">
-                <property name="label">gtk-cancel</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="okbutton">
-                <property name="label">gtk-ok</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
             <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]