Re: [PATCH 2/2] network-manager-applet: more user-friendly network order



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 <dwksrc gmail com>
---
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,



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