online-accounts: Add an offline message label

When offline, we currently block the new accounts listbox
so that users can't add new accounts. There is, however,
no visual indication that we're offline, besides the listbox.

Fix that by adding a descriptive label that's only visible
when offline.

https://bugzilla.gnome.org/show_bug.cgi?id=774222
This commit is contained in:
Georges Basile Stavracas Neto 2016-11-10 14:56:27 -02:00
parent e9198bdb4d
commit 1e580c679b
2 changed files with 15 additions and 1 deletions

View file

@ -49,6 +49,7 @@ struct _CcGoaPanel
GtkWidget *new_account_vbox;
GtkWidget *notification_label;
GtkWidget *notification_revealer;
GtkWidget *offline_label;
GtkWidget *providers_listbox;
GtkWidget *remove_account_button;
GtkWidget *stack;
@ -420,6 +421,10 @@ cc_goa_panel_init (CcGoaPanel *panel)
monitor = g_network_monitor_get_default();
g_object_bind_property (monitor, "network-available",
panel->offline_label, "visible",
G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN);
g_object_bind_property (monitor, "network-available",
panel->providers_listbox, "sensitive",
G_BINDING_SYNC_CREATE);
@ -454,7 +459,7 @@ cc_goa_panel_init (CcGoaPanel *panel)
fill_accounts_listbox (panel);
goa_provider_get_all (get_all_providers_cb, panel);
gtk_widget_show_all (GTK_WIDGET (panel));
gtk_widget_show (GTK_WIDGET (panel));
}
static const char *
@ -502,6 +507,7 @@ cc_goa_panel_class_init (CcGoaPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, new_account_vbox);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, notification_label);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, notification_revealer);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, offline_label);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, providers_listbox);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, remove_account_button);
gtk_widget_class_bind_template_child (widget_class, CcGoaPanel, stack);

View file

@ -91,6 +91,14 @@
</attributes>
</object>
</child>
<child>
<object class="GtkLabel" id="offline_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<property name="label" translatable="yes">No internet connection — connect to setup new online accounts</property>
</object>
</child>
<child>
<object class="GtkFrame" id="accounts_frame">
<property name="visible">True</property>