online-accounts: Use GTK widget types

This commit is contained in:
Robert Ancell 2019-11-20 15:00:36 +13:00 committed by Robert Ancell
parent e9ca51789c
commit 97ac89b88f

View file

@ -38,24 +38,24 @@ struct _CcGoaPanel
{ {
CcPanel parent_instance; CcPanel parent_instance;
GtkFrame *accounts_frame;
GtkListBox *accounts_listbox;
GtkDialog *edit_account_dialog;
GtkHeaderBar *edit_account_headerbar;
GtkListBoxRow *more_providers_row;
GtkBox *new_account_vbox;
GtkLabel *notification_label;
GtkRevealer *notification_revealer;
GtkLabel *offline_label;
GtkListBox *providers_listbox;
GtkButton *remove_account_button;
GtkStack *stack;
GtkBox *accounts_vbox;
GoaClient *client; GoaClient *client;
GoaObject *active_object; GoaObject *active_object;
GoaObject *removed_object; GoaObject *removed_object;
GtkWidget *accounts_frame;
GtkWidget *accounts_listbox;
GtkWidget *edit_account_dialog;
GtkWidget *edit_account_headerbar;
GtkWidget *more_providers_row;
GtkWidget *new_account_vbox;
GtkWidget *notification_label;
GtkWidget *notification_revealer;
GtkWidget *offline_label;
GtkWidget *providers_listbox;
GtkWidget *remove_account_button;
GtkWidget *stack;
GtkWidget *accounts_vbox;
gboolean destroyed; gboolean destroyed;
guint remove_account_timeout_id; guint remove_account_timeout_id;
}; };
@ -109,9 +109,9 @@ enum {
static void static void
reset_headerbar (CcGoaPanel *self) reset_headerbar (CcGoaPanel *self)
{ {
gtk_header_bar_set_title (GTK_HEADER_BAR (self->edit_account_headerbar), NULL); gtk_header_bar_set_title (self->edit_account_headerbar, NULL);
gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self->edit_account_headerbar), NULL); gtk_header_bar_set_subtitle (self->edit_account_headerbar, NULL);
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (self->edit_account_headerbar), TRUE); gtk_header_bar_set_show_close_button (self->edit_account_headerbar, TRUE);
/* Remove any leftover widgets */ /* Remove any leftover widgets */
gtk_container_foreach (GTK_CONTAINER (self->edit_account_headerbar), gtk_container_foreach (GTK_CONTAINER (self->edit_account_headerbar),
@ -194,9 +194,9 @@ sort_providers_func (GtkListBoxRow *a,
self = user_data; self = user_data;
if (a == GTK_LIST_BOX_ROW (self->more_providers_row)) if (a == self->more_providers_row)
return 1; return 1;
else if (b == GTK_LIST_BOX_ROW (self->more_providers_row)) else if (b == self->more_providers_row)
return -1; return -1;
a_provider = g_object_get_data (G_OBJECT (a), "goa-provider"); a_provider = g_object_get_data (G_OBJECT (a), "goa-provider");
@ -234,7 +234,7 @@ show_non_branded_providers (CcGoaPanel *self)
gtk_widget_show (l->data); gtk_widget_show (l->data);
} }
gtk_widget_hide (self->more_providers_row); gtk_widget_hide (GTK_WIDGET (self->more_providers_row));
g_list_free (children); g_list_free (children);
} }
@ -255,7 +255,7 @@ add_account (CcGoaPanel *self,
reset_headerbar (self); reset_headerbar (self);
/* Move to the new account page */ /* Move to the new account page */
gtk_stack_set_visible_child_name (GTK_STACK (self->stack), "new-account"); gtk_stack_set_visible_child_name (self->stack, "new-account");
/* Reset the dialog size */ /* Reset the dialog size */
gtk_window_resize (GTK_WINDOW (self->edit_account_dialog), 1, 1); gtk_window_resize (GTK_WINDOW (self->edit_account_dialog), 1, 1);
@ -263,12 +263,12 @@ add_account (CcGoaPanel *self,
/* This spins gtk_dialog_run() */ /* This spins gtk_dialog_run() */
object = goa_provider_add_account (provider, object = goa_provider_add_account (provider,
self->client, self->client,
GTK_DIALOG (self->edit_account_dialog), self->edit_account_dialog,
GTK_BOX (self->new_account_vbox), self->new_account_vbox,
&error); &error);
if (object == NULL) if (object == NULL)
gtk_widget_hide (self->edit_account_dialog); gtk_widget_hide (GTK_WIDGET (self->edit_account_dialog));
else else
show_page_account (self, object); show_page_account (self, object);
} }
@ -280,7 +280,7 @@ on_provider_row_activated (CcGoaPanel *self,
GoaProvider *provider; GoaProvider *provider;
/* Show More row */ /* Show More row */
if (activated_row == GTK_LIST_BOX_ROW (self->more_providers_row)) if (activated_row == self->more_providers_row)
{ {
show_non_branded_providers (self); show_non_branded_providers (self);
return; return;
@ -399,7 +399,7 @@ cc_goa_panel_dispose (GObject *object)
CcGoaPanel *panel = CC_GOA_PANEL (object); CcGoaPanel *panel = CC_GOA_PANEL (object);
/* Must be destroyed in dispose, not finalize. */ /* Must be destroyed in dispose, not finalize. */
g_clear_pointer (&panel->edit_account_dialog, gtk_widget_destroy); g_clear_pointer ((GtkWidget **) &panel->edit_account_dialog, gtk_widget_destroy);
panel->destroyed = TRUE; panel->destroyed = TRUE;
@ -442,20 +442,20 @@ cc_goa_panel_init (CcGoaPanel *panel)
gtk_widget_init_template (GTK_WIDGET (panel)); gtk_widget_init_template (GTK_WIDGET (panel));
gtk_list_box_set_header_func (GTK_LIST_BOX (panel->accounts_listbox), gtk_list_box_set_header_func (panel->accounts_listbox,
cc_list_box_update_header_func, cc_list_box_update_header_func,
NULL, NULL,
NULL); NULL);
gtk_list_box_set_sort_func (GTK_LIST_BOX (panel->accounts_listbox), gtk_list_box_set_sort_func (panel->accounts_listbox,
sort_func, sort_func,
panel, panel,
NULL); NULL);
gtk_list_box_set_header_func (GTK_LIST_BOX (panel->providers_listbox), gtk_list_box_set_header_func (panel->providers_listbox,
cc_list_box_update_header_func, cc_list_box_update_header_func,
NULL, NULL,
NULL); NULL);
gtk_list_box_set_sort_func (GTK_LIST_BOX (panel->providers_listbox), gtk_list_box_set_sort_func (panel->providers_listbox,
sort_providers_func, sort_providers_func,
panel, panel,
NULL); NULL);
@ -590,7 +590,7 @@ show_page_account (CcGoaPanel *panel,
reset_headerbar (panel); reset_headerbar (panel);
/* Move to the account editor page */ /* Move to the account editor page */
gtk_stack_set_visible_child_name (GTK_STACK (panel->stack), "editor"); gtk_stack_set_visible_child_name (panel->stack, "editor");
/* Out with the old */ /* Out with the old */
children = gtk_container_get_children (GTK_CONTAINER (panel->accounts_vbox)); children = gtk_container_get_children (GTK_CONTAINER (panel->accounts_vbox));
@ -601,7 +601,7 @@ show_page_account (CcGoaPanel *panel,
account = goa_object_peek_account (object); account = goa_object_peek_account (object);
is_locked = goa_account_get_is_locked (account); is_locked = goa_account_get_is_locked (account);
gtk_widget_set_visible (panel->remove_account_button, !is_locked); gtk_widget_set_visible (GTK_WIDGET (panel->remove_account_button), !is_locked);
provider_type = goa_account_get_provider_type (account); provider_type = goa_account_get_provider_type (account);
provider = goa_provider_get_for_provider_type (provider_type); provider = goa_provider_get_for_provider_type (provider_type);
@ -611,7 +611,7 @@ show_page_account (CcGoaPanel *panel,
goa_provider_show_account (provider, goa_provider_show_account (provider,
panel->client, panel->client,
object, object,
GTK_BOX (panel->accounts_vbox), panel->accounts_vbox,
NULL, NULL,
NULL); NULL);
/* /*
@ -625,14 +625,14 @@ show_page_account (CcGoaPanel *panel,
/* translators: This is the title of the "Show Account" dialog. The /* translators: This is the title of the "Show Account" dialog. The
* %s is the name of the provider. e.g., 'Google'. */ * %s is the name of the provider. e.g., 'Google'. */
title = g_strdup_printf (_("%s Account"), provider_name); title = g_strdup_printf (_("%s Account"), provider_name);
gtk_header_bar_set_title (GTK_HEADER_BAR (panel->edit_account_headerbar), title); gtk_header_bar_set_title (panel->edit_account_headerbar, title);
g_free (title); g_free (title);
/* Reset the dialog size */ /* Reset the dialog size */
gtk_window_resize (GTK_WINDOW (panel->edit_account_dialog), 1, 1); gtk_window_resize (GTK_WINDOW (panel->edit_account_dialog), 1, 1);
gtk_widget_show (panel->accounts_vbox); gtk_widget_show (GTK_WIDGET (panel->accounts_vbox));
gtk_widget_show (panel->edit_account_dialog); gtk_widget_show (GTK_WIDGET (panel->edit_account_dialog));
g_clear_object (&provider); g_clear_object (&provider);
} }
@ -669,7 +669,7 @@ static gboolean
on_edit_account_dialog_delete_event (CcGoaPanel *self) on_edit_account_dialog_delete_event (CcGoaPanel *self)
{ {
self->active_object = NULL; self->active_object = NULL;
gtk_widget_hide (self->edit_account_dialog); gtk_widget_hide (GTK_WIDGET (self->edit_account_dialog));
return TRUE; return TRUE;
} }
@ -711,21 +711,21 @@ static void
hide_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows) hide_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows)
{ {
gtk_widget_hide (row); gtk_widget_hide (row);
gtk_widget_set_visible (self->accounts_frame, other_rows != NULL); gtk_widget_set_visible (GTK_WIDGET (self->accounts_frame), other_rows != NULL);
} }
static void static void
remove_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows) remove_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows)
{ {
gtk_widget_destroy (row); gtk_widget_destroy (row);
gtk_widget_set_visible (self->accounts_frame, other_rows != NULL); gtk_widget_set_visible (GTK_WIDGET (self->accounts_frame), other_rows != NULL);
} }
static void static void
show_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows) show_row_for_account (CcGoaPanel *self, GtkWidget *row, GList *other_rows)
{ {
gtk_widget_show (row); gtk_widget_show (row);
gtk_widget_show (self->accounts_frame); gtk_widget_show (GTK_WIDGET (self->accounts_frame));
} }
static void static void
@ -834,7 +834,7 @@ on_account_added (GoaClient *client,
/* Add to the listbox */ /* Add to the listbox */
gtk_container_add (GTK_CONTAINER (self->accounts_listbox), row); gtk_container_add (GTK_CONTAINER (self->accounts_listbox), row);
gtk_widget_show (self->accounts_frame); gtk_widget_show (GTK_WIDGET (self->accounts_frame));
g_clear_pointer (&title, g_free); g_clear_pointer (&title, g_free);
g_clear_object (&gicon); g_clear_object (&gicon);
@ -942,7 +942,7 @@ on_notification_closed (GtkButton *button,
(GAsyncReadyCallback) remove_account_cb, (GAsyncReadyCallback) remove_account_cb,
g_object_ref (self)); g_object_ref (self));
gtk_revealer_set_reveal_child (GTK_REVEALER (self->notification_revealer), FALSE); gtk_revealer_set_reveal_child (self->notification_revealer, FALSE);
cancel_notification_timeout (self); cancel_notification_timeout (self);
self->removed_object = NULL; self->removed_object = NULL;
@ -954,7 +954,7 @@ on_undo_button_clicked (GtkButton *button,
{ {
/* Simply show the account row and hide the notification */ /* Simply show the account row and hide the notification */
modify_row_for_account (self, self->removed_object, show_row_for_account); modify_row_for_account (self, self->removed_object, show_row_for_account);
gtk_revealer_set_reveal_child (GTK_REVEALER (self->notification_revealer), FALSE); gtk_revealer_set_reveal_child (self->notification_revealer, FALSE);
cancel_notification_timeout (self); cancel_notification_timeout (self);
self->removed_object = NULL; self->removed_object = NULL;
@ -989,11 +989,11 @@ on_remove_button_clicked (CcGoaPanel *panel)
* or rishi). * or rishi).
*/ */
label = g_strdup_printf (_("%s removed"), id); label = g_strdup_printf (_("%s removed"), id);
gtk_label_set_markup (GTK_LABEL (panel->notification_label), label); gtk_label_set_markup (panel->notification_label, label);
gtk_revealer_set_reveal_child (GTK_REVEALER (panel->notification_revealer), TRUE); gtk_revealer_set_reveal_child (panel->notification_revealer, TRUE);
modify_row_for_account (panel, panel->removed_object, hide_row_for_account); modify_row_for_account (panel, panel->removed_object, hide_row_for_account);
gtk_widget_hide (panel->edit_account_dialog); gtk_widget_hide (GTK_WIDGET (panel->edit_account_dialog));
panel->remove_account_timeout_id = g_timeout_add_seconds (10, on_remove_account_timeout, panel); panel->remove_account_timeout_id = g_timeout_add_seconds (10, on_remove_account_timeout, panel);
} }