summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2017-06-01 10:00:07 +0300
committerErnestas Kulik <ernestask@gnome.org>2017-08-17 18:54:05 +0300
commit1271bf787a2dd1d710f5e4adf782d3edcc34ad8f (patch)
treea16dedcdadeabbf28ee71e0d12a070e5014bc9bc
parent5d7a99fccdb455005041b102bb54ca1490c63486 (diff)
downloadnautilus-1271bf787a2dd1d710f5e4adf782d3edcc34ad8f.tar.gz
files-view: use task API for extracting
-rw-r--r--src/nautilus-files-view.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index b3ea59516..8a8a43d72 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -97,6 +97,9 @@
#define DEBUG_FLAG NAUTILUS_DEBUG_DIRECTORY_VIEW
#include "nautilus-debug.h"
+#include "nautilus-task-manager.h"
+#include "tasks/nautilus-extract-task.h"
+
/* Minimum starting update inverval */
#define UPDATE_INTERVAL_MIN 100
/* Maximum update interval */
@@ -6253,8 +6256,9 @@ typedef struct
} ExtractData;
static void
-extract_done (GList *outputs,
- gpointer user_data)
+on_extract_task_completed (NautilusExtractTask *task,
+ GList *outputs,
+ gpointer user_data)
{
NautilusFilesViewPrivate *priv;
ExtractData *data;
@@ -6355,6 +6359,8 @@ extract_files (NautilusFilesView *view,
if (extracting_to_current_directory)
{
+ g_autoptr (NautilusTaskManager) manager = NULL;
+ g_autoptr (NautilusTask) task = NULL;
ExtractData *data;
data = g_new (ExtractData, 1);
@@ -6374,11 +6380,15 @@ extract_files (NautilusFilesView *view,
NULL,
G_CONNECT_AFTER);
- nautilus_file_operations_extract_files (locations,
- destination_directory,
- nautilus_files_view_get_containing_window (view),
- extract_done,
- data);
+ manager = nautilus_task_manager_dup_singleton ();
+ task = nautilus_extract_task_new (nautilus_files_view_get_containing_window (view),
+ locations,
+ destination_directory);
+
+ g_signal_connect (task, "completed",
+ G_CALLBACK (on_extract_task_completed), data);
+
+ nautilus_task_manager_queue_task (manager, task);
}
else
{