[nautilus] dbus: Implement move operation
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] dbus: Implement move operation
- Date: Wed, 8 Aug 2018 12:11:55 +0000 (UTC)
commit 9e9ca30c1355555630f561251acafbbaed3a5afa
Author: Carlos Soriano <csoriano gnome org>
Date: Wed Aug 8 14:07:48 2018 +0200
dbus: Implement move operation
Analog to the copy operation.
data/dbus-interfaces.xml | 4 ++++
src/nautilus-dbus-manager.c | 35 +++++++++++++++++++++++++++++++----
2 files changed, 35 insertions(+), 4 deletions(-)
---
diff --git a/data/dbus-interfaces.xml b/data/dbus-interfaces.xml
index 20ffadde1..64176225c 100644
--- a/data/dbus-interfaces.xml
+++ b/data/dbus-interfaces.xml
@@ -27,6 +27,10 @@
<arg type='as' name='SourceFilesURIList' direction='in'/>
<arg type='s' name='DestinationDirectoryURI' direction='in'/>
</method>
+ <method name='MoveURIs'>
+ <arg type='as' name='SourceFilesURIList' direction='in'/>
+ <arg type='s' name='DestinationDirectoryURI' direction='in'/>
+ </method>
<method name='EmptyTrash'>
</method>"
<method name='TrashFiles'>
diff --git a/src/nautilus-dbus-manager.c b/src/nautilus-dbus-manager.c
index 8d72ecfb9..544c8c0bd 100644
--- a/src/nautilus-dbus-manager.c
+++ b/src/nautilus-dbus-manager.c
@@ -132,9 +132,9 @@ handle_create_folder (NautilusDBusFileOperations *object,
}
static void
-copy_on_finished (GHashTable *debutting_uris,
- gboolean success,
- gpointer callback_data)
+copy_move_on_finished (GHashTable *debutting_uris,
+ gboolean success,
+ gpointer callback_data)
{
g_application_release (g_application_get_default ());
}
@@ -155,7 +155,30 @@ handle_copy_uris (NautilusDBusFileOperations *object,
g_application_hold (g_application_get_default ());
nautilus_file_operations_copy_move (source_files, destination,
- GDK_ACTION_COPY, NULL, copy_on_finished, NULL);
+ GDK_ACTION_COPY, NULL, copy_move_on_finished, NULL);
+
+ g_list_free_full (source_files, g_free);
+ nautilus_dbus_file_operations_complete_copy_uris (object, invocation);
+ return TRUE; /* invocation was handled */
+}
+
+static gboolean
+handle_move_uris (NautilusDBusFileOperations *object,
+ GDBusMethodInvocation *invocation,
+ const gchar **sources,
+ const gchar *destination)
+{
+ GList *source_files = NULL;
+ gint idx;
+
+ for (idx = 0; sources[idx] != NULL; idx++)
+ {
+ source_files = g_list_prepend (source_files, g_strdup (sources[idx]));
+ }
+
+ g_application_hold (g_application_get_default ());
+ nautilus_file_operations_copy_move (source_files, destination,
+ GDK_ACTION_MOVE, NULL, copy_move_on_finished, NULL);
g_list_free_full (source_files, g_free);
nautilus_dbus_file_operations_complete_copy_uris (object, invocation);
@@ -212,6 +235,10 @@ nautilus_dbus_manager_init (NautilusDBusManager *self)
"handle-copy-uris",
G_CALLBACK (handle_copy_uris),
self);
+ g_signal_connect (self->file_operations,
+ "handle-move-uris",
+ G_CALLBACK (handle_move_uris),
+ self);
g_signal_connect (self->file_operations,
"handle-empty-trash",
G_CALLBACK (handle_empty_trash),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]