diff options
author | Ernestas Kulik <ernestask@gnome.org> | 2017-06-01 10:00:07 +0300 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2017-08-11 14:28:01 +0300 |
commit | adf25c7df6069b5ce65a1e8cd0e22946fae055d0 (patch) | |
tree | 31de17aa2b1276411c1b07c670d6a2b0da6c81bb | |
parent | 78897ce187d462b279b17153535888cd5737a622 (diff) | |
download | nautilus-adf25c7df6069b5ce65a1e8cd0e22946fae055d0.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 { |