[gnome-control-center] Use the NetworkManager modem capabilities API.
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] Use the NetworkManager modem capabilities API.
- Date: Mon, 28 Feb 2011 09:55:29 +0000 (UTC)
commit f658c8db0feb2a9efc7d71f061d69d06ea75adc0
Author: Daniel Trebbien <dtrebbien gmail com>
Date: Sun Feb 27 11:10:10 2011 -0500
Use the NetworkManager modem capabilities API.
A recent change to the NetworkManager API combined the
NM_DEVICE_TYPE_GSM and NM_DEVICE_TYPE_CDMA types as
NM_DEVICE_TYPE_MODEM and provided an alternative API for accessing the
modem device's capabilities (including GSM_UMTS and CDMA_EVDO).
https://bugzilla.gnome.org/show_bug.cgi?id=643390
Signed-off-by: Richard Hughes <richard hughsie com>
panels/network/cc-network-panel.c | 76 ++++++++++++++++++++-----------------
panels/network/panel-common.c | 51 ++++++++++++++++---------
panels/network/panel-common.h | 7 ++-
3 files changed, 78 insertions(+), 56 deletions(-)
---
diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
index 9148df7..ba37581 100644
--- a/panels/network/cc-network-panel.c
+++ b/panels/network/cc-network-panel.c
@@ -28,6 +28,7 @@
#include "nm-client.h"
#include "nm-device.h"
#include "nm-device-ethernet.h"
+#include "nm-device-modem.h"
#include "nm-device-wifi.h"
#include "nm-utils.h"
#include "nm-active-connection.h"
@@ -376,8 +377,7 @@ panel_add_device (CcNetworkPanel *panel, NMDevice *device)
/* do we have to get additonal data from ModemManager */
type = nm_device_get_device_type (device);
- if (type == NM_DEVICE_TYPE_GSM ||
- type == NM_DEVICE_TYPE_CDMA) {
+ if (type == NM_DEVICE_TYPE_MODEM) {
g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_NONE,
NULL,
@@ -400,15 +400,15 @@ panel_add_device (CcNetworkPanel *panel, NMDevice *device)
/* make title a bit bigger */
title = g_strdup_printf ("<span size=\"large\">%s</span>",
- panel_device_type_to_localized_string (nm_device_get_device_type (device)));
+ panel_device_to_localized_string (device));
liststore_devices = GTK_LIST_STORE (gtk_builder_get_object (priv->builder,
"liststore_devices"));
gtk_list_store_append (liststore_devices, &iter);
gtk_list_store_set (liststore_devices,
&iter,
- PANEL_DEVICES_COLUMN_ICON, panel_device_type_to_icon_name (nm_device_get_device_type (device)),
- PANEL_DEVICES_COLUMN_SORT, panel_device_type_to_sortable_string (nm_device_get_device_type (device)),
+ PANEL_DEVICES_COLUMN_ICON, panel_device_to_icon_name (device),
+ PANEL_DEVICES_COLUMN_SORT, panel_device_to_sortable_string (device),
PANEL_DEVICES_COLUMN_TITLE, title,
PANEL_DEVICES_COLUMN_ID, nm_device_get_udi (device),
PANEL_DEVICES_COLUMN_TOOLTIP, NULL,
@@ -729,14 +729,14 @@ nm_device_refresh_item_ui (CcNetworkPanel *panel, NMDevice *device)
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
"image_device"));
gtk_image_set_from_icon_name (GTK_IMAGE (widget),
- panel_device_type_to_icon_name (type),
+ panel_device_to_icon_name (device),
GTK_ICON_SIZE_DIALOG);
/* set device kind */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
"label_device"));
gtk_label_set_label (GTK_LABEL (widget),
- panel_device_type_to_localized_string (type));
+ panel_device_to_localized_string (device));
/* set device state */
@@ -754,10 +754,13 @@ nm_device_refresh_item_ui (CcNetworkPanel *panel, NMDevice *device)
} else if (type == NM_DEVICE_TYPE_WIFI) {
gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1);
sub_pane = "wireless";
- } else if (type == NM_DEVICE_TYPE_GSM ||
- type == NM_DEVICE_TYPE_CDMA) {
- gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 4);
- sub_pane = "mobilebb";
+ } else if (type == NM_DEVICE_TYPE_MODEM) {
+ NMDeviceModemCapabilities caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
+ if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+ (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 4);
+ sub_pane = "mobilebb";
+ }
}
if (sub_pane == NULL)
goto out;
@@ -824,30 +827,33 @@ nm_device_refresh_item_ui (CcNetworkPanel *panel, NMDevice *device)
active_ap);
}
- } else if (type == NM_DEVICE_TYPE_GSM ||
- type == NM_DEVICE_TYPE_CDMA) {
+ } else if (type == NM_DEVICE_TYPE_MODEM) {
+ NMDeviceModemCapabilities caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
- /* IMEI */
- str = g_object_get_data (G_OBJECT (device),
- "ControlCenter::EquipmentIdentifier");
- panel_set_widget_data (panel,
- sub_pane,
- "imei",
- str);
+ if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+ (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+ /* IMEI */
+ str = g_object_get_data (G_OBJECT (device),
+ "ControlCenter::EquipmentIdentifier");
+ panel_set_widget_data (panel,
+ sub_pane,
+ "imei",
+ str);
- /* operator name */
- str = g_object_get_data (G_OBJECT (device),
- "ControlCenter::OperatorName");
- panel_set_widget_data (panel,
- sub_pane,
- "provider",
- str);
+ /* operator name */
+ str = g_object_get_data (G_OBJECT (device),
+ "ControlCenter::OperatorName");
+ panel_set_widget_data (panel,
+ sub_pane,
+ "provider",
+ str);
- /* device speed */
- panel_set_widget_data (panel,
- sub_pane,
- "speed",
- NULL);
+ /* device speed */
+ panel_set_widget_data (panel,
+ sub_pane,
+ "speed",
+ NULL);
+ }
}
/* get IP4 parameters */
diff --git a/panels/network/panel-common.c b/panels/network/panel-common.c
index 928b0c4..b07189b 100644
--- a/panels/network/panel-common.c
+++ b/panels/network/panel-common.c
@@ -26,25 +26,32 @@
#include <gtk/gtk.h>
#include "panel-common.h"
+#include "nm-device-modem.h"
/**
- * panel_device_type_to_icon_name:
+ * panel_device_to_icon_name:
**/
const gchar *
-panel_device_type_to_icon_name (NMDeviceType type)
+panel_device_to_icon_name (NMDevice *device)
{
const gchar *value = NULL;
- switch (type) {
+ NMDeviceModemCapabilities caps;
+ switch (nm_device_get_device_type (device)) {
case NM_DEVICE_TYPE_ETHERNET:
value = "network-wired";
break;
case NM_DEVICE_TYPE_WIFI:
- case NM_DEVICE_TYPE_GSM:
- case NM_DEVICE_TYPE_CDMA:
case NM_DEVICE_TYPE_BT:
case NM_DEVICE_TYPE_OLPC_MESH:
value = "network-wireless";
break;
+ case NM_DEVICE_TYPE_MODEM:
+ caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
+ if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+ (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+ value = "network-wireless";
+ }
+ break;
default:
break;
}
@@ -52,13 +59,14 @@ panel_device_type_to_icon_name (NMDeviceType type)
}
/**
- * panel_device_type_to_localized_string:
+ * panel_device_to_localized_string:
**/
const gchar *
-panel_device_type_to_localized_string (NMDeviceType type)
+panel_device_to_localized_string (NMDevice *device)
{
const gchar *value = NULL;
- switch (type) {
+ NMDeviceModemCapabilities caps;
+ switch (nm_device_get_device_type (device)) {
case NM_DEVICE_TYPE_UNKNOWN:
/* TRANSLATORS: device type */
value = _("Unknown");
@@ -71,10 +79,13 @@ panel_device_type_to_localized_string (NMDeviceType type)
/* TRANSLATORS: device type */
value = _("Wireless");
break;
- case NM_DEVICE_TYPE_GSM:
- case NM_DEVICE_TYPE_CDMA:
- /* TRANSLATORS: device type */
- value = _("Mobile broadband");
+ case NM_DEVICE_TYPE_MODEM:
+ caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
+ if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+ (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+ /* TRANSLATORS: device type */
+ value = _("Mobile broadband");
+ }
break;
case NM_DEVICE_TYPE_BT:
/* TRANSLATORS: device type */
@@ -91,24 +102,28 @@ panel_device_type_to_localized_string (NMDeviceType type)
}
/**
- * panel_device_type_to_sortable_string:
+ * panel_device_to_sortable_string:
*
* Try to return order of approximate connection speed.
**/
const gchar *
-panel_device_type_to_sortable_string (NMDeviceType type)
+panel_device_to_sortable_string (NMDevice *device)
{
const gchar *value = NULL;
- switch (type) {
+ NMDeviceModemCapabilities caps;
+ switch (nm_device_get_device_type (device)) {
case NM_DEVICE_TYPE_ETHERNET:
value = "1";
break;
case NM_DEVICE_TYPE_WIFI:
value = "2";
break;
- case NM_DEVICE_TYPE_GSM:
- case NM_DEVICE_TYPE_CDMA:
- value = "3";
+ case NM_DEVICE_TYPE_MODEM:
+ caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
+ if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
+ (caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO)) {
+ value = "3";
+ }
break;
case NM_DEVICE_TYPE_BT:
value = "4";
diff --git a/panels/network/panel-common.h b/panels/network/panel-common.h
index c50f6b3..dd0eb08 100644
--- a/panels/network/panel-common.h
+++ b/panels/network/panel-common.h
@@ -24,12 +24,13 @@
#include <glib-object.h>
#include <NetworkManager.h>
+#include <nm-device.h>
G_BEGIN_DECLS
-const gchar *panel_device_type_to_icon_name (NMDeviceType type);
-const gchar *panel_device_type_to_localized_string (NMDeviceType type);
-const gchar *panel_device_type_to_sortable_string (NMDeviceType type);
+const gchar *panel_device_to_icon_name (NMDevice *device);
+const gchar *panel_device_to_localized_string (NMDevice *device);
+const gchar *panel_device_to_sortable_string (NMDevice *device);
const gchar *panel_ap_mode_to_localized_string (NM80211Mode mode);
const gchar *panel_device_state_to_localized_string (NMDeviceState type);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]