diff options
author | Ernestas Kulik <ernestask@gnome.org> | 2017-06-01 10:00:07 +0300 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2017-08-17 18:54:05 +0300 |
commit | 1271bf787a2dd1d710f5e4adf782d3edcc34ad8f (patch) | |
tree | a16dedcdadeabbf28ee71e0d12a070e5014bc9bc | |
parent | 5d7a99fccdb455005041b102bb54ca1490c63486 (diff) | |
download | nautilus-1271bf787a2dd1d710f5e4adf782d3edcc34ad8f.tar.gz |
files-view: use task API for extracting
-rw-r--r-- | src/nautilus-files-view.c | 24 |
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 { |