diff options
author | Jannis Pohlmann <jannis@xfce.org> | 2011-02-07 22:22:40 +0100 |
---|---|---|
committer | Jannis Pohlmann <jannis@xfce.org> | 2011-02-07 22:22:40 +0100 |
commit | d52a31fda15823809f23c42724ae43c39ecd20df (patch) | |
tree | 658e9927e712e50dcea0286135cb82a7f73fd252 /thunar/thunar-transfer-job.c | |
parent | 9317f1b660ac0e3753c5a6cc6341a1b59d609381 (diff) | |
download | thunar-d52a31fda15823809f23c42724ae43c39ecd20df.tar.gz |
Improve the thumbnail cache support in transfer jobs a tiny bit.
Diffstat (limited to 'thunar/thunar-transfer-job.c')
-rw-r--r-- | thunar/thunar-transfer-job.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/thunar/thunar-transfer-job.c b/thunar/thunar-transfer-job.c index 801f98ee..f77839f3 100644 --- a/thunar/thunar-transfer-job.c +++ b/thunar/thunar-transfer-job.c @@ -502,6 +502,11 @@ thunar_transfer_job_copy_node (ThunarTransferJob *job, * wrt restoring files from the trash. Other transfer_nodes will be called with target_parent_file. */ + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + for (; err == NULL && node != NULL; node = node->next) { /* guess the target file for this node (unless already provided) */ @@ -541,12 +546,9 @@ retry_copy: if (G_LIKELY (node->source_file != real_target_file)) { /* notify the thumbnail cache of the copy operation */ - application = thunar_application_get (); - thumbnail_cache = thunar_application_get_thumbnail_cache (application); - thunar_thumbnail_cache_copy_file (thumbnail_cache, node->source_file, + thunar_thumbnail_cache_copy_file (thumbnail_cache, + node->source_file, real_target_file); - g_object_unref (thumbnail_cache); - g_object_unref (application); /* check if we have children to copy */ if (node->children != NULL) @@ -585,13 +587,8 @@ retry_remove: &err)) { /* notify the thumbnail cache of the delete operation */ - application = thunar_application_get (); - thumbnail_cache = - thunar_application_get_thumbnail_cache (application); thunar_thumbnail_cache_delete_file (thumbnail_cache, node->source_file); - g_object_unref (thumbnail_cache); - g_object_unref (application); } else { @@ -636,6 +633,9 @@ retry_remove: g_object_unref (info); } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + /* propagate error if we failed or the job was cancelled */ if (G_UNLIKELY (err != NULL)) g_propagate_error (error, err); @@ -671,6 +671,11 @@ thunar_transfer_job_execute (ExoJob *job, exo_job_info_message (job, _("Collecting files...")); + /* take a reference on the thumbnail cache */ + application = thunar_application_get (); + thumbnail_cache = thunar_application_get_thumbnail_cache (application); + g_object_unref (application); + for (sp = transfer_job->source_node_list, tp = transfer_job->target_file_list; sp != NULL && tp != NULL && err == NULL; sp = snext, tp = tnext) @@ -777,12 +782,9 @@ thunar_transfer_job_execute (ExoJob *job, NULL, NULL, &err)) { /* notify the thumbnail cache of the move operation */ - application = thunar_application_get (); - thumbnail_cache = thunar_application_get_thumbnail_cache (application); thunar_thumbnail_cache_move_file (thumbnail_cache, - node->source_file, tp->data); - g_object_unref (thumbnail_cache); - g_object_unref (application); + node->source_file, + tp->data); /* add the target file to the new files list */ new_files_list = thunar_g_file_list_prepend (new_files_list, tp->data); @@ -821,6 +823,9 @@ thunar_transfer_job_execute (ExoJob *job, g_object_unref (info); } + /* release the thumbnail cache */ + g_object_unref (thumbnail_cache); + /* continue if there were no errors yet */ if (G_LIKELY (err == NULL)) { |