From 6da8c49673de8f86d5ea477222543f38468b5ab4 Mon Sep 17 00:00:00 2001 From: Packit Service Date: Jan 08 2021 06:13:07 +0000 Subject: Apply patch 0003-dbus-manager-Implement-undo-redo.patch patch_name: 0003-dbus-manager-Implement-undo-redo.patch present_in_specfile: true location_in_specfile: 3 --- diff --git a/data/dbus-interfaces.xml b/data/dbus-interfaces.xml index 4e67f13..2133bb9 100644 --- a/data/dbus-interfaces.xml +++ b/data/dbus-interfaces.xml @@ -41,5 +41,9 @@ + + + + diff --git a/src/nautilus-dbus-manager.c b/src/nautilus-dbus-manager.c index 337a732..bce6b5c 100644 --- a/src/nautilus-dbus-manager.c +++ b/src/nautilus-dbus-manager.c @@ -26,6 +26,7 @@ #include "nautilus-generated.h" #include "nautilus-file-operations.h" +#include "nautilus-file-undo-manager.h" #define DEBUG_FLAG NAUTILUS_DEBUG_DBUS #include "nautilus-debug.h" @@ -95,6 +96,32 @@ handle_copy_file (NautilusDBusFileOperations *object, } static gboolean +handle_redo (NautilusDBusFileOperations *object, + GDBusMethodInvocation *invocation) +{ + g_autoptr (NautilusFileUndoManager) undo_manager = NULL; + + undo_manager = nautilus_file_undo_manager_get (); + nautilus_file_undo_manager_redo (NULL); + + nautilus_dbus_file_operations_complete_redo (object, invocation); + return TRUE; /* invocation was handled */ +} + +static gboolean +handle_undo (NautilusDBusFileOperations *object, + GDBusMethodInvocation *invocation) +{ + g_autoptr (NautilusFileUndoManager) undo_manager = NULL; + + undo_manager = nautilus_file_undo_manager_get (); + nautilus_file_undo_manager_undo (NULL); + + nautilus_dbus_file_operations_complete_undo (object, invocation); + return TRUE; /* invocation was handled */ +} + +static gboolean handle_create_folder (NautilusDBusFileOperations *object, GDBusMethodInvocation *invocation, const gchar *uri) @@ -198,6 +225,14 @@ nautilus_dbus_manager_init (NautilusDBusManager *self) "handle-create-folder", G_CALLBACK (handle_create_folder), self); + g_signal_connect (self->file_operations, + "handle-undo", + G_CALLBACK (handle_undo), + self); + g_signal_connect (self->file_operations, + "handle-redo", + G_CALLBACK (handle_redo), + self); } static void