Re: [gnome-network]patch for integrating the gnome system tools with gnome-netinfo



El lun, 15-12-2003 a las 17:58, William Jon McCann escribió:
> Hi,
> 
> This is a good idea.
> 
> I think it would be a bit better to:
> 
> - make the network tool configurable via gconf [1]

the best way it could be done (IMHO) is like the clock applet does for a
time tool, there are two or three tools hardcoded, if they don't exist
then it fallbacks to a gconf key, and if it isn't defined then it warns
the user

> 
> - add redhat-config-network to the default list of configuration tools 
> to search for (as a convenience to many users)

I don't know if the redhat tool provides command line options for
configuring a single interface like the network-admin tool does (and
BTW, I'd like to encourage the use of GST as a more general and uniform
tools than the redhat ones, as they work in redhat and many more
distros, but those are personal/political issues that you'll surely
don't mind :)

> 
> - hide the configure button for the loopback device since it cannot be 
> configured

well, it made more sense for me to put it unsensitive, but I'll do it

> 
> - remove unused variable iface from on_configure_button_clicked()

oops :)

> 
> You can take a look at gnome-netstatus for examples of the first two items.
> 
> Thanks,
> Jon
> 
> [1] This brings up an interesting problem.  Mark's netstatus applet does 
> the same thing.  Very possibly there are other places that also do this 
> too.  Is there a GNOME-wide place to store such things once, rather than 
> per application?  I think there should be.  Otherwise, configuring this 
> would be a real pain for sysadmins.
> 
> 
> Carlos Garnacho wrote:
> > Hi all,
> > 
> > I've attached a patch that adds a button for throwing the interface
> > configuring dialog of the GST from the gnome-netinfo tool, it also hides
> > the button when the program cannot be found in the path
> > 
> > is it ok to commit? :)
> > 
> > 	regards
> > 
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > ? gnome-netinfo.diff
> > Index: ChangeLog
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/ChangeLog,v
> > retrieving revision 1.102
> > diff -u -r1.102 ChangeLog
> > --- ChangeLog	5 Dec 2003 02:27:22 -0000	1.102
> > +++ ChangeLog	15 Dec 2003 15:51:21 -0000
> > @@ -1,3 +1,13 @@
> > +2003-12-15  Carlos Garnacho Parro  <garnacho tuxerver net>
> > +
> > +	* callbacks.[ch]: (on_configure_button_clicked): added
> > +	* info.[ch]: (info_get_nic_information): made it to set unsensitive
> > +	  the configure button when the selecting the loopback interface
> > +	* main.c: added configure button, made it to hide it when the tool
> > +	  doesn't exist in the path
> > +	* gnome-netinfo.glade: added a button for throwing the GST network
> > +	  tool
> > +
> >  2003-12-01  Bastien Nocera  <hadess hadess net>
> >                                                                                  
> >  	* main.c: (load_whois_widgets_from_xml): we don't have a "user"
> > Index: callbacks.c
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/callbacks.c,v
> > retrieving revision 1.29
> > diff -u -r1.29 callbacks.c
> > --- callbacks.c	20 Nov 2003 22:11:05 -0000	1.29
> > +++ callbacks.c	15 Dec 2003 15:51:22 -0000
> > @@ -37,6 +37,7 @@
> >  #include "lookup.h"
> >  #include "finger.h"
> >  #include "whois.h"
> > +#include "utils.h"
> >  
> >  /* Ping callbacks */
> >  void
> > @@ -99,6 +100,33 @@
> >  }
> >  #endif
> >  
> > +void
> > +on_configure_button_clicked (GtkButton *button, gpointer data)
> > +{
> > +	gchar *tool_path;
> > +	GString *command_line;
> > +	GtkEntry *nic_entry;
> > +	Netinfo *info;
> > +	gchar *iface;
> > +	
> > +	g_return_if_fail (data != NULL);
> > +	info = (Netinfo *) data;
> > +
> > +	nic_entry = GTK_ENTRY (info->nic);
> > +	tool_path = util_find_program_in_path (NETWORK_TOOL, NULL);
> > +
> > +	if (tool_path) {
> > +		command_line = g_string_new (tool_path);
> > +		g_string_append (command_line, " --configure ");
> > +		g_string_append (command_line, gtk_entry_get_text (nic_entry));
> > +
> > +		g_spawn_command_line_async (command_line->str, NULL);
> > +
> > +		g_string_free (command_line, TRUE);
> > +		g_free (tool_path);
> > +	}
> > +}
> > +
> >  /* Scan callbacks */
> >  void
> >  on_scan_activate (GtkWidget * widget, gpointer data)
> > Index: callbacks.h
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/callbacks.h,v
> > retrieving revision 1.12
> > diff -u -r1.12 callbacks.h
> > --- callbacks.h	20 Nov 2003 22:11:05 -0000	1.12
> > +++ callbacks.h	15 Dec 2003 15:51:22 -0000
> > @@ -16,6 +16,8 @@
> >  
> >  void on_whois_activate (GtkWidget * editable, gpointer data);
> >  
> > +void on_configure_button_clicked (GtkButton * widget, gpointer data);
> > +
> >  /* General stuff */
> >  void gn_quit_app (GtkWidget * widget, gpointer data);
> >  
> > Index: gnome-netinfo.glade
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/gnome-netinfo.glade,v
> > retrieving revision 1.30
> > diff -u -r1.30 gnome-netinfo.glade
> > --- gnome-netinfo.glade	24 Nov 2003 16:51:03 -0000	1.30
> > +++ gnome-netinfo.glade	15 Dec 2003 15:51:33 -0000
> > @@ -239,6 +239,75 @@
> >  			  <property name="fill">False</property>
> >  			</packing>
> >  		      </child>
> > +
> > +		      <child>
> > +			<widget class="GtkButton" id="info_configure_button">
> > +			  <property name="visible">True</property>
> > +			  <property name="can_focus">True</property>
> > +			  <property name="relief">GTK_RELIEF_NORMAL</property>
> > +
> > +			  <child>
> > +			    <widget class="GtkAlignment" id="alignment13">
> > +			      <property name="visible">True</property>
> > +			      <property name="xalign">0.5</property>
> > +			      <property name="yalign">0.5</property>
> > +			      <property name="xscale">0</property>
> > +			      <property name="yscale">0</property>
> > +
> > +			      <child>
> > +				<widget class="GtkHBox" id="hbox33">
> > +				  <property name="visible">True</property>
> > +				  <property name="homogeneous">False</property>
> > +				  <property name="spacing">2</property>
> > +
> > +				  <child>
> > +				    <widget class="GtkImage" id="image13">
> > +				      <property name="visible">True</property>
> > +				      <property name="stock">gtk-execute</property>
> > +				      <property name="icon_size">4</property>
> > +				      <property name="xalign">0.5</property>
> > +				      <property name="yalign">0.5</property>
> > +				      <property name="xpad">0</property>
> > +				      <property name="ypad">0</property>
> > +				    </widget>
> > +				    <packing>
> > +				      <property name="padding">0</property>
> > +				      <property name="expand">False</property>
> > +				      <property name="fill">False</property>
> > +				    </packing>
> > +				  </child>
> > +
> > +				  <child>
> > +				    <widget class="GtkLabel" id="label86">
> > +				      <property name="visible">True</property>
> > +				      <property name="label" translatable="yes">_Configure</property>
> > +				      <property name="use_underline">True</property>
> > +				      <property name="use_markup">False</property>
> > +				      <property name="justify">GTK_JUSTIFY_LEFT</property>
> > +				      <property name="wrap">False</property>
> > +				      <property name="selectable">False</property>
> > +				      <property name="xalign">0.5</property>
> > +				      <property name="yalign">0.5</property>
> > +				      <property name="xpad">0</property>
> > +				      <property name="ypad">0</property>
> > +				    </widget>
> > +				    <packing>
> > +				      <property name="padding">0</property>
> > +				      <property name="expand">False</property>
> > +				      <property name="fill">False</property>
> > +				    </packing>
> > +				  </child>
> > +				</widget>
> > +			      </child>
> > +			    </widget>
> > +			  </child>
> > +			</widget>
> > +			<packing>
> > +			  <property name="padding">0</property>
> > +			  <property name="expand">False</property>
> > +			  <property name="fill">False</property>
> > +			</packing>
> > +		      </child>
> >  		    </widget>
> >  		    <packing>
> >  		      <property name="padding">0</property>
> > Index: info.c
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/info.c,v
> > retrieving revision 1.19
> > diff -u -r1.19 info.c
> > --- info.c	20 Nov 2003 21:12:42 -0000	1.19
> > +++ info.c	15 Dec 2003 15:51:34 -0000
> > @@ -259,12 +259,16 @@
> >  				gtk_label_set_text (GTK_LABEL (info->hw_address), _("Loopback"));
> >  				gtk_label_set_text (GTK_LABEL (info->broadcast), " ");
> >  				gtk_label_set_text (GTK_LABEL (info->link_speed), " ");
> > +
> > +				gtk_widget_set_sensitive (GTK_WIDGET (info->button), FALSE);
> >  			} else {
> >  				if (data.has_data) {
> >  					gtk_label_set_text (GTK_LABEL (info->link_speed), data.media);
> >  				} else {
> >  					gtk_label_set_text (GTK_LABEL (info->link_speed), NOT_AVAILABLE);
> >  				}
> > +
> > +				gtk_widget_set_sensitive (GTK_WIDGET (info->button), TRUE);
> >  			}
> >  			
> >  			/* Supports multicast */
> > Index: info.h
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/info.h,v
> > retrieving revision 1.8
> > diff -u -r1.8 info.h
> > --- info.h	24 Jul 2003 17:21:11 -0000	1.8
> > +++ info.h	15 Dec 2003 15:51:34 -0000
> > @@ -27,6 +27,8 @@
> >  #define NOT_AVAILABLE _("not available")
> >  #define DELAY_STATS 1000  /* 1 second */
> >  
> > +#define NETWORK_TOOL "network-admin"
> > +
> >  /* Solaris store the MTU in ifr_metric, and doesn't have 
> >     ifr_mtu define */
> >  #if !defined(ifr_mtu)
> > Index: main.c
> > ===================================================================
> > RCS file: /cvs/gnome/gnome-network/gnome-netinfo/main.c,v
> > retrieving revision 1.41
> > diff -u -r1.41 main.c
> > --- main.c	5 Dec 2003 02:27:22 -0000	1.41
> > +++ main.c	15 Dec 2003 15:51:36 -0000
> > @@ -34,6 +34,7 @@
> >  #include "lookup.h"
> >  #include "finger.h"
> >  #include "whois.h"
> > +#include "utils.h"
> >  
> >  Netinfo *load_ping_widgets_from_xml (GladeXML * xml);
> >  Netinfo *load_traceroute_widgets_from_xml (GladeXML * xml);
> > @@ -60,6 +61,7 @@
> >  	Netinfo *finger;
> >  	Netinfo *whois;
> >  	gchar *icon_path;
> > +	gchar *tool_path;
> >  
> >  #ifdef ENABLE_NLS
> >  	bindtextdomain (GETTEXT_PACKAGE, GNOME_NETINFO_LOCALEDIR);
> > @@ -110,6 +112,13 @@
> >  
> >  	gtk_widget_show_all (window);
> >  
> > +	tool_path = util_find_program_in_path (NETWORK_TOOL, NULL);
> > +
> > +	if (!tool_path)
> > +		gtk_widget_hide (GTK_WIDGET (info->button));
> > +
> > +	g_free (tool_path);
> > +	
> >  	gtk_main ();
> >  
> >  	g_free (pinger);
> > @@ -290,9 +299,12 @@
> >  	info->rx = glade_xml_get_widget (xml, "info_rx");
> >  	info->rx_errors = glade_xml_get_widget (xml, "info_rx_errors");
> >  	info->collisions = glade_xml_get_widget (xml, "info_collisions");
> > +	info->button = glade_xml_get_widget (xml, "info_configure_button");
> >  
> >  	vbox_info = glade_xml_get_widget (xml, "vbox_info");
> >  
> > +	info->button_callback = G_CALLBACK (on_configure_button_clicked);
> > +
> >  /*
> >  #ifdef IFCONFIG_PROGRAM
> >  */
> > @@ -302,7 +314,11 @@
> >  	g_signal_connect (G_OBJECT (info->nic), "changed",
> >  				  G_CALLBACK (info_nic_changed),
> >  				  info);
> > +	g_signal_connect (G_OBJECT (info->button), "clicked",
> > +			  info->button_callback,
> > +			  info);
> >  	info_load_iface (info, combo);
> > +
> >  /*
> >  #else
> >  	gtk_widget_set_sensitive (vbox_info, FALSE);
> 
> _______________________________________________
> gnome-network-list mailing list
> gnome-network-list gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-network-list
> 



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