[gvfs] MTP: Respect remove_source when pulling a file.



commit fb0ec5da9be74a5d246ec122b3a12333de0b484b
Author: Philip Langdale <philipl overt org>
Date:   Mon Feb 11 07:47:39 2013 -0800

    MTP: Respect remove_source when pulling a file.
    
    This was just an oversight.

 daemon/gvfsbackendmtp.c |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)
---
diff --git a/daemon/gvfsbackendmtp.c b/daemon/gvfsbackendmtp.c
index ba04028..c9f305c 100644
--- a/daemon/gvfsbackendmtp.c
+++ b/daemon/gvfsbackendmtp.c
@@ -1215,19 +1215,24 @@ do_pull (GVfsBackend *backend,
                               _("Can't recursively copy directory"));
     goto exit;
   } else {
-      MtpProgressData mtp_progress_data;
-      mtp_progress_data.progress_callback = progress_callback;
-      mtp_progress_data.progress_callback_data = progress_callback_data;
-      mtp_progress_data.job = G_VFS_JOB (job);
-      int ret = LIBMTP_Get_File_To_File (device,
-                                         strtol (elements[ne-1], NULL, 10),
-                                         local_path,
-                                         (LIBMTP_progressfunc_t)mtp_progress,
-                                         &mtp_progress_data);
-      if (ret != 0) {
-        fail_job (G_VFS_JOB (job), device);
-        goto exit;
-      }
+    MtpProgressData mtp_progress_data;
+    mtp_progress_data.progress_callback = progress_callback;
+    mtp_progress_data.progress_callback_data = progress_callback_data;
+    mtp_progress_data.job = G_VFS_JOB (job);
+    int ret = LIBMTP_Get_File_To_File (device,
+                                       strtol (elements[ne-1], NULL, 10),
+                                       local_path,
+                                       (LIBMTP_progressfunc_t)mtp_progress,
+                                       &mtp_progress_data);
+    if (ret != 0) {
+      fail_job (G_VFS_JOB (job), device);
+      goto exit;
+    }
+    /* Attempt to delete object if requested but don't fail it it fails. */
+    if (remove_source) {
+      DEBUG ("(I) Removing source.");
+      LIBMTP_Delete_Object (device, strtol (elements[ne-1], NULL, 10));
+    }
     g_vfs_job_succeeded (G_VFS_JOB (job));
   }
 


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