From 1b74ddb8c52c0d3002aaf1c1bb1af292ec2f3d94 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Mon, 9 Jan 2012 15:22:04 +0000 Subject: [PATCH] network: Move the 'Airplane Mode' switch up into the shell header This closer matches the mockups done by Lapo. --- panels/network/cc-network-panel.c | 43 ++++++++++++++++++++++++------- panels/network/network.ui | 40 ---------------------------- 2 files changed, 34 insertions(+), 49 deletions(-) diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c index cd6dc2104..25a8521b7 100644 --- a/panels/network/cc-network-panel.c +++ b/panels/network/cc-network-panel.c @@ -76,6 +76,7 @@ struct _CcNetworkPanelPrivate NMRemoteSettings *remote_settings; gboolean updating_device; guint refresh_idle; + GtkWidget *kill_switch_header; /* wireless dialog stuff */ CmdlineOperation arg_operation; @@ -205,6 +206,9 @@ cc_network_panel_dispose (GObject *object) g_object_unref (priv->remote_settings); priv->remote_settings = NULL; } + if (priv->kill_switch_header != NULL) { + g_clear_object (&priv->kill_switch_header); + } G_OBJECT_CLASS (cc_network_panel_parent_class)->dispose (object); } @@ -3178,11 +3182,37 @@ stop_hotspot (GtkButton *button, CcNetworkPanel *panel) gtk_window_present (GTK_WINDOW (dialog)); } +static gboolean +network_add_shell_header_widgets_cb (gpointer user_data) +{ + CcNetworkPanel *panel = CC_NETWORK_PANEL (user_data); + gboolean ret; + GtkWidget *box; + GtkWidget *widget; + + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3); + /* TRANSLATORS: this is to disable the radio hardware in the + * network panel */ + widget = gtk_label_new (_("Airplane Mode")); + gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0); + widget = gtk_switch_new (); + gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0); + cc_shell_embed_widget_in_header (cc_panel_get_shell (CC_PANEL (panel)), box); + gtk_widget_show_all (box); + + ret = nm_client_wireless_get_enabled (panel->priv->client); + gtk_switch_set_active (GTK_SWITCH (widget), !ret); + g_signal_connect (GTK_SWITCH (widget), "notify::active", + G_CALLBACK (cc_network_panel_notify_enable_active_cb), + panel); + + return FALSE; +} + static void cc_network_panel_init (CcNetworkPanel *panel) { DBusGConnection *bus = NULL; - gboolean ret; GError *error = NULL; gint value; GSettings *settings_tmp; @@ -3445,14 +3475,6 @@ cc_network_panel_init (CcNetworkPanel *panel) "button_unlock")); gtk_widget_set_sensitive (widget, FALSE); - widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, - "switch_flight_mode")); - ret = nm_client_wireless_get_enabled (panel->priv->client); - gtk_switch_set_active (GTK_SWITCH (widget), !ret); - g_signal_connect (GTK_SWITCH (widget), "notify::active", - G_CALLBACK (cc_network_panel_notify_enable_active_cb), - panel); - /* add remote settings such as VPN settings as virtual devices */ bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error); if (bus == NULL) { @@ -3482,6 +3504,9 @@ cc_network_panel_init (CcNetworkPanel *panel) widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "vbox1")); gtk_widget_reparent (widget, (GtkWidget *) panel); + + /* add kill switch widgets when dialog activated */ + g_idle_add (network_add_shell_header_widgets_cb, panel); } void diff --git a/panels/network/network.ui b/panels/network/network.ui index f9e045abd..6b1fbd3b7 100644 --- a/panels/network/network.ui +++ b/panels/network/network.ui @@ -2330,46 +2330,6 @@ 0 - - - True - False - 3 - - - True - False - Air_plane Mode - True - switch_flight_mode - - - False - False - end - 1 - - - - - True - True - True - False - - - False - end - 0 - - - - - True - True - 1 - - False