[empathy] new-account-dialog: rely on the EmpathyAccountWidget::close signal



commit 085365f20953fae1fb95d0272677273e3840e98f
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Tue May 8 13:50:03 2012 +0200

    new-account-dialog: rely on the EmpathyAccountWidget::close signal
    
    User of the dialog should wait for the widget to be completely done before
    destroying it.
    
    Change the 'success' dialog response to GTK_RESPONSE_APPLY to stay coherent
    with the response type received from EmpathyAccountWidget.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=675667

 libempathy-gtk/empathy-new-account-dialog.c |   23 ++++++-----------------
 src/empathy-accounts-dialog.c               |    2 +-
 2 files changed, 7 insertions(+), 18 deletions(-)
---
diff --git a/libempathy-gtk/empathy-new-account-dialog.c b/libempathy-gtk/empathy-new-account-dialog.c
index 180cc41..ed09be8 100644
--- a/libempathy-gtk/empathy-new-account-dialog.c
+++ b/libempathy-gtk/empathy-new-account-dialog.c
@@ -42,18 +42,11 @@ struct _EmpathyNewAccountDialogPrivate
 };
 
 static void
-account_created_cb (EmpathyAccountWidget *widget,
-    TpAccount *account,
+close_cb (EmpathyAccountWidget *widget,
+    GtkResponseType response,
     EmpathyNewAccountDialog *self)
 {
-  gtk_dialog_response (GTK_DIALOG (self), GTK_RESPONSE_OK);
-}
-
-static void
-cancelled_cb (EmpathyAccountWidget *widget,
-    EmpathyNewAccountDialog *self)
-{
-  gtk_dialog_response (GTK_DIALOG (self), GTK_RESPONSE_CANCEL);
+  gtk_dialog_response (GTK_DIALOG (self), response);
 }
 
 static void
@@ -87,9 +80,7 @@ protocol_changed_cb (GtkComboBox *chooser,
   if (self->priv->current_account_widget != NULL)
     {
       g_signal_handlers_disconnect_by_func (self->priv->current_account_widget,
-          account_created_cb, self);
-      g_signal_handlers_disconnect_by_func (self->priv->current_account_widget,
-          cancelled_cb, self);
+          close_cb, self);
 
       gtk_widget_destroy (GTK_WIDGET (self->priv->current_account_widget));
     }
@@ -98,10 +89,8 @@ protocol_changed_cb (GtkComboBox *chooser,
 
   self->priv->settings = settings;
 
-  g_signal_connect (self->priv->current_account_widget, "account-created",
-      G_CALLBACK (account_created_cb), self);
-  g_signal_connect (self->priv->current_account_widget, "cancelled",
-      G_CALLBACK (cancelled_cb), self);
+  g_signal_connect (self->priv->current_account_widget, "close",
+      G_CALLBACK (close_cb), self);
 
   /* Restore "account" and "password" parameters in the new widget */
   if (account != NULL)
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 9c5715b..a9b65b2 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -996,7 +996,7 @@ accounts_dialog_button_add_clicked_cb (GtkWidget *button,
 
   response = gtk_dialog_run (GTK_DIALOG (dialog));
 
-  if (response == GTK_RESPONSE_OK)
+  if (response == GTK_RESPONSE_APPLY)
     {
       EmpathyAccountSettings *settings;
       TpAccount *account;



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