[network-manager-applet] applet: pass the list of connections to add_menu_item
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet] applet: pass the list of connections to add_menu_item
- Date: Tue, 21 May 2013 19:59:43 +0000 (UTC)
commit f488c0578947301a7d2b35371119d37497fb9141
Author: Dan Winship <danw gnome org>
Date: Thu May 16 11:30:06 2013 -0400
applet: pass the list of connections to add_menu_item
Each device type was building up its list of connections the same way;
just have applet.c do this instead and pass the connections to the
device.
Also, none of the device types cared about the exact number of other
devices of their type; merely whether or not there were any. So just
pass a "gboolean multiple_devices" instead of "guint32 n_devices".
src/applet-device-broadband.c | 13 ++++---------
src/applet-device-bt.c | 10 ++--------
src/applet-device-cdma.c | 13 ++++---------
src/applet-device-ethernet.c | 12 +++---------
src/applet-device-gsm.c | 13 ++++---------
src/applet-device-wifi.c | 12 ++++--------
src/applet-device-wimax.c | 13 ++++---------
src/applet.c | 18 ++++++++++++++----
src/applet.h | 3 ++-
9 files changed, 41 insertions(+), 66 deletions(-)
---
diff --git a/src/applet-device-broadband.c b/src/applet-device-broadband.c
index be5c8e0..aa0275d 100644
--- a/src/applet-device-broadband.c
+++ b/src/applet-device-broadband.c
@@ -695,7 +695,8 @@ add_connection_item (NMDevice *device,
static void
add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
@@ -703,15 +704,11 @@ add_menu_item (NMDevice *device,
BroadbandDeviceInfo *info;
char *text;
GtkWidget *item;
- GSList *connections, *all, *iter;
+ GSList *iter;
info = g_object_get_data (G_OBJECT (device), "devinfo");
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -786,8 +783,6 @@ add_menu_item (NMDevice *device,
add_connection_item (device, NULL, item, menu, applet);
}
}
-
- g_slist_free (connections);
}
/********************************************************************/
diff --git a/src/applet-device-bt.c b/src/applet-device-bt.c
index d6d864d..580268d 100644
--- a/src/applet-device-bt.c
+++ b/src/applet-device-bt.c
@@ -55,18 +55,14 @@ bt_new_auto_connection (NMDevice *device,
static void
bt_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple__devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
{
const char *text;
GtkWidget *item;
- GSList *connections, *all;
-
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
text = nm_device_bt_get_name (NM_DEVICE_BT (device));
if (!text)
@@ -95,8 +91,6 @@ bt_add_menu_item (NMDevice *device,
applet_add_connection_items (device, connections, TRUE, active, NMA_ADD_INACTIVE,
menu, applet);
}
}
-
- g_slist_free (connections);
}
static void
diff --git a/src/applet-device-cdma.c b/src/applet-device-cdma.c
index bee9a5e..1640d47 100644
--- a/src/applet-device-cdma.c
+++ b/src/applet-device-cdma.c
@@ -227,7 +227,8 @@ cdma_act_to_mb_act (CdmaDeviceInfo *info)
static void
cdma_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
@@ -235,15 +236,11 @@ cdma_add_menu_item (NMDevice *device,
CdmaDeviceInfo *info;
char *text;
GtkWidget *item;
- GSList *connections, *all, *iter;
+ GSList *iter;
info = g_object_get_data (G_OBJECT (device), "devinfo");
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -318,8 +315,6 @@ cdma_add_menu_item (NMDevice *device,
add_connection_item (device, NULL, item, menu, applet);
}
}
-
- g_slist_free (connections);
}
static void
diff --git a/src/applet-device-ethernet.c b/src/applet-device-ethernet.c
index b06c06f..30b19c8 100644
--- a/src/applet-device-ethernet.c
+++ b/src/applet-device-ethernet.c
@@ -77,21 +77,17 @@ ethernet_new_auto_connection (NMDevice *device,
static void
ethernet_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
{
char *text;
GtkWidget *item;
- GSList *connections, *all;
gboolean carrier = TRUE;
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -139,8 +135,6 @@ ethernet_add_menu_item (NMDevice *device,
else
applet_add_default_connection_item (device, DEFAULT_ETHERNET_NAME, carrier, menu,
applet);
}
-
- g_slist_free (connections);
}
static void
diff --git a/src/applet-device-gsm.c b/src/applet-device-gsm.c
index ebc7e5f..4409b58 100644
--- a/src/applet-device-gsm.c
+++ b/src/applet-device-gsm.c
@@ -283,7 +283,8 @@ gsm_act_to_mb_act (GsmDeviceInfo *info)
static void
gsm_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
@@ -291,15 +292,11 @@ gsm_add_menu_item (NMDevice *device,
GsmDeviceInfo *info;
char *text;
GtkWidget *item;
- GSList *connections, *all, *iter;
+ GSList *iter;
info = g_object_get_data (G_OBJECT (device), "devinfo");
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -374,8 +371,6 @@ gsm_add_menu_item (NMDevice *device,
add_connection_item (device, NULL, item, menu, applet);
}
}
-
- g_slist_free (connections);
}
static void
diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c
index 9710c6c..68af55b 100644
--- a/src/applet-device-wifi.c
+++ b/src/applet-device-wifi.c
@@ -759,7 +759,8 @@ sort_toplevel (gconstpointer tmpa, gconstpointer tmpb)
static void
wifi_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
@@ -769,7 +770,7 @@ wifi_add_menu_item (NMDevice *device,
const GPtrArray *aps;
int i;
NMAccessPoint *active_ap = NULL;
- GSList *connections = NULL, *all, *iter;
+ GSList *iter;
gboolean wifi_enabled = TRUE;
gboolean wifi_hw_enabled = TRUE;
GSList *menu_items = NULL; /* All menu items we'll be adding */
@@ -779,7 +780,7 @@ wifi_add_menu_item (NMDevice *device,
wdev = NM_DEVICE_WIFI (device);
aps = nm_device_wifi_get_access_points (wdev);
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -797,10 +798,6 @@ wifi_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget);
gtk_widget_show (widget);
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
/* Add the active AP if we're connected to something and the device is available */
if (!nma_menu_device_check_unusable (device)) {
active_ap = nm_device_wifi_get_active_access_point (wdev);
@@ -903,7 +900,6 @@ wifi_add_menu_item (NMDevice *device,
out:
g_slist_free (menu_items);
- g_slist_free (connections);
}
static void
diff --git a/src/applet-device-wimax.c b/src/applet-device-wimax.c
index df6cca9..faa3b05 100644
--- a/src/applet-device-wimax.c
+++ b/src/applet-device-wimax.c
@@ -204,7 +204,8 @@ sort_nsps (gconstpointer a, gconstpointer b)
static void
wimax_add_menu_item (NMDevice *device,
- guint32 n_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet)
@@ -212,7 +213,7 @@ wimax_add_menu_item (NMDevice *device,
NMDeviceWimax *wimax = NM_DEVICE_WIMAX (device);
char *text;
GtkWidget *item;
- GSList *connections, *all, *iter, *sorted = NULL;
+ GSList *iter, *sorted = NULL;
const GPtrArray *nsps;
NMWimaxNsp *active_nsp = NULL;
gboolean wimax_enabled, wimax_hw_enabled;
@@ -220,7 +221,7 @@ wimax_add_menu_item (NMDevice *device,
nsps = nm_device_wimax_get_nsps (wimax);
- if (n_devices > 1) {
+ if (multiple_devices) {
const char *desc;
desc = nma_utils_get_device_description (device);
@@ -274,10 +275,6 @@ wimax_add_menu_item (NMDevice *device,
if (g_slist_length (sorted)) {
applet_menu_item_add_complex_separator_helper (menu, applet, _("Available"), -1);
- all = applet_get_all_connections (applet);
- connections = nm_device_filter_connections (device, all);
- g_slist_free (all);
-
/* And add menu items for each NSP */
for (iter = sorted; iter; iter = g_slist_next (iter)) {
NMWimaxNsp *nsp = NM_WIMAX_NSP (iter->data);
@@ -290,8 +287,6 @@ wimax_add_menu_item (NMDevice *device,
gtk_widget_show (item);
}
}
-
- g_slist_free (connections);
}
g_slist_free (sorted);
diff --git a/src/applet.c b/src/applet.c
index 2469021..6f7e0b0 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -1583,13 +1583,17 @@ nma_menu_add_devices (GtkWidget *menu, NMApplet *applet)
/* Add all devices in our device list to the menu */
for (iter = devices; iter; iter = iter->next) {
NMDevice *device = NM_DEVICE (iter->data);
- gint n_devices = 0;
+ gint n_devices;
NMADeviceClass *dclass;
NMConnection *active;
+ GSList *all, *connections;
/* Ignore unsupported devices */
if (!(nm_device_get_capabilities (device) & NM_DEVICE_CAP_NM_SUPPORTED))
continue;
+ dclass = get_device_class (device, applet);
+ if (!dclass)
+ continue;
if (NM_IS_DEVICE_WIFI (device))
n_devices = n_wifi_devices;
@@ -1597,12 +1601,18 @@ nma_menu_add_devices (GtkWidget *menu, NMApplet *applet)
n_devices = n_ethernet_devices;
else if (NM_IS_DEVICE_MODEM (device))
n_devices = n_mb_devices;
+ else
+ n_devices = 0;
+
+ all = applet_get_all_connections (applet);
+ connections = nm_device_filter_connections (device, all);
+ g_slist_free (all);
active = applet_find_active_connection_for_device (device, applet, NULL);
- dclass = get_device_class (device, applet);
- if (dclass)
- dclass->add_menu_item (device, n_devices, active, menu, applet);
+ dclass->add_menu_item (device, n_devices > 1, connections, active, menu, applet);
+
+ g_slist_free (connections);
}
out:
diff --git a/src/applet.h b/src/applet.h
index 45415d4..45a9723 100644
--- a/src/applet.h
+++ b/src/applet.h
@@ -229,7 +229,8 @@ struct NMADeviceClass {
gpointer callback_data);
void (*add_menu_item) (NMDevice *device,
- guint32 num_devices,
+ gboolean multiple_devices,
+ GSList *connections,
NMConnection *active,
GtkWidget *menu,
NMApplet *applet);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]