[gnome-builder/wip/chergert/pipeline-merge: 10/76] transfer: add IdeTransfer::has_completed() vfunc



commit a373b59a3457c5e801faafce8838e89b97483715
Author: Christian Hergert <chergert redhat com>
Date:   Fri Feb 3 12:19:10 2017 -0800

    transfer: add IdeTransfer::has_completed() vfunc
    
    This allows a check by transfer implementations to override whether or not
    they have completed. This might be useful for transfers that can be
    replayed due to something changing behind the scenes. (Such as a flatpak
    app/runtime installation).

 libide/transfers/ide-transfer.c |    3 +++
 libide/transfers/ide-transfer.h |    1 +
 2 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/libide/transfers/ide-transfer.c b/libide/transfers/ide-transfer.c
index 4bd1a5a..d4d1832 100644
--- a/libide/transfers/ide-transfer.c
+++ b/libide/transfers/ide-transfer.c
@@ -128,5 +128,8 @@ ide_transfer_has_completed (IdeTransfer *self)
 {
   g_return_val_if_fail (IDE_IS_TRANSFER (self), FALSE);
 
+  if (IDE_TRANSFER_GET_IFACE (self)->has_completed)
+    return IDE_TRANSFER_GET_IFACE (self)->has_completed (self);
+
   return !!g_object_get_data (G_OBJECT (self), "IDE_TRANSFER_COMPLETED");
 }
diff --git a/libide/transfers/ide-transfer.h b/libide/transfers/ide-transfer.h
index a8cdcf0..7dfe7fe 100644
--- a/libide/transfers/ide-transfer.h
+++ b/libide/transfers/ide-transfer.h
@@ -38,6 +38,7 @@ struct _IdeTransferInterface
   gboolean (*execute_finish) (IdeTransfer          *self,
                               GAsyncResult         *result,
                               GError              **error);
+  gboolean (*has_completed)  (IdeTransfer          *self);
 };
 
 gdouble  ide_transfer_get_progress   (IdeTransfer          *self);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]