[nautilus/wip/ernestask/attributes: 8/29] files-view: use task API for extracting



commit 5e394317657aaa1927887f77e6c3e9c5a5fea8d8
Author: Ernestas Kulik <ernestask gnome org>
Date:   Thu Jun 1 10:00:07 2017 +0300

    files-view: use task API for extracting

 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 b5402a8..23fc82f 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
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]