]> git.0d.be Git - empathy.git/commitdiff
Handled TransferredBytes signal properly and show in the progress bar. (Jonny Lamb)
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Fri, 21 Nov 2008 16:15:10 +0000 (16:15 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 21 Nov 2008 16:15:10 +0000 (16:15 +0000)
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
svn path=/trunk/; revision=1758

libempathy/empathy-file.c

index e2e13951f07782fa4c8e75fd08f63c95ddf91df8..c3e028a7a11cd0a57b41a3ecc193dd38e5a09dc5 100644 (file)
@@ -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");
 }