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-11 14:28:01 +0300
commitadf25c7df6069b5ce65a1e8cd0e22946fae055d0 (patch)
tree31de17aa2b1276411c1b07c670d6a2b0da6c81bb
parent78897ce187d462b279b17153535888cd5737a622 (diff)
downloadnautilus-adf25c7df6069b5ce65a1e8cd0e22946fae055d0.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
{