diff options
author | Carlos Soriano <csoriano@redhat.com> | 2018-08-06 20:11:31 +0200 |
---|---|---|
committer | Carlos Soriano <csoriano1618@gmail.com> | 2018-08-07 19:14:08 +0000 |
commit | 2543432aa1a51017f7fa0cd06b0659d5505821b3 (patch) | |
tree | 8aec4cc583b656a76215ffcbb3e45325c73887ab /src/nautilus-dbus-manager.c | |
parent | 6b5be51c0497f9ad1633e9db19047d163c34f18a (diff) | |
download | nautilus-2543432aa1a51017f7fa0cd06b0659d5505821b3.tar.gz |
dbus-manager: Implement creation of new folders
For the integration with the desktop icons extension.
Diffstat (limited to 'src/nautilus-dbus-manager.c')
-rw-r--r-- | src/nautilus-dbus-manager.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/nautilus-dbus-manager.c b/src/nautilus-dbus-manager.c index 7852b1f27..5ba39e73f 100644 --- a/src/nautilus-dbus-manager.c +++ b/src/nautilus-dbus-manager.c @@ -88,6 +88,28 @@ handle_copy_file (NautilusDBusFileOperations *object, } static gboolean +handle_create_folder (NautilusDBusFileOperations *object, + GDBusMethodInvocation *invocation, + const gchar *uri) +{ + g_autoptr (GFile) file = NULL; + g_autoptr (GFile) parent_file = NULL; + g_autofree gchar *basename = NULL; + g_autofree gchar *parent_file_uri = NULL; + + file = g_file_new_for_uri (uri); + basename = g_file_get_basename (file); + parent_file = g_file_get_parent (file); + parent_file_uri = g_file_get_uri (parent_file); + + nautilus_file_operations_new_folder (NULL, parent_file_uri, basename, + NULL, NULL); + + nautilus_dbus_file_operations_complete_create_folder (object, invocation); + return TRUE; /* invocation was handled */ +} + +static gboolean handle_copy_uris (NautilusDBusFileOperations *object, GDBusMethodInvocation *invocation, const gchar **sources, @@ -165,6 +187,10 @@ nautilus_dbus_manager_init (NautilusDBusManager *self) "handle-trash-files", G_CALLBACK (handle_trash_files), self); + g_signal_connect (self->file_operations, + "handle-create-folder", + G_CALLBACK (handle_create_folder), + self); } static void |