summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2005-06-18 04:29:28 +0000
committerDan Williams <dcbw@redhat.com>2005-06-18 04:29:28 +0000
commit9dc27a206114536a89f28363871aa83a7b5751dc (patch)
tree796856022b0a4a712608ce36d222d8a9dcf25e98
parent90fbd240b5863b1d2854930fdd7111d28c1a4261 (diff)
downloadNetworkManager-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--ChangeLog5
-rw-r--r--panel-applet/NMWirelessAppletDbus.c37
2 files changed, 40 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 6faf8b875b..ff6b4a97ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);