76
76
NMRemoteSettings *remote_settings;
77
77
gboolean updating_device;
78
78
guint refresh_idle;
79
GtkWidget *kill_switch_header;
80
81
/* wireless dialog stuff */
81
82
CmdlineOperation arg_operation;
205
206
g_object_unref (priv->remote_settings);
206
207
priv->remote_settings = NULL;
209
if (priv->kill_switch_header != NULL) {
210
g_clear_object (&priv->kill_switch_header);
209
213
G_OBJECT_CLASS (cc_network_panel_parent_class)->dispose (object);
634
panel_refresh_killswitch_visibility (CcNetworkPanel *panel)
637
gboolean show_flight_toggle = FALSE;
640
NetObject *object_tmp;
641
NMDeviceModemCapabilities caps;
644
/* find any wireless devices in model */
645
model = GTK_TREE_MODEL (gtk_builder_get_object (panel->priv->builder,
646
"liststore_devices"));
647
ret = gtk_tree_model_get_iter_first (model, &iter);
651
gtk_tree_model_get (model, &iter,
652
PANEL_DEVICES_COLUMN_OBJECT, &object_tmp,
654
if (NET_IS_DEVICE (object_tmp)) {
655
nm_device = net_device_get_nm_device (NET_DEVICE (object_tmp));
656
switch (nm_device_get_device_type (nm_device)) {
657
case NM_DEVICE_TYPE_WIFI:
658
case NM_DEVICE_TYPE_WIMAX:
659
show_flight_toggle = TRUE;
661
case NM_DEVICE_TYPE_MODEM:
663
caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (nm_device));
664
if ((caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) ||
665
(caps & NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO))
666
show_flight_toggle = TRUE;
673
g_object_unref (object_tmp);
674
} while (!show_flight_toggle && gtk_tree_model_iter_next (model, &iter));
676
/* only show toggle if there are wireless devices */
677
gtk_widget_set_visible (panel->priv->kill_switch_header,
630
682
panel_add_device (CcNetworkPanel *panel, NMDevice *device)
1569
1622
gtk_label_set_label (GTK_LABEL (widget),
1570
1623
panel_device_to_localized_string (device));
1572
/* set device state */
1573
wid_name = g_strdup_printf ("label_%s_status", page_name);
1574
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
1579
str = panel_device_state_to_localized_string (device);
1581
gtk_label_set_label (GTK_LABEL (widget), str);
1584
1625
/* set up the device on/off switch */
1585
1626
wid_name = g_strdup_printf ("device_%s_off_switch", page_name);
1586
1627
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
1593
1634
state != NM_DEVICE_STATE_UNAVAILABLE
1594
1635
&& state != NM_DEVICE_STATE_UNMANAGED);
1595
1636
update_off_switch_from_device_state (GTK_SWITCH (widget), state, panel);
1637
if (state != NM_DEVICE_STATE_UNAVAILABLE)
1638
speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (device));
1597
1640
case NM_DEVICE_TYPE_WIFI:
1598
1641
gtk_widget_show (widget);
1599
1642
wireless_enabled_toggled (panel->priv->client, NULL, panel);
1643
if (state != NM_DEVICE_STATE_UNAVAILABLE)
1644
speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (device));
1601
1647
case NM_DEVICE_TYPE_WIMAX:
1602
1648
gtk_widget_show (widget);
1660
/* set device state, with status and optionally speed */
1661
wid_name = g_strdup_printf ("label_%s_status", page_name);
1662
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
1665
str = g_string_new (_("Hotspot"));
1667
str = g_string_new (panel_device_state_to_localized_string (device));
1670
g_string_append (str, " - ");
1671
/* Translators: network device speed */
1672
g_string_append_printf (str, _("%d Mb/s"), speed);
1674
gtk_label_set_label (GTK_LABEL (widget), str->str);
1614
1676
/* set up options button */
1615
1677
wid_name = g_strdup_printf ("button_%s_options", page_name);
1616
1678
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, wid_name));
1618
1680
if (widget != NULL) {
1619
1681
gtk_widget_set_sensitive (widget, find_connection_for_device (panel, device) != NULL);
1683
g_string_free (str, TRUE);
1624
1687
device_refresh_ethernet_ui (CcNetworkPanel *panel, NetDevice *device)
1627
NMDeviceState state;
1628
1689
const char *str;
1630
1690
NMDevice *nm_device;
1632
1692
nm_device = net_device_get_nm_device (device);
1633
state = nm_device_get_state (nm_device);
1635
1694
refresh_header_ui (panel, nm_device, "wired");
1638
speed = nm_device_ethernet_get_speed (NM_DEVICE_ETHERNET (nm_device));
1639
if (state == NM_DEVICE_STATE_UNAVAILABLE)
1642
/* Translators: network device speed */
1643
str_tmp = g_strdup_printf (_("%d Mb/s"), speed);
1645
str_tmp = g_strdup ("");
1646
panel_set_widget_data (panel,
1652
1696
/* device MAC */
1653
1697
str = nm_device_ethernet_get_hw_address (NM_DEVICE_ETHERNET (nm_device));
1654
1698
panel_set_widget_data (panel,
1723
1766
panel_set_widget_data (panel, "hotspot", "security_key", hotspot_secret);
1724
1767
g_free (hotspot_secret);
1727
speed = nm_device_wifi_get_bitrate (NM_DEVICE_WIFI (nm_device));
1728
if (state == NM_DEVICE_STATE_UNAVAILABLE)
1731
str_tmp = g_strdup_printf (_("%d Mb/s"),
1734
str_tmp = g_strdup ("");
1735
panel_set_widget_data (panel,
1741
1769
/* device MAC */
1742
1770
str = nm_device_wifi_get_hw_address (NM_DEVICE_WIFI (nm_device));
1743
1771
panel_set_widget_data (panel,
3202
3232
gtk_window_present (GTK_WINDOW (dialog));
3236
network_add_shell_header_widgets_cb (gpointer user_data)
3238
CcNetworkPanel *panel = CC_NETWORK_PANEL (user_data);
3243
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
3244
/* TRANSLATORS: this is to disable the radio hardware in the
3246
widget = gtk_label_new (_("Airplane Mode"));
3247
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
3248
gtk_widget_set_visible (widget, TRUE);
3249
widget = gtk_switch_new ();
3250
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
3251
gtk_widget_set_visible (widget, TRUE);
3252
cc_shell_embed_widget_in_header (cc_panel_get_shell (CC_PANEL (panel)), box);
3253
panel->priv->kill_switch_header = g_object_ref (box);
3255
ret = nm_client_wireless_get_enabled (panel->priv->client);
3256
gtk_switch_set_active (GTK_SWITCH (widget), !ret);
3257
g_signal_connect (GTK_SWITCH (widget), "notify::active",
3258
G_CALLBACK (cc_network_panel_notify_enable_active_cb),
3260
panel_refresh_killswitch_visibility (panel);
3206
3266
cc_network_panel_init (CcNetworkPanel *panel)
3208
3268
DBusGConnection *bus = NULL;
3210
3269
GError *error = NULL;
3212
3271
GSettings *settings_tmp;
3469
3528
"button_unlock"));
3470
3529
gtk_widget_set_sensitive (widget, FALSE);
3472
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
3473
"switch_flight_mode"));
3474
ret = nm_client_wireless_get_enabled (panel->priv->client);
3475
gtk_switch_set_active (GTK_SWITCH (widget), !ret);
3476
g_signal_connect (GTK_SWITCH (widget), "notify::active",
3477
G_CALLBACK (cc_network_panel_notify_enable_active_cb),
3480
3531
/* add remote settings such as VPN settings as virtual devices */
3481
3532
bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
3482
3533
if (bus == NULL) {
3506
3557
widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
3508
3559
gtk_widget_reparent (widget, (GtkWidget *) panel);
3561
/* add kill switch widgets when dialog activated */
3562
g_idle_add (network_add_shell_header_widgets_cb, panel);