diff options
author | Felix Kaser <f.kaser@gmx.net> | 2009-12-28 20:03:12 +0800 |
---|---|---|
committer | Felix Kaser <f.kaser@gmx.net> | 2010-01-11 22:03:26 +0800 |
commit | b7fd289a92a01ba588ce29b9499f220d6d6c342f (patch) | |
tree | c683eab70a312b98c0d9c5ceb03fc65ffc870a54 | |
parent | 374c27a1f5f71a1ed8f9a1cfd05bab58ba8a8fc9 (diff) | |
download | gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar.gz gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar.bz2 gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar.lz gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar.xz gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.tar.zst gsoc2013-empathy-b7fd289a92a01ba588ce29b9499f220d6d6c342f.zip |
connect to signals when account has been created
when a new account is created the signals presence-changed and status-changed of the account are connected to update the treeview icon and status infobar
-rw-r--r-- | libempathy-gtk/empathy-account-widget.c | 6 | ||||
-rw-r--r-- | src/empathy-accounts-dialog.c | 20 |
2 files changed, 23 insertions, 3 deletions
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c index 9b82c3f2c..33eb52848 100644 --- a/libempathy-gtk/empathy-account-widget.c +++ b/libempathy-gtk/empathy-account-widget.c @@ -738,7 +738,7 @@ account_widget_applied_cb (GObject *source_object, tp_account_set_enabled_async (account, TRUE, account_widget_account_enabled_cb, widget); - g_signal_emit (widget, signals[ACCOUNT_CREATED], 0); + g_signal_emit (widget, signals[ACCOUNT_CREATED], 0, account); } else if (priv->enabled_checkbox != NULL) { @@ -1735,9 +1735,9 @@ empathy_account_widget_class_init (EmpathyAccountWidgetClass *klass) signals[ACCOUNT_CREATED] = g_signal_new ("account-created", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__VOID, + g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, - 0); + 1, G_TYPE_POINTER); signals[CANCELLED] = g_signal_new ("cancelled", G_TYPE_FROM_CLASS (klass), diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c index a99c5d3d0..edec6008d 100644 --- a/src/empathy-accounts-dialog.c +++ b/src/empathy-accounts-dialog.c @@ -159,6 +159,20 @@ static void accounts_dialog_add (EmpathyAccountsDialog *dialog, static void accounts_dialog_model_set_selected (EmpathyAccountsDialog *dialog, EmpathyAccountSettings *settings); +static void accounts_dialog_connection_changed_cb (TpAccount *account, + guint old_status, + guint current, + guint reason, + gchar *dbus_error_name, + GHashTable *details, + EmpathyAccountsDialog *dialog); + +static void accounts_dialog_presence_changed_cb (TpAccount *account, + guint presence, + gchar *status, + gchar *status_message, + EmpathyAccountsDialog *dialog); + static void accounts_dialog_update_name_label (EmpathyAccountsDialog *dialog, const gchar *display_name) @@ -359,6 +373,7 @@ empathy_account_dialog_widget_cancelled_cb ( static void empathy_account_dialog_account_created_cb (EmpathyAccountWidget *widget_object, + TpAccount *account, EmpathyAccountsDialog *dialog) { gchar *display_name; @@ -382,6 +397,11 @@ empathy_account_dialog_account_created_cb (EmpathyAccountWidget *widget_object, gtk_widget_set_sensitive (priv->button_add, TRUE); gtk_widget_set_sensitive (priv->button_import, TRUE); + empathy_signal_connect_weak (account, "status-changed", + G_CALLBACK (accounts_dialog_connection_changed_cb), G_OBJECT (dialog)); + empathy_signal_connect_weak (account, "presence-changed", + G_CALLBACK (accounts_dialog_presence_changed_cb), G_OBJECT (dialog)); + if (settings) g_object_unref (settings); } |