[network-manager-applet/menu-rework: 6/18] core: display active connections on top of inactive device connections
- From: Dan Williams <dcbw src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [network-manager-applet/menu-rework: 6/18] core: display active connections on top of inactive device connections
- Date: Fri, 25 Sep 2009 05:48:24 +0000 (UTC)
commit 02fd98b6e34d1b912738a12aaf9855b4a2808ef5
Author: Alexander Sack <asac ubuntu com>
Date: Fri Sep 18 16:30:18 2009 +0200
core: display active connections on top of inactive device connections
src/applet-device-bt.c | 20 +++++++++++++++++++-
src/applet-device-cdma.c | 20 +++++++++++++++++++-
src/applet-device-gsm.c | 19 ++++++++++++++++++-
src/applet-device-wifi.c | 21 ++++++++++++---------
src/applet-device-wired.c | 20 +++++++++++++++++++-
5 files changed, 87 insertions(+), 13 deletions(-)
---
diff --git a/src/applet-device-bt.c b/src/applet-device-bt.c
index f182cef..0d2985f 100644
--- a/src/applet-device-bt.c
+++ b/src/applet-device-bt.c
@@ -81,11 +81,18 @@ bt_menu_item_activate (GtkMenuItem *item, gpointer user_data)
user_data);
}
+
+typedef enum {
+ ADD_ACTIVE = 1,
+ ADD_INACTIVE = 2,
+} AddActiveInactiveEnum;
+
static void
add_connection_items (NMDevice *device,
GSList *connections,
gboolean carrier,
NMConnection *active,
+ AddActiveInactiveEnum flag,
GtkWidget *menu,
NMApplet *applet)
{
@@ -97,6 +104,14 @@ add_connection_items (NMDevice *device,
NMSettingConnection *s_con;
GtkWidget *item, *image;
+ if (active == connection) {
+ if ((flag & ADD_ACTIVE) == 0)
+ continue;
+ } else {
+ if ((flag & ADD_INACTIVE) == 0)
+ continue;
+ }
+
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
@@ -155,6 +170,9 @@ bt_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_widget_show (item);
+ if (g_slist_length (connections))
+ add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet);
+
/* Notify user of unmanaged or unavailable device */
item = nma_menu_device_get_menu_item (device, applet, NULL);
if (item) {
@@ -165,7 +183,7 @@ bt_add_menu_item (NMDevice *device,
if (!nma_menu_device_check_unusable (device)) {
/* Add menu items for existing bluetooth connections for this device */
if (g_slist_length (connections))
- add_connection_items (device, connections, carrier, active, menu, applet);
+ add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet);
}
g_slist_free (connections);
diff --git a/src/applet-device-cdma.c b/src/applet-device-cdma.c
index 192a9f3..2e67913 100644
--- a/src/applet-device-cdma.c
+++ b/src/applet-device-cdma.c
@@ -166,10 +166,17 @@ cdma_menu_item_activate (GtkMenuItem *item, gpointer user_data)
user_data);
}
+
+typedef enum {
+ ADD_ACTIVE = 1,
+ ADD_INACTIVE = 2,
+} AddActiveInactiveEnum;
+
static void
add_connection_items (NMDevice *device,
GSList *connections,
NMConnection *active,
+ AddActiveInactiveEnum flag,
GtkWidget *menu,
NMApplet *applet)
{
@@ -181,6 +188,14 @@ add_connection_items (NMDevice *device,
NMSettingConnection *s_con;
GtkWidget *item, *image;
+ if (active == connection) {
+ if ((flag & ADD_ACTIVE) == 0)
+ continue;
+ } else {
+ if ((flag & ADD_INACTIVE) == 0)
+ continue;
+ }
+
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
@@ -269,6 +284,9 @@ cdma_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_widget_show (item);
+ if (g_slist_length (connections))
+ add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet);
+
/* Notify user of unmanaged or unavailable device */
item = nma_menu_device_get_menu_item (device, applet, NULL);
if (item) {
@@ -278,7 +296,7 @@ cdma_add_menu_item (NMDevice *device,
if (!nma_menu_device_check_unusable (device)) {
if (g_slist_length (connections))
- add_connection_items (device, connections, active, menu, applet);
+ add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet);
else
add_default_connection_item (device, menu, applet);
}
diff --git a/src/applet-device-gsm.c b/src/applet-device-gsm.c
index b1ea9f0..f949af0 100644
--- a/src/applet-device-gsm.c
+++ b/src/applet-device-gsm.c
@@ -168,10 +168,16 @@ gsm_menu_item_activate (GtkMenuItem *item, gpointer user_data)
user_data);
}
+typedef enum {
+ ADD_ACTIVE = 1,
+ ADD_INACTIVE = 2,
+} AddActiveInactiveEnum;
+
static void
add_connection_items (NMDevice *device,
GSList *connections,
NMConnection *active,
+ AddActiveInactiveEnum flag,
GtkWidget *menu,
NMApplet *applet)
{
@@ -183,6 +189,14 @@ add_connection_items (NMDevice *device,
NMSettingConnection *s_con;
GtkWidget *item, *image;
+ if (active == connection) {
+ if ((flag & ADD_ACTIVE) == 0)
+ continue;
+ } else {
+ if ((flag & ADD_INACTIVE) == 0)
+ continue;
+ }
+
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
@@ -271,6 +285,9 @@ gsm_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_widget_show (item);
+ if (g_slist_length (connections))
+ add_connection_items (device, connections, active, ADD_ACTIVE, menu, applet);
+
/* Notify user of unmanaged or unavailable device */
item = nma_menu_device_get_menu_item (device, applet, NULL);
if (item) {
@@ -280,7 +297,7 @@ gsm_add_menu_item (NMDevice *device,
if (!nma_menu_device_check_unusable (device)) {
if (g_slist_length (connections))
- add_connection_items (device, connections, active, menu, applet);
+ add_connection_items (device, connections, active, ADD_INACTIVE, menu, applet);
else
add_default_connection_item (device, menu, applet);
}
diff --git a/src/applet-device-wifi.c b/src/applet-device-wifi.c
index fa0854e..ea52be8 100644
--- a/src/applet-device-wifi.c
+++ b/src/applet-device-wifi.c
@@ -713,6 +713,9 @@ wireless_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_widget_show (item);
+ active_ap = nm_device_wifi_get_active_access_point (wdev);
+ add_one_ap_menu_item (wdev, active_ap, connections, active_ap, active, menu, applet);
+
/* Notify user of unmanaged or unavailable device */
wireless_enabled = nm_client_wireless_get_enabled (applet->nm_client);
item = nma_menu_device_get_menu_item (device, applet, wireless_enabled ? NULL : _("wireless is disabled"));
@@ -722,21 +725,21 @@ wireless_add_menu_item (NMDevice *device,
}
if (!nma_menu_device_check_unusable (device)) {
- active_ap = nm_device_wifi_get_active_access_point (wdev);
-
/* Add all networks in our network list to the menu */
for (i = 0; aps && (i < aps->len); i++)
sorted_aps = g_slist_append (sorted_aps, g_ptr_array_index (aps, i));
sorted_aps = g_slist_sort (sorted_aps, sort_wireless_networks);
for (iter = sorted_aps; iter; iter = g_slist_next (iter)) {
- add_one_ap_menu_item (wdev,
- NM_ACCESS_POINT (iter->data),
- connections,
- active_ap,
- active,
- menu,
- applet);
+ if (active_ap != NM_ACCESS_POINT (iter->data)) {
+ add_one_ap_menu_item (wdev,
+ NM_ACCESS_POINT (iter->data),
+ connections,
+ active_ap,
+ active,
+ menu,
+ applet);
+ }
}
g_slist_free (sorted_aps);
diff --git a/src/applet-device-wired.c b/src/applet-device-wired.c
index 0828c95..cd5cb92 100644
--- a/src/applet-device-wired.c
+++ b/src/applet-device-wired.c
@@ -106,11 +106,18 @@ wired_menu_item_activate (GtkMenuItem *item, gpointer user_data)
user_data);
}
+
+typedef enum {
+ ADD_ACTIVE = 1,
+ ADD_INACTIVE = 2,
+} AddActiveInactiveEnum;
+
static void
add_connection_items (NMDevice *device,
GSList *connections,
gboolean carrier,
NMConnection *active,
+ AddActiveInactiveEnum flag,
GtkWidget *menu,
NMApplet *applet)
{
@@ -122,6 +129,14 @@ add_connection_items (NMDevice *device,
NMSettingConnection *s_con;
GtkWidget *item, *image;
+ if (active == connection) {
+ if ((flag & ADD_ACTIVE) == 0)
+ continue;
+ } else {
+ if ((flag & ADD_INACTIVE) == 0)
+ continue;
+ }
+
s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
item = gtk_image_menu_item_new_with_label (nm_setting_connection_get_id (s_con));
gtk_image_menu_item_set_always_show_image(GTK_IMAGE_MENU_ITEM(item), TRUE);
@@ -227,6 +242,9 @@ wired_add_menu_item (NMDevice *device,
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
gtk_widget_show (item);
+ if (g_slist_length (connections))
+ add_connection_items (device, connections, carrier, active, ADD_ACTIVE, menu, applet);
+
/* Notify user of unmanaged or unavailable device */
item = nma_menu_device_get_menu_item (device, applet, carrier ? NULL : _("disconnected"));
if (item) {
@@ -236,7 +254,7 @@ wired_add_menu_item (NMDevice *device,
if (!nma_menu_device_check_unusable (device)) {
if (g_slist_length (connections))
- add_connection_items (device, connections, carrier, active, menu, applet);
+ add_connection_items (device, connections, carrier, active, ADD_INACTIVE, menu, applet);
else
add_default_connection_item (device, carrier, menu, applet);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]