[gnome-online-accounts] kerberos: Put the spinner outside the button
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-online-accounts] kerberos: Put the spinner outside the button
- Date: Wed, 5 Dec 2012 14:08:03 +0000 (UTC)
commit d1882316743415a7f4744db638811eaf2efb2eb8
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Dec 4 14:16:32 2012 +0100
kerberos: Put the spinner outside the button
Fixes: https://bugzilla.gnome.org/689609
src/goabackend/goakerberosprovider.c | 53 ++++++++++++++++++++++++++-------
1 files changed, 41 insertions(+), 12 deletions(-)
---
diff --git a/src/goabackend/goakerberosprovider.c b/src/goabackend/goakerberosprovider.c
index 7e75be0..984872e 100644
--- a/src/goabackend/goakerberosprovider.c
+++ b/src/goabackend/goakerberosprovider.c
@@ -29,7 +29,6 @@
#include "goaprovider.h"
#include "goakerberosprovider.h"
#include "goaeditablelabel.h"
-#include "goaspinnerbutton.h"
#include "goautils.h"
#include "goaidentity.h"
@@ -99,7 +98,8 @@ typedef struct
GtkWidget *cluebar;
GtkWidget *cluebar_label;
- GtkWidget *spinner_button;
+ GtkWidget *connect_button;
+ GtkWidget *progress_grid;
GtkWidget *username;
GtkWidget *realm_entry;
@@ -1069,10 +1069,13 @@ create_account_details_ui (GoaKerberosProvider *self,
gboolean new_account,
SignInRequest *request)
{
+ GtkWidget *action_area;
GtkWidget *grid0;
GtkWidget *grid1;
GtkWidget *grid2;
GtkWidget *hbox;
+ GtkWidget *label;
+ GtkWidget *spinner;
gint width;
goa_utils_set_dialog_title (GOA_PROVIDER (self), dialog, new_account);
@@ -1125,11 +1128,30 @@ create_account_details_ui (GoaKerberosProvider *self,
populate_realms_for_request (request);
gtk_widget_grab_focus (request->realm_combo_box);
- request->spinner_button = goa_spinner_button_new_from_stock (GTK_STOCK_CONNECT);
- gtk_dialog_add_action_widget (request->dialog, request->spinner_button, GTK_RESPONSE_OK);
+ request->connect_button = gtk_dialog_add_button (request->dialog, GTK_STOCK_CONNECT, GTK_RESPONSE_OK);
gtk_dialog_set_default_response (request->dialog, GTK_RESPONSE_OK);
gtk_dialog_set_response_sensitive (request->dialog, GTK_RESPONSE_OK, TRUE);
+ action_area = gtk_dialog_get_action_area (request->dialog);
+
+ request->progress_grid = gtk_grid_new ();
+ gtk_widget_set_no_show_all (request->progress_grid, TRUE);
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (request->progress_grid), GTK_ORIENTATION_HORIZONTAL);
+ gtk_grid_set_column_spacing (GTK_GRID (request->progress_grid), 3);
+ gtk_box_pack_end (GTK_BOX (action_area), request->progress_grid, FALSE, FALSE, 0);
+ gtk_box_reorder_child (GTK_BOX (action_area), request->progress_grid, 0);
+ gtk_button_box_set_child_non_homogeneous (GTK_BUTTON_BOX (action_area), request->progress_grid, TRUE);
+
+ spinner = gtk_spinner_new ();
+ gtk_widget_set_size_request (spinner, 20, 20);
+ gtk_widget_show (spinner);
+ gtk_spinner_start (GTK_SPINNER (spinner));
+ gtk_container_add (GTK_CONTAINER (request->progress_grid), spinner);
+
+ label = gtk_label_new (_("Connectingâ"));
+ gtk_widget_show (label);
+ gtk_container_add (GTK_CONTAINER (request->progress_grid), label);
+
gtk_window_get_size (GTK_WINDOW (request->dialog), &width, NULL);
gtk_widget_set_size_request (GTK_WIDGET (request->dialog), width, -1);
}
@@ -1147,6 +1169,8 @@ add_account_cb (GoaManager *manager,
if (request->error != NULL)
translate_error (&request->error);
g_main_loop_quit (request->loop);
+ gtk_widget_set_sensitive (request->connect_button, TRUE);
+ gtk_widget_hide (request->progress_grid);
}
static void
@@ -1469,6 +1493,8 @@ on_discover_realm (GObject *source,
}
g_main_loop_quit (request->loop);
+ gtk_widget_set_sensitive (request->connect_button, TRUE);
+ gtk_widget_hide (request->progress_grid);
}
static GoaObject *
@@ -1528,9 +1554,9 @@ start_over:
&request);
g_free (realm);
- goa_spinner_button_start (GOA_SPINNER_BUTTON (request.spinner_button));
+ gtk_widget_set_sensitive (request.connect_button, FALSE);
+ gtk_widget_show (request.progress_grid);
g_main_loop_run (request.loop);
- goa_spinner_button_stop (GOA_SPINNER_BUTTON (request.spinner_button));
if (request.error)
{
@@ -1584,10 +1610,9 @@ start_over:
NULL, /* GCancellable* */
(GAsyncReadyCallback) add_account_cb,
&request);
-
- goa_spinner_button_start (GOA_SPINNER_BUTTON (request.spinner_button));
+ gtk_widget_set_sensitive (request.connect_button, FALSE);
+ gtk_widget_show (request.progress_grid);
g_main_loop_run (request.loop);
- goa_spinner_button_stop (GOA_SPINNER_BUTTON (request.spinner_button));
if (request.error != NULL)
goto out;
@@ -1599,9 +1624,13 @@ start_over:
*/
perform_initial_sign_in (self, object, principal, &request);
- goa_spinner_button_start (GOA_SPINNER_BUTTON (request.spinner_button));
+ gtk_widget_set_sensitive (request.connect_button, FALSE);
+ gtk_widget_show (request.progress_grid);
+
g_main_loop_run (request.loop);
- goa_spinner_button_stop (GOA_SPINNER_BUTTON (request.spinner_button));
+
+ gtk_widget_set_sensitive (request.connect_button, TRUE);
+ gtk_widget_hide (request.progress_grid);
if (request.error != NULL)
{
@@ -1619,7 +1648,7 @@ start_over:
gtk_label_set_markup (GTK_LABEL (request.cluebar_label), markup);
g_free (markup);
- goa_spinner_button_set_label (GOA_SPINNER_BUTTON (request.spinner_button), _("_Try Again"));
+ gtk_button_set_label (GTK_BUTTON (request.connect_button), _("_Try Again"));
gtk_widget_set_no_show_all (request.cluebar, FALSE);
gtk_widget_show_all (request.cluebar);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]