mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-11-05 16:04:31 +00:00
a085188ccf
2000-12-12 Pavel Cisler <pavel@eazel.com> reviewed by: Darin Adler <darin@eazel.com> Fixed 4954 Nautilus crashes attempting to empty a .Trash containing undeletable files * libnautilus-extensions/nautilus-file-operations.c: (build_error_string), (handle_xfer_vfs_error) Reworked the error message building logic. Split up the routine into a part that decides what the interesting input for building the error message is and a part that actually builds the error message. Fixed a number of cases where a wrong error message would be used. The actual bug in the bug report was one of the cases -- an assert catching a case that was not handled properly. Fixed: part of -- 638 When a new volume gets mounted, integrate its Trash directory. part of -- 4143 Files dragged to trash icon on desktop seem to vanish, part of -- 4963 Files dragged to Trash from floppy don't appear in Trash, * libnautilus-extensions/nautilus-trash-monitor.c: * libnautilus-extensions/nautilus-trash-monitor.h: (add_one_volume_trash), (nautilus_trash_monitor_get_trash_directories): Added a new call that returns a list of all the Trash directories on all the mouted volumes. * libnautilus-extensions/nautilus-trash-directory.c: (add_volume): Got rid of get_volume_vfs_uri_if_writable. Used the new nautilus_volume_monitor_should_integrate_trash instead to pick the volumes that can support trash. * libnautilus-extensions/nautilus-volume-monitor.c: (nautilus_volume_monitor_should_integrate_trash), (nautilus_volume_monitor_get_volume_mount_uri): * libnautilus-extensions/nautilus-volume-monitor.h: Add new helper calls used by the routine that collects all the trash uris from all mouted volumes. * libnautilus-extensions/nautilus-file-operations.c: (do_empty_trash): Pass in a list of Trash directories instead of just the single trash in the user's home directory. Fixed: 2443 Trash is only found on EXT2 volumes 2444 Trash on read-only volumes is not displayed remaining part of -- 4143 Files dragged to trash icon on desktop seem to vanish, remaining part of -- 4963 Files dragged to Trash from floppy don't appear in Trash, * libnautilus-extensions/nautilus-volume-monitor.c: (nautilus_volume_monitor_should_integrate_trash): Removed the old logic from get_volume_vfs_uri_if_writable that only displayed trash from writable ext2 volumes. Enumerated all the file system types that we know can support trash.
65 lines
2.3 KiB
C
65 lines
2.3 KiB
C
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
|
|
|
|
/*
|
|
nautilus-trash-monitor.h: Nautilus trash state watcher.
|
|
|
|
Copyright (C) 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, write to the
|
|
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA.
|
|
|
|
Author: Pavel Cisler <pavel@eazel.com>
|
|
*/
|
|
|
|
#ifndef NAUTILUS_TRASH_MONITOR_H
|
|
#define NAUTILUS_TRASH_MONITOR_H
|
|
|
|
#include <gtk/gtkobject.h>
|
|
#include <libgnomevfs/gnome-vfs.h>
|
|
|
|
typedef struct NautilusTrashMonitor NautilusTrashMonitor;
|
|
typedef struct NautilusTrashMonitorClass NautilusTrashMonitorClass;
|
|
typedef struct NautilusTrashMonitorDetails NautilusTrashMonitorDetails;
|
|
|
|
#define NAUTILUS_TYPE_TRASH_MONITOR \
|
|
(nautilus_trash_monitor_get_type ())
|
|
#define NAUTILUS_TRASH_MONITOR(obj) \
|
|
(GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_TRASH_MONITOR, NautilusTrashMonitor))
|
|
#define NAUTILUS_TRASH_MONITOR_CLASS(klass) \
|
|
(GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_TRASH_MONITOR, NautilusTrashMonitorClass))
|
|
#define NAUTILUS_IS_TRASH_MONITOR(obj) \
|
|
(GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_TRASH_MONITOR))
|
|
#define NAUTILUS_IS_TRASH_MONITOR_CLASS(klass) \
|
|
(GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_TRASH_MONITOR))
|
|
|
|
struct NautilusTrashMonitor {
|
|
GtkObject object;
|
|
NautilusTrashMonitorDetails *details;
|
|
};
|
|
|
|
struct NautilusTrashMonitorClass {
|
|
GtkObjectClass parent_class;
|
|
|
|
void (* trash_state_changed) (NautilusTrashMonitor *trash_monitor,
|
|
gboolean new_state);
|
|
};
|
|
|
|
GtkType nautilus_trash_monitor_get_type (void);
|
|
|
|
NautilusTrashMonitor *nautilus_trash_monitor_get (void);
|
|
gboolean nautilus_trash_monitor_is_empty (void);
|
|
GList * nautilus_trash_monitor_get_trash_directories (void);
|
|
|
|
#endif
|