aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanielle Madeley <danielle.madeley@collabora.co.uk>2011-03-10 14:16:29 +0800
committerDanielle Madeley <danielle.madeley@collabora.co.uk>2011-03-14 18:46:47 +0800
commit2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e (patch)
treed99302ac6aad88aa7f7f9d96ce3690aa00024a2b
parentd078c13a7c98a377655c7b287b849634436f0e90 (diff)
downloadgsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar.gz
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar.bz2
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar.lz
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar.xz
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.tar.zst
gsoc2013-empathy-2b808ebf2f96ada9cd0ba12ecef0205a94f93d1e.zip
Track the change notification for PasswordSaved
-rw-r--r--libempathy-gtk/empathy-account-widget-skype.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/libempathy-gtk/empathy-account-widget-skype.c b/libempathy-gtk/empathy-account-widget-skype.c
index 1cb6156da..a1af69fb8 100644
--- a/libempathy-gtk/empathy-account-widget-skype.c
+++ b/libempathy-gtk/empathy-account-widget-skype.c
@@ -374,14 +374,37 @@ account_widget_build_skype_get_password_saved_cb (TpProxy *account,
DEBUG ("PasswordSaved: %s", password_saved ? "yes" : "no");
- if (password_saved)
- gtk_entry_set_text (GTK_ENTRY (password_entry), "xxxxxxxx");
+ gtk_entry_set_text (GTK_ENTRY (password_entry),
+ password_saved ? "xxxxxxxx": "");
g_object_set_data (password_entry, "fake-password",
GUINT_TO_POINTER (password_saved));
}
static void
+account_widget_build_skype_account_properties_changed_cb (TpProxy *account,
+ const char *iface,
+ GHashTable *changed,
+ const char **invalidated,
+ gpointer user_data,
+ GObject *password_entry)
+{
+ GValue *value;
+
+ if (tp_strdiff (iface,
+ EMP_IFACE_ACCOUNT_INTERFACE_EXTERNAL_PASSWORD_STORAGE))
+ return;
+
+ value = g_hash_table_lookup (changed, "PasswordSaved");
+
+ if (value == NULL)
+ return;
+
+ account_widget_build_skype_get_password_saved_cb (account, value, NULL,
+ NULL, password_entry);
+}
+
+static void
account_widget_build_skype_get_privacy_settings_cb (TpProxy *cm,
GHashTable *props,
const GError *in_error,
@@ -732,6 +755,9 @@ empathy_account_widget_build_skype (EmpathyAccountWidget *self,
"PasswordSaved",
account_widget_build_skype_get_password_saved_cb,
NULL, NULL, G_OBJECT (password_entry));
+ tp_cli_dbus_properties_connect_to_properties_changed (account,
+ account_widget_build_skype_account_properties_changed_cb,
+ NULL, NULL, G_OBJECT (password_entry), NULL);
}
}