Add an icon beside wifi network connection names, to make it easier to understand how the applet sorts networks. The icon goes next to the signal strength bars, and plays nicely with ad-hoc icons.
Note: patches tested on version 0.9.10.0 from Debian's source tree. They also apply cleanly to the current git HEAD, 8dc6064. Signed-off-by: David Williams-King <[email protected]> --- diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c index f595e9f..c749cf3 100644 --- a/src/applet-device-wifi.c +++ b/src/applet-device-wifi.c @@ -582,6 +633,7 @@ create_new_ap_item (NMDeviceWifi *device, nm_network_menu_item_set_detail (item, ap, applet->adhoc_icon, dev_caps); nm_network_menu_item_best_strength (item, nm_access_point_get_strength (ap), applet); nm_network_menu_item_add_dupe (item, ap); + nm_network_menu_item_set_configured(item); g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); diff --git a/src/ap-menu-item.h b/src/ap-menu-item.h index d1b478b..f31b59d 100644 --- a/src/ap-menu-item.h +++ b/src/ap-menu-item.h @@ -48,6 +48,7 @@ struct _NMNetworkMenuItem char * ssid_string; GtkWidget * strength; guint32 int_strength; + GtkWidget * configured; GtkWidget * detail; GtkWidget * hbox; gchar * hash; @@ -79,6 +80,7 @@ void nm_network_menu_item_best_strength (NMNetworkMenuItem *item, guint8 strength, NMApplet *applet); const char *nm_network_menu_item_get_hash (NMNetworkMenuItem * item); +void nm_network_menu_item_set_configured (NMNetworkMenuItem *item); void nm_network_menu_item_set_detail (NMNetworkMenuItem * item, NMAccessPoint * ap, GdkPixbuf * adhoc_icon, diff --git a/src/ap-menu-item.c b/src/ap-menu-item.c index ad60d6b..c823d7f 100644 --- a/src/ap-menu-item.c +++ b/src/ap-menu-item.c @@ -43,10 +43,12 @@ nm_network_menu_item_init (NMNetworkMenuItem * item) item->ssid = gtk_label_new (NULL); gtk_misc_set_alignment (GTK_MISC (item->ssid), 0.0, 0.5); + item->configured = gtk_image_new (); item->detail = gtk_image_new (); gtk_container_add (GTK_CONTAINER (item), item->hbox); gtk_box_pack_start (GTK_BOX (item->hbox), item->ssid, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (item->hbox), item->configured, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (item->hbox), item->detail, FALSE, FALSE, 0); item->strength = gtk_image_new (); @@ -54,6 +56,7 @@ nm_network_menu_item_init (NMNetworkMenuItem * item) gtk_widget_show (item->ssid); gtk_widget_show (item->strength); + gtk_widget_show (item->configured); gtk_widget_show (item->detail); gtk_widget_show (item->hbox); } @@ -84,6 +87,7 @@ nm_network_menu_item_class_dispose (GObject *object) gtk_widget_destroy (item->ssid); gtk_widget_destroy (item->strength); + gtk_widget_destroy (item->configured); gtk_widget_destroy (item->detail); gtk_widget_destroy (item->hbox); @@ -195,6 +199,25 @@ nm_network_menu_item_get_hash (NMNetworkMenuItem * item) } void +nm_network_menu_item_set_configured (NMNetworkMenuItem *item) +{ + /* Use the stock preferences icon to indicate a configured connection */ + if (item->has_connections) { + gtk_image_set_from_stock (GTK_IMAGE (item->configured), GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU); + + /* If the ad-hoc icon is not shown, its padding still takes up space, + * so move it out of the way. + */ + if (!item->is_adhoc) { + gtk_box_reorder_child (GTK_BOX (item->hbox), item->detail, 1); + } + } + else { + gtk_image_set_from_stock (GTK_IMAGE (item->configured), NULL, GTK_ICON_SIZE_MENU); + } +} + +void nm_network_menu_item_set_detail (NMNetworkMenuItem *item, NMAccessPoint *ap, GdkPixbuf *adhoc_icon, _______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
