[gnome-control-center] online-accounts: Let goa_provider_show_account create the full UI



commit 2cb0f5e3a37b44eab6064a9416c078368d93f928
Author: Debarshi Ray <debarshir gnome org>
Date:   Tue Jul 26 17:41:06 2016 +0200

    online-accounts: Let goa_provider_show_account create the full UI
    
    It is not ideal to have the UI split across a semi-stable,
    cross-module interface boundary. Non-trivial changes to the UI require
    changes to the goa_provider_show_account interface. In fact, we were
    already not using it the way it was originally intended to be.
    Moreover, it prevents us from having a sufficiently different UI for
    certain account types.
    
    Instead, let's just pass a vertical GtkBox to the GoaProvider and let
    it fill it up whichever way it wants to.
    
    Bump required GOA version for the new goa_provider_show_account
    behaviour.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=769213

 configure.ac                                      |    2 +-
 panels/online-accounts/cc-online-accounts-panel.c |  112 +--------------------
 2 files changed, 3 insertions(+), 111 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 3f4e113..32440c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -100,7 +100,7 @@ GNOME_DESKTOP_REQUIRED_VERSION=3.21.2
 SCHEMAS_REQUIRED_VERSION=3.21.4
 LIBWACOM_REQUIRED_VERSION=0.7
 CLUTTER_REQUIRED_VERSION=1.11.3
-GOA_REQUIRED_VERSION=3.15.1
+GOA_REQUIRED_VERSION=3.21.5
 ACCOUNTSSERVICE_REQUIRED_VERSION=0.6.39
 COLORD_REQUIRED_VERSION=0.1.34
 COLORD_GTK_REQUIRED_VERSION=0.1.24
diff --git a/panels/online-accounts/cc-online-accounts-panel.c 
b/panels/online-accounts/cc-online-accounts-panel.c
index 2f68ede..825448c 100644
--- a/panels/online-accounts/cc-online-accounts-panel.c
+++ b/panels/online-accounts/cc-online-accounts-panel.c
@@ -377,76 +377,15 @@ show_page_nothing_selected (CcGoaPanel *panel)
 }
 
 static void
-on_sign_in_button_clicked (GtkButton *button,
-                           gpointer   user_data)
-{
-  CcGoaPanel *panel = CC_GOA_PANEL (user_data);
-  GtkTreeIter iter;
-
-  if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW 
(panel->accounts_treeview)),
-                                       NULL,
-                                       &iter))
-    {
-      GoaProvider *provider;
-      const gchar *provider_type;
-      GoaAccount *account;
-      GoaObject *object;
-      GtkWindow *parent;
-      GError *error;
-
-      gtk_tree_model_get (GTK_TREE_MODEL (panel->accounts_model),
-                          &iter,
-                          GOA_PANEL_ACCOUNTS_MODEL_COLUMN_OBJECT, &object,
-                          -1);
-
-      account = goa_object_peek_account (object);
-      provider_type = goa_account_get_provider_type (account);
-      provider = goa_provider_get_for_provider_type (provider_type);
-
-      parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
-
-      error = NULL;
-      if (!goa_provider_refresh_account (provider,
-                                         panel->client,
-                                         object,
-                                         parent,
-                                         &error))
-        {
-          if (!(error->domain == GOA_ERROR && error->code == GOA_ERROR_DIALOG_DISMISSED))
-            {
-              GtkWidget *dialog;
-              dialog = gtk_message_dialog_new (parent,
-                                               GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
-                                               GTK_MESSAGE_ERROR,
-                                               GTK_BUTTONS_CLOSE,
-                                               _("Error logging into the account"));
-              gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
-                                                        "%s",
-                                                        error->message);
-              gtk_widget_show_all (dialog);
-              gtk_dialog_run (GTK_DIALOG (dialog));
-              gtk_widget_destroy (dialog);
-            }
-          g_error_free (error);
-        }
-      g_object_unref (provider);
-      g_object_unref (object);
-    }
-}
-
-static void
 show_page_account (CcGoaPanel  *panel,
                    GoaObject *object)
 {
   GList *children;
   GList *l;
   GtkWidget *box;
-  GtkWidget *button;
-  GtkWidget *grid;
   GtkWidget *label;
   GoaProvider *provider;
   GoaAccount *account;
-  GtkWidget *image;
   const gchar *provider_type;
 
   provider = NULL;
@@ -468,63 +407,16 @@ show_page_account (CcGoaPanel  *panel,
   provider_type = goa_account_get_provider_type (account);
   provider = goa_provider_get_for_provider_type (provider_type);
 
-  /* And in with the new */
-  if (goa_account_get_attention_needed (account))
-    {
-      GtkWidget *labels_grid;
-
-      grid = gtk_grid_new ();
-      gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_HORIZONTAL);
-      gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
-
-      image = gtk_image_new_from_icon_name ("dialog-warning", GTK_ICON_SIZE_SMALL_TOOLBAR);
-      gtk_widget_set_valign (image, GTK_ALIGN_CENTER);
-      gtk_container_add (GTK_CONTAINER (grid), image);
-
-      labels_grid = gtk_grid_new ();
-      gtk_widget_set_halign (labels_grid, GTK_ALIGN_FILL);
-      gtk_widget_set_hexpand (labels_grid, TRUE);
-      gtk_widget_set_valign (labels_grid, GTK_ALIGN_CENTER);
-      gtk_orientable_set_orientation (GTK_ORIENTABLE (labels_grid), GTK_ORIENTATION_VERTICAL);
-      gtk_grid_set_column_spacing (GTK_GRID (labels_grid), 0);
-      gtk_container_add (GTK_CONTAINER (grid), labels_grid);
-
-      label = gtk_label_new (_("Credentials have expired."));
-      gtk_widget_set_halign (label, GTK_ALIGN_START);
-      gtk_container_add (GTK_CONTAINER (labels_grid), label);
-
-      label = gtk_label_new (_("Sign in to enable this account."));
-      gtk_widget_set_halign (label, GTK_ALIGN_START);
-      gtk_style_context_add_class (gtk_widget_get_style_context (label), "dim-label");
-      gtk_container_add (GTK_CONTAINER (labels_grid), label);
-
-      button = gtk_button_new_with_mnemonic (_("_Sign In"));
-      if (provider == NULL)
-        gtk_widget_set_sensitive (button, FALSE);
-      gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
-      gtk_container_add (GTK_CONTAINER (grid), button);
-      g_signal_connect (button, "clicked", G_CALLBACK (on_sign_in_button_clicked), panel);
-
-      gtk_box_pack_end (GTK_BOX (panel->accounts_vbox), grid, FALSE, TRUE, 0);
-    }
-
-  grid = gtk_grid_new ();
-  gtk_widget_set_halign (grid, GTK_ALIGN_CENTER);
-  gtk_widget_set_hexpand (grid, TRUE);
-  gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
-  gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
-
   if (provider != NULL)
     {
       goa_provider_show_account (provider,
                                  panel->client,
                                  object,
                                  GTK_BOX (panel->accounts_vbox),
-                                 GTK_GRID (grid),
-                                 GTK_GRID (grid));
+                                 NULL,
+                                 NULL);
     }
 
-  gtk_box_pack_start (GTK_BOX (panel->accounts_vbox), grid, FALSE, TRUE, 0);
   gtk_widget_show_all (panel->accounts_vbox);
 
   g_clear_object (&provider);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]