diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:39:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:39:48 +0000 |
commit | 3ade071f273aaa973e44bf95d6b1d4913a18f03b (patch) | |
tree | e2f99d267ae18427645404f215b984afbe73098d /src/nautilus-vfs-directory.c | |
parent | Initial commit. (diff) | |
download | nautilus-3ade071f273aaa973e44bf95d6b1d4913a18f03b.tar.xz nautilus-3ade071f273aaa973e44bf95d6b1d4913a18f03b.zip |
Adding upstream version 43.2.upstream/43.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/nautilus-vfs-directory.c')
-rw-r--r-- | src/nautilus-vfs-directory.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/nautilus-vfs-directory.c b/src/nautilus-vfs-directory.c new file mode 100644 index 0000000..c2bdb11 --- /dev/null +++ b/src/nautilus-vfs-directory.c @@ -0,0 +1,121 @@ +/* + * nautilus-vfs-directory.c: Subclass of NautilusDirectory to help implement the + * virtual trash directory. + * + * Copyright (C) 1999, 2000 Eazel, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, see <http://www.gnu.org/licenses/>. + * + * Author: Darin Adler <darin@bentspoon.com> + */ + +#include <config.h> +#include "nautilus-vfs-directory.h" + +#include "nautilus-directory-private.h" +#include "nautilus-file-private.h" + +G_DEFINE_TYPE (NautilusVFSDirectory, nautilus_vfs_directory, NAUTILUS_TYPE_DIRECTORY); + +static void +nautilus_vfs_directory_init (NautilusVFSDirectory *directory) +{ +} + +static void +vfs_call_when_ready (NautilusDirectory *directory, + NautilusFileAttributes file_attributes, + gboolean wait_for_file_list, + NautilusDirectoryCallback callback, + gpointer callback_data) +{ + g_assert (NAUTILUS_IS_VFS_DIRECTORY (directory)); + + nautilus_directory_call_when_ready_internal + (directory, + NULL, + file_attributes, + wait_for_file_list, + callback, + NULL, + callback_data); +} + +static void +vfs_cancel_callback (NautilusDirectory *directory, + NautilusDirectoryCallback callback, + gpointer callback_data) +{ + g_assert (NAUTILUS_IS_VFS_DIRECTORY (directory)); + + nautilus_directory_cancel_callback_internal + (directory, + NULL, + callback, + NULL, + callback_data); +} + +static void +vfs_file_monitor_add (NautilusDirectory *directory, + gconstpointer client, + gboolean monitor_hidden_files, + NautilusFileAttributes file_attributes, + NautilusDirectoryCallback callback, + gpointer callback_data) +{ + g_assert (NAUTILUS_IS_VFS_DIRECTORY (directory)); + g_assert (client != NULL); + + nautilus_directory_monitor_add_internal + (directory, NULL, + client, + monitor_hidden_files, + file_attributes, + callback, callback_data); +} + +static void +vfs_file_monitor_remove (NautilusDirectory *directory, + gconstpointer client) +{ + g_assert (NAUTILUS_IS_VFS_DIRECTORY (directory)); + g_assert (client != NULL); + + nautilus_directory_monitor_remove_internal (directory, NULL, client); +} + +static void +vfs_force_reload (NautilusDirectory *directory) +{ + NautilusFileAttributes all_attributes; + + g_assert (NAUTILUS_IS_DIRECTORY (directory)); + + all_attributes = nautilus_file_get_all_attributes (); + nautilus_directory_force_reload_internal (directory, + all_attributes); +} + +static void +nautilus_vfs_directory_class_init (NautilusVFSDirectoryClass *klass) +{ + NautilusDirectoryClass *directory_class = NAUTILUS_DIRECTORY_CLASS (klass); + + directory_class->call_when_ready = vfs_call_when_ready; + directory_class->cancel_callback = vfs_cancel_callback; + directory_class->file_monitor_add = vfs_file_monitor_add; + directory_class->file_monitor_remove = vfs_file_monitor_remove; + directory_class->force_reload = vfs_force_reload; +} |