diff options
author | Dan Williams <dcbw@redhat.com> | 2005-06-18 04:29:28 +0000 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2005-06-18 04:29:28 +0000 |
commit | 9dc27a206114536a89f28363871aa83a7b5751dc (patch) | |
tree | 796856022b0a4a712608ce36d222d8a9dcf25e98 | |
parent | 90fbd240b5863b1d2854930fdd7111d28c1a4261 (diff) | |
download | NetworkManager-9dc27a206114536a89f28363871aa83a7b5751dc.tar.gz |
2005-06-17 Dan Williams <dcbw@redhat.com>
* panel-applet/NMWirelessAppletDbus.c
- Alphabetize wireless networks in the applet menu
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/branches/STABLE_0_3@715 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | panel-applet/NMWirelessAppletDbus.c | 37 |
2 files changed, 40 insertions, 2 deletions
@@ -1,5 +1,10 @@ 2005-06-17 Dan Williams <dcbw@redhat.com> + * panel-applet/NMWirelessAppletDbus.c + - Alphabetize wireless networks in the applet menu + +2005-06-17 Dan Williams <dcbw@redhat.com> + Backport Wireless Scan Methods from HEAD 2005-06-17 Dan Williams <dcbw@redhat.com> diff --git a/panel-applet/NMWirelessAppletDbus.c b/panel-applet/NMWirelessAppletDbus.c index 68a20e3ac4..4e8879e80c 100644 --- a/panel-applet/NMWirelessAppletDbus.c +++ b/panel-applet/NMWirelessAppletDbus.c @@ -998,6 +998,36 @@ void network_device_add_wireless_network (NetworkDevice *dev, WirelessNetwork *n } +static int sort_networks_function (WirelessNetwork *a, WirelessNetwork *b) +{ + const char *name_a = a->essid; + const char *name_b = b->essid; + + if (name_a && !name_b) + return -1; + else if (!name_a && name_b) + return 1; + else if (!name_a && !name_b) + return 0; + else + return strcasecmp (name_a, name_b); +} + +/* + * network_device_sort_wireless_networks + * + * Alphabetize the wireless networks list + * + */ +void network_device_sort_wireless_networks (NetworkDevice *dev) +{ + g_return_if_fail (dev != NULL); + g_return_if_fail (dev->type == DEVICE_TYPE_WIRELESS_ETHERNET); + + dev->networks = g_slist_sort (dev->networks, (GCompareFunc) sort_networks_function); +} + + /* * nmwa_dbus_get_one_wireless_network * @@ -1159,9 +1189,12 @@ void nmwa_copy_data_model (NMWirelessApplet *applet) for (elt = applet->dbus_device_list; elt; elt = g_slist_next (elt)) { NetworkDevice *src = (NetworkDevice *)(elt->data); - NetworkDevice *dst = network_device_copy (src); + NetworkDevice *dst = NULL; + + if (src->type == DEVICE_TYPE_WIRELESS_ETHERNET) + network_device_sort_wireless_networks (src); - if (dst) + if ((dst = network_device_copy (src))) { /* Transfer ownership of device to list, don't need to unref it */ applet->gui_device_list = g_slist_append (applet->gui_device_list, dst); |