diff options
author | Carlos Soriano <csoriano@gnome.org> | 2018-08-08 14:07:48 +0200 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2018-08-08 14:07:48 +0200 |
commit | 9e9ca30c1355555630f561251acafbbaed3a5afa (patch) | |
tree | 7ef0dd48ef9ba57f6b73a4a2b4cdd8fc9f7e6fcf /src/nautilus-dbus-manager.c | |
parent | 978dc3ce8e3b2b208e9f0199976325467363bad9 (diff) | |
download | nautilus-9e9ca30c1355555630f561251acafbbaed3a5afa.tar.gz |
dbus: Implement move operation
Analog to the copy operation.
Diffstat (limited to 'src/nautilus-dbus-manager.c')
-rw-r--r-- | src/nautilus-dbus-manager.c | 35 |
1 files changed, 31 insertions, 4 deletions
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); @@ -213,6 +236,10 @@ nautilus_dbus_manager_init (NautilusDBusManager *self) 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), self); |