From fb83058ce074f671c6f5b06d570ea44b8ee7c628 Mon Sep 17 00:00:00 2001 From: Jonny Lamb Date: Fri, 21 Nov 2008 16:15:10 +0000 Subject: Handled TransferredBytes signal properly and show in the progress bar. (Jonny Lamb) Signed-off-by: Jonny Lamb svn path=/trunk/; revision=1758 --- libempathy/empathy-file.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/libempathy/empathy-file.c b/libempathy/empathy-file.c index e2e13951f..c3e028a7a 100644 --- a/libempathy/empathy-file.c +++ b/libempathy/empathy-file.c @@ -87,9 +87,8 @@ static void file_state_changed_cb (DBusGProxy *file_ guint state, guint reason, EmpathyFile *file); -static void file_transferred_bytes_changed_cb (DBusGProxy *file_iface, - guint64 transferred_bytes, - EmpathyFile *file); +static void file_transferred_bytes_changed_cb (TpProxy *proxy, guint64 count, + EmpathyFile *file, GObject *weak_object); static void copy_stream (GInputStream *in, GOutputStream *out, GCancellable *cancellable); @@ -137,6 +136,7 @@ enum { PROP_FILENAME, PROP_SIZE, PROP_CONTENT_TYPE, + PROP_TRANSFERRED_BYTES, PROP_CONTENT_MD5, PROP_IN_STREAM, }; @@ -228,6 +228,16 @@ empathy_file_class_init (EmpathyFileClass *klass) "", G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_TRANSFERRED_BYTES, + g_param_spec_uint64 ("transferred-bytes", + "bytes transferred", + "The number of bytes transferred", + 0, + G_MAXUINT64, + 0, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_IN_STREAM, g_param_spec_object ("in-stream", @@ -751,17 +761,17 @@ file_state_changed_cb (DBusGProxy *file_iface, } static void -file_transferred_bytes_changed_cb (DBusGProxy *file_iface, - guint64 transferred_bytes, EmpathyFile *file) +file_transferred_bytes_changed_cb (TpProxy *proxy, + guint64 count, EmpathyFile *file, GObject *weak_object) { EmpathyFilePriv *priv; priv = GET_PRIV (file); - if (priv->transferred_bytes == transferred_bytes) + if (priv->transferred_bytes == count) return; - priv->transferred_bytes = transferred_bytes; + priv->transferred_bytes = count; g_object_notify (G_OBJECT (file), "transferred-bytes"); } -- cgit v1.2.3