summaryrefslogtreecommitdiff
path: root/thunar/thunar-transfer-job.c
diff options
context:
space:
mode:
authorJannis Pohlmann <jannis@xfce.org>2011-02-07 22:22:40 +0100
committerJannis Pohlmann <jannis@xfce.org>2011-02-07 22:22:40 +0100
commitd52a31fda15823809f23c42724ae43c39ecd20df (patch)
tree658e9927e712e50dcea0286135cb82a7f73fd252 /thunar/thunar-transfer-job.c
parent9317f1b660ac0e3753c5a6cc6341a1b59d609381 (diff)
downloadthunar-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.c35
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))
{