[empathy] connect to signals when account has been created
- From: Felix Kaser <kaserf src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy] connect to signals when account has been created
- Date: Mon, 11 Jan 2010 14:44:43 +0000 (UTC)
commit b7fd289a92a01ba588ce29b9499f220d6d6c342f
Author: Felix Kaser <f kaser gmx net>
Date: Mon Dec 28 13:03:12 2009 +0100
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
libempathy-gtk/empathy-account-widget.c | 6 +++---
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 9b82c3f..33eb528 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 a99c5d3..edec600 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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]