[gnome-initial-setup] network: Handled disabled states better
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup] network: Handled disabled states better
- Date: Fri, 29 May 2015 01:44:19 +0000 (UTC)
commit a0dd979ddfa7b6a4516291984f0f1533e08baf37
Author: Matthias Clasen <mclasen redhat com>
Date: Thu May 28 21:43:24 2015 -0400
network: Handled disabled states better
If wireless is turned off, don't show a spinner forever.
Instead, offer the user a switch to turn it on.
.../pages/network/gis-network-page.c | 35 +++++++++++++++++--
.../pages/network/gis-network-page.ui | 29 ++++++++++++++++
2 files changed, 60 insertions(+), 4 deletions(-)
---
diff --git a/gnome-initial-setup/pages/network/gis-network-page.c
b/gnome-initial-setup/pages/network/gis-network-page.c
index ddd1c87..168be4e 100644
--- a/gnome-initial-setup/pages/network/gis-network-page.c
+++ b/gnome-initial-setup/pages/network/gis-network-page.c
@@ -53,6 +53,8 @@ struct _GisNetworkPagePrivate {
GtkWidget *scrolled_window;
GtkWidget *no_network_label;
GtkWidget *no_network_spinner;
+ GtkWidget *turn_on_label;
+ GtkWidget *turn_on_switch;
NMClient *nm_client;
NMRemoteSettings *nm_settings;
@@ -355,16 +357,35 @@ refresh_wireless_list (GisNetworkPage *page)
aps = nm_device_wifi_get_access_points (NM_DEVICE_WIFI (priv->nm_device));
if (aps == NULL || aps->len == 0) {
- gtk_label_set_text (GTK_LABEL (priv->no_network_label), _("Checking for available wireless networks"));
- gtk_widget_show (priv->no_network_spinner);
- gtk_widget_show (priv->no_network_label);
+ gboolean enabled, hw_enabled;
+
+ enabled = nm_client_wireless_get_enabled (priv->nm_client);
+ hw_enabled = nm_client_wireless_hardware_get_enabled (priv->nm_client);
+
+ if (!enabled || !hw_enabled) {
+ gtk_label_set_text (GTK_LABEL (priv->no_network_label), _("Wireless networking is disabled"));
+ gtk_widget_show (priv->no_network_label);
+ gtk_widget_hide (priv->no_network_spinner);
+
+ gtk_widget_set_visible (priv->turn_on_label, hw_enabled);
+ gtk_widget_set_visible (priv->turn_on_switch, hw_enabled);
+ } else {
+ gtk_label_set_text (GTK_LABEL (priv->no_network_label), _("Checking for available wireless networks"));
+ gtk_widget_show (priv->no_network_spinner);
+ gtk_widget_show (priv->no_network_label);
+ gtk_widget_hide (priv->turn_on_label);
+ gtk_widget_hide (priv->turn_on_switch);
+ }
+
gtk_widget_hide (priv->scrolled_window);
priv->refresh_timeout_id = g_timeout_add_seconds (1, refresh_again, page);
-
goto out;
+
} else {
gtk_widget_hide (priv->no_network_spinner);
gtk_widget_hide (priv->no_network_label);
+ gtk_widget_hide (priv->turn_on_label);
+ gtk_widget_hide (priv->turn_on_switch);
gtk_widget_show (priv->scrolled_window);
}
@@ -539,6 +560,10 @@ gis_network_page_constructed (GObject *object)
priv->nm_client = nm_client_new ();
+ g_object_bind_property (priv->nm_client, "wireless-enabled",
+ priv->turn_on_switch, "active",
+ G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
+
devices = nm_client_get_devices (priv->nm_client);
if (devices) {
for (i = 0; i < devices->len; i++) {
@@ -626,6 +651,8 @@ gis_network_page_class_init (GisNetworkPageClass *klass)
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisNetworkPage, scrolled_window);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisNetworkPage, no_network_label);
gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisNetworkPage,
no_network_spinner);
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisNetworkPage, turn_on_label);
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisNetworkPage, turn_on_switch);
page_class->page_id = PAGE_ID;
page_class->locale_changed = gis_network_page_locale_changed;
diff --git a/gnome-initial-setup/pages/network/gis-network-page.ui
b/gnome-initial-setup/pages/network/gis-network-page.ui
index 4db31be..b4df70d 100644
--- a/gnome-initial-setup/pages/network/gis-network-page.ui
+++ b/gnome-initial-setup/pages/network/gis-network-page.ui
@@ -76,6 +76,7 @@
<property name="margin_top">18</property>
<property name="halign">center</property>
<property name="valign">start</property>
+ <property name="row-spacing">10</property>
<child>
<object class="GtkSpinner" id="no_network_spinner">
<property name="visible">True</property>
@@ -104,6 +105,34 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
+ <property name="width">2</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="turn_on_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes">Turn On</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="turn_on_switch">
+ <property name="visible">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]