nautilus r13795 - in trunk: . libnautilus-private src src/file-manager
- From: alexl svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r13795 - in trunk: . libnautilus-private src src/file-manager
- Date: Thu, 21 Feb 2008 13:20:20 +0000 (GMT)
Author: alexl
Date: Thu Feb 21 13:20:19 2008
New Revision: 13795
URL: http://svn.gnome.org/viewvc/nautilus?rev=13795&view=rev
Log:
2008-02-21 David Zeuthen <davidz redhat com>
* libnautilus-private/nautilus-autorun.c: (should_autorun_mount):
Use g_volume_should_automount() to determine if we should autorun
programs on a mount.
* libnautilus-private/nautilus-directory-async.c:
(nautilus_directory_set_up_request),
(nautilus_async_destroying_file), (lacks_filesystem_info),
(wants_filesystem_info), (request_is_satisfied),
(directory_count_start), (mime_list_start),
(filesystem_info_cancel), (filesystem_info_stop),
(filesystem_info_state_free), (got_filesystem_info),
(query_filesystem_info_callback), (filesystem_info_start),
(start_or_stop_io), (nautilus_directory_cancel),
(cancel_filesystem_info_for_file), (cancel_loading_attributes),
(nautilus_directory_cancel_loading_file_attributes):
* libnautilus-private/nautilus-directory-private.h:
* libnautilus-private/nautilus-file-attributes.h: Add new
filesystem info attribute; right now two bits in NautilusFile's
private structure are set; the filesystem::use-preview and
filesystem:readonly.
* libnautilus-private/nautilus-file-operations.c:
(nautilus_file_operations_mount_volume):
* src/nautilus-places-sidebar.c: (open_selected_bookmark),
(mount_shortcut_cb): Don't inhibit automount from
nautilus_file_operations_mount_volume() because then everything
will be inhibited as the mount_added callback use it as
well. Rather, move the call to inhibit out to the proper call
sites.
* libnautilus-private/nautilus-file-private.h:
* libnautilus-private/nautilus-file.c:
(nautilus_file_get_filesystem_use_preview),
(nautilus_file_should_show_thumbnail),
(get_speed_tradeoff_preference_for_file),
(nautilus_file_get_mount):
* libnautilus-private/nautilus-file.h:
* src/file-manager/fm-directory-view.c: (load_directory):
* src/file-manager/fm-icon-view.c: (should_preview_sound):
* src/nautilus-window-manage-views.c: (update_for_new_location):
Use the new filesystem::use-preview hint to determine if we should
preview non-native files (such as gphoto2:// and cdda://
mounts).
Modified:
trunk/ChangeLog
trunk/libnautilus-private/nautilus-autorun.c
trunk/libnautilus-private/nautilus-directory-async.c
trunk/libnautilus-private/nautilus-directory-private.h
trunk/libnautilus-private/nautilus-directory.c
trunk/libnautilus-private/nautilus-dnd.c
trunk/libnautilus-private/nautilus-file-attributes.h
trunk/libnautilus-private/nautilus-file-operations.c
trunk/libnautilus-private/nautilus-file-private.h
trunk/libnautilus-private/nautilus-file.c
trunk/libnautilus-private/nautilus-file.h
trunk/src/file-manager/fm-directory-view.c
trunk/src/file-manager/fm-icon-view.c
trunk/src/nautilus-application.c
trunk/src/nautilus-places-sidebar.c
Modified: trunk/libnautilus-private/nautilus-autorun.c
==============================================================================
--- trunk/libnautilus-private/nautilus-autorun.c (original)
+++ trunk/libnautilus-private/nautilus-autorun.c Thu Feb 21 13:20:19 2008
@@ -1339,10 +1339,12 @@
ignore_autorun = TRUE;
g_object_set_data (G_OBJECT (enclosing_volume), "nautilus-inhibit-autorun", NULL);
}
- g_object_unref (enclosing_volume);
}
if (ignore_autorun) {
+ if (enclosing_volume != NULL) {
+ g_object_unref (enclosing_volume);
+ }
return FALSE;
}
@@ -1350,7 +1352,7 @@
for (l = inhibit_mount_handling_for; l != NULL; l = l->next) {
file = l->data;
- if (g_file_contains_file (root, file)) {
+ if (g_file_has_prefix (file, root)) {
ignore_autorun = TRUE;
inhibit_mount_handling_for = g_list_delete_link (inhibit_mount_handling_for, l);
@@ -1360,10 +1362,14 @@
}
}
- if (!g_file_is_native (root)) {
- /* only do autorun on local files */
- /* TODO: Maybe we should do this on some gvfs mounts? like gphoto: ? */
- ignore_autorun = TRUE;
+ /* only do autorun on local files or files where g_volume_should_automount() returns TRUE */
+ ignore_autorun = TRUE;
+ if (g_file_is_native (root) ||
+ (enclosing_volume != NULL && g_volume_should_automount (enclosing_volume))) {
+ ignore_autorun = FALSE;
+ }
+ if (enclosing_volume != NULL) {
+ g_object_unref (enclosing_volume);
}
g_object_unref (root);
Modified: trunk/libnautilus-private/nautilus-directory-async.c
==============================================================================
--- trunk/libnautilus-private/nautilus-directory-async.c (original)
+++ trunk/libnautilus-private/nautilus-directory-async.c Thu Feb 21 13:20:19 2008
@@ -89,6 +89,12 @@
NautilusFile *file;
};
+struct FilesystemInfoState {
+ NautilusDirectory *directory;
+ GCancellable *cancellable;
+ NautilusFile *file;
+};
+
struct DirectoryLoadState {
NautilusDirectory *directory;
GCancellable *cancellable;
@@ -628,6 +634,10 @@
request->mount = TRUE;
request->file_info = TRUE;
}
+
+ if (file_attributes & NAUTILUS_FILE_ATTRIBUTE_FILESYSTEM_INFO) {
+ request->filesystem_info = TRUE;
+ }
}
static void
@@ -1581,6 +1591,12 @@
directory->details->mount_state->file = NULL;
changed = TRUE;
}
+
+ if (directory->details->filesystem_info_state != NULL &&
+ directory->details->filesystem_info_state->file == file) {
+ directory->details->filesystem_info_state->file = NULL;
+ changed = TRUE;
+ }
/* Let the directory take care of the rest. */
if (changed) {
@@ -1645,12 +1661,24 @@
}
static gboolean
+lacks_filesystem_info (NautilusFile *file)
+{
+ return !file->details->filesystem_info_is_up_to_date;
+}
+
+static gboolean
wants_info (const Request *request)
{
return request->file_info;
}
static gboolean
+wants_filesystem_info (const Request *request)
+{
+ return request->filesystem_info;
+}
+
+static gboolean
lacks_deep_count (NautilusFile *file)
{
return file->details->deep_counts_status != NAUTILUS_REQUEST_DONE;
@@ -1798,6 +1826,12 @@
}
}
+ if (request->filesystem_info) {
+ if (has_problem (directory, file, lacks_filesystem_info)) {
+ return FALSE;
+ }
+ }
+
if (request->top_left_text) {
if (has_problem (directory, file, lacks_top_left)) {
return FALSE;
@@ -2606,10 +2640,15 @@
directory->details->count_in_progress = state;
+ location = nautilus_file_get_location (file);
#ifdef DEBUG_LOAD_DIRECTORY
- g_message ("load_directory called to get shallow file count for %s", uri);
+ {
+ char *uri;
+ uri = g_file_get_uri (location);
+ g_message ("load_directory called to get shallow file count for %s", uri);
+ g_free (uri);
+ }
#endif
- location = nautilus_file_get_location (file);
g_file_enumerate_children_async (location,
G_FILE_ATTRIBUTE_STANDARD_NAME ","
@@ -3137,11 +3176,16 @@
directory->details->mime_list_in_progress = state;
+ location = nautilus_file_get_location (file);
#ifdef DEBUG_LOAD_DIRECTORY
- g_message ("load_directory called to get MIME list of %s", uri);
+ {
+ char *uri;
+ uri = g_file_get_uri (location);
+ g_message ("load_directory called to get MIME list of %s", uri);
+ g_free (uri);
+ }
#endif
- location = nautilus_file_get_location (file);
g_file_enumerate_children_async (location,
G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
0, /* flags */
@@ -4080,6 +4124,147 @@
}
static void
+filesystem_info_cancel (NautilusDirectory *directory)
+{
+ if (directory->details->filesystem_info_state != NULL) {
+ g_cancellable_cancel (directory->details->filesystem_info_state->cancellable);
+ directory->details->filesystem_info_state->directory = NULL;
+ directory->details->filesystem_info_state = NULL;
+ async_job_end (directory, "filesystem info");
+ }
+}
+
+static void
+filesystem_info_stop (NautilusDirectory *directory)
+{
+ NautilusFile *file;
+
+ if (directory->details->filesystem_info_state != NULL) {
+ file = directory->details->filesystem_info_state->file;
+
+ if (file != NULL) {
+ g_assert (NAUTILUS_IS_FILE (file));
+ g_assert (file->details->directory == directory);
+ if (is_needy (file,
+ lacks_filesystem_info,
+ wants_filesystem_info)) {
+ return;
+ }
+ }
+
+ /* The filesystem info is not wanted, so stop it. */
+ filesystem_info_cancel (directory);
+ }
+}
+
+static void
+filesystem_info_state_free (FilesystemInfoState *state)
+{
+ g_object_unref (state->cancellable);
+ g_free (state);
+}
+
+static void
+got_filesystem_info (FilesystemInfoState *state, GFileInfo *info)
+{
+ NautilusDirectory *directory;
+ NautilusFile *file;
+
+ /* careful here, info may be NULL */
+
+ directory = nautilus_directory_ref (state->directory);
+
+ state->directory->details->filesystem_info_state = NULL;
+ async_job_end (state->directory, "filesystem info");
+
+ file = nautilus_file_ref (state->file);
+
+ file->details->filesystem_info_is_up_to_date = TRUE;
+ if (info != NULL) {
+ file->details->filesystem_use_preview =
+ g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW);
+ file->details->filesystem_readonly =
+ g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY);
+ }
+
+ nautilus_directory_async_state_changed (directory);
+ nautilus_file_changed (file);
+
+ nautilus_file_unref (file);
+
+ nautilus_directory_unref (directory);
+
+ filesystem_info_state_free (state);
+}
+
+static void
+query_filesystem_info_callback (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GFileInfo *info;
+ FilesystemInfoState *state;
+
+ state = user_data;
+ if (state->directory == NULL) {
+ /* Operation was cancelled. Bail out */
+ filesystem_info_state_free (state);
+ return;
+ }
+
+ info = g_file_query_filesystem_info_finish (G_FILE (source_object), res, NULL);
+
+ got_filesystem_info (state, info);
+
+ if (info != NULL) {
+ g_object_unref (info);
+ }
+}
+
+static void
+filesystem_info_start (NautilusDirectory *directory,
+ NautilusFile *file,
+ gboolean *doing_io)
+{
+ GFile *location;
+ FilesystemInfoState *state;
+
+ if (directory->details->filesystem_info_state != NULL) {
+ *doing_io = TRUE;
+ return;
+ }
+
+ if (!is_needy (file,
+ lacks_filesystem_info,
+ wants_filesystem_info)) {
+ return;
+ }
+ *doing_io = TRUE;
+
+ if (!async_job_start (directory, "filesystem info")) {
+ return;
+ }
+
+ state = g_new0 (FilesystemInfoState, 1);
+ state->directory = directory;
+ state->file = file;
+ state->cancellable = g_cancellable_new ();
+
+ location = nautilus_file_get_location (file);
+
+ directory->details->filesystem_info_state = state;
+
+ g_file_query_filesystem_info_async (location,
+ G_FILE_ATTRIBUTE_FILESYSTEM_READONLY ","
+ G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW,
+ G_PRIORITY_DEFAULT,
+ state->cancellable,
+ query_filesystem_info_callback,
+ state);
+ g_object_unref (location);
+}
+
+static void
extension_info_cancel (NautilusDirectory *directory)
{
if (directory->details->extension_info_in_progress != NULL) {
@@ -4257,6 +4442,7 @@
extension_info_stop (directory);
mount_stop (directory);
thumbnail_stop (directory);
+ filesystem_info_stop (directory);
doing_io = FALSE;
/* Take files that are all done off the queue. */
@@ -4285,6 +4471,7 @@
mime_list_start (directory, file, &doing_io);
top_left_start (directory, file, &doing_io);
thumbnail_start (directory, file, &doing_io);
+ filesystem_info_start (directory, file, &doing_io);
if (doing_io) {
return;
@@ -4356,6 +4543,7 @@
extension_info_cancel (directory);
thumbnail_cancel (directory);
mount_cancel (directory);
+ filesystem_info_cancel (directory);
/* We aren't waiting for anything any more. */
if (waiting_directories != NULL) {
@@ -4435,6 +4623,16 @@
}
static void
+cancel_filesystem_info_for_file (NautilusDirectory *directory,
+ NautilusFile *file)
+{
+ if (directory->details->filesystem_info_state != NULL &&
+ directory->details->filesystem_info_state->file == file) {
+ filesystem_info_cancel (directory);
+ }
+}
+
+static void
cancel_link_info_for_file (NautilusDirectory *directory,
NautilusFile *file)
{
@@ -4469,6 +4667,9 @@
if (request.file_info) {
file_info_cancel (directory);
}
+ if (request.filesystem_info) {
+ filesystem_info_cancel (directory);
+ }
if (request.link_info) {
link_info_cancel (directory);
}
@@ -4518,6 +4719,9 @@
if (request.file_info) {
cancel_file_info_for_file (directory, file);
}
+ if (request.filesystem_info) {
+ cancel_filesystem_info_for_file (directory, file);
+ }
if (request.link_info) {
cancel_link_info_for_file (directory, file);
}
Modified: trunk/libnautilus-private/nautilus-directory-private.h
==============================================================================
--- trunk/libnautilus-private/nautilus-directory-private.h (original)
+++ trunk/libnautilus-private/nautilus-directory-private.h Thu Feb 21 13:20:19 2008
@@ -44,6 +44,7 @@
typedef struct MimeListState MimeListState;
typedef struct ThumbnailState ThumbnailState;
typedef struct MountState MountState;
+typedef struct FilesystemInfoState FilesystemInfoState;
struct NautilusDirectoryDetails
{
@@ -106,6 +107,8 @@
ThumbnailState *thumbnail_state;
MountState *mount_state;
+
+ FilesystemInfoState *filesystem_info_state;
TopLeftTextReadState *top_left_read_state;
@@ -130,6 +133,7 @@
gboolean extension_info;
gboolean thumbnail;
gboolean mount;
+ gboolean filesystem_info;
} Request;
NautilusDirectory *nautilus_directory_get_existing (GFile *location);
Modified: trunk/libnautilus-private/nautilus-directory.c
==============================================================================
--- trunk/libnautilus-private/nautilus-directory.c (original)
+++ trunk/libnautilus-private/nautilus-directory.c Thu Feb 21 13:20:19 2008
@@ -1240,7 +1240,7 @@
directory = NAUTILUS_DIRECTORY (value);
collect_data = (CollectData *) callback_data;
- if (g_file_contains_file (collect_data->container, location) ||
+ if (g_file_has_prefix (location, collect_data->container) ||
g_file_equal (collect_data->container, location)) {
nautilus_directory_ref (directory);
collect_data->directories =
Modified: trunk/libnautilus-private/nautilus-dnd.c
==============================================================================
--- trunk/libnautilus-private/nautilus-dnd.c (original)
+++ trunk/libnautilus-private/nautilus-dnd.c Thu Feb 21 13:20:19 2008
@@ -431,7 +431,7 @@
/* Compare the first dropped uri with the target uri for same fs match. */
dropped = g_file_new_for_uri (dropped_uri);
same_fs = check_same_fs (target, dropped);
- target_is_source_parent = g_file_contains_file (target, dropped);
+ target_is_source_parent = g_file_has_prefix (dropped, target);
if (same_fs || target_is_source_parent ||
g_file_has_uri_scheme (dropped, "trash")) {
Modified: trunk/libnautilus-private/nautilus-file-attributes.h
==============================================================================
--- trunk/libnautilus-private/nautilus-file-attributes.h (original)
+++ trunk/libnautilus-private/nautilus-file-attributes.h Thu Feb 21 13:20:19 2008
@@ -41,6 +41,7 @@
NAUTILUS_FILE_ATTRIBUTE_EXTENSION_INFO = 1 << 8,
NAUTILUS_FILE_ATTRIBUTE_THUMBNAIL = 1 << 9,
NAUTILUS_FILE_ATTRIBUTE_MOUNT = 1 << 10,
+ NAUTILUS_FILE_ATTRIBUTE_FILESYSTEM_INFO = 1 << 11,
} NautilusFileAttributes;
#endif /* NAUTILUS_FILE_ATTRIBUTES_H */
Modified: trunk/libnautilus-private/nautilus-file-operations.c
==============================================================================
--- trunk/libnautilus-private/nautilus-file-operations.c (original)
+++ trunk/libnautilus-private/nautilus-file-operations.c Thu Feb 21 13:20:19 2008
@@ -2040,7 +2040,6 @@
GMountOperation *mount_op;
mount_op = eel_mount_operation_new (parent_window);
- nautilus_inhibit_autorun_for_volume (volume);
g_volume_mount (volume, 0, mount_op, NULL, volume_mount_cb, mount_op);
}
Modified: trunk/libnautilus-private/nautilus-file-private.h
==============================================================================
--- trunk/libnautilus-private/nautilus-file-private.h (original)
+++ trunk/libnautilus-private/nautilus-file-private.h Thu Feb 21 13:20:19 2008
@@ -206,6 +206,10 @@
eel_boolean_bit can_mount : 1;
eel_boolean_bit can_unmount : 1;
eel_boolean_bit can_eject : 1;
+
+ eel_boolean_bit filesystem_readonly : 1;
+ eel_boolean_bit filesystem_use_preview : 2; /* GFilesystemPreviewType */
+ eel_boolean_bit filesystem_info_is_up_to_date : 1;
};
typedef struct {
Modified: trunk/libnautilus-private/nautilus-file.c
==============================================================================
--- trunk/libnautilus-private/nautilus-file.c (original)
+++ trunk/libnautilus-private/nautilus-file.c Thu Feb 21 13:20:19 2008
@@ -3199,10 +3199,30 @@
return FALSE;
}
+GFilesystemPreviewType
+nautilus_file_get_filesystem_use_preview (NautilusFile *file)
+{
+ GFilesystemPreviewType use_preview;
+ NautilusFile *parent;
+
+ parent = nautilus_file_get_parent (file);
+ if (parent != NULL) {
+ use_preview = parent->details->filesystem_use_preview;
+ g_object_unref (parent);
+ } else {
+ use_preview = 0;
+ }
+
+ return use_preview;
+}
+
gboolean
nautilus_file_should_show_thumbnail (NautilusFile *file)
{
const char *mime_type;
+ GFilesystemPreviewType use_preview;
+
+ use_preview = nautilus_file_get_filesystem_use_preview (file);
mime_type = eel_ref_str_peek (file->details->mime_type);
if (mime_type == NULL) {
@@ -3213,14 +3233,26 @@
nautilus_file_get_size (file) > (unsigned int)cached_thumbnail_limit) {
return FALSE;
}
-
+
if (show_image_thumbs == NAUTILUS_SPEED_TRADEOFF_ALWAYS) {
- return TRUE;
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ return FALSE;
+ } else {
+ return TRUE;
+ }
} else if (show_image_thumbs == NAUTILUS_SPEED_TRADEOFF_NEVER) {
return FALSE;
} else {
- /* only local files */
- return nautilus_file_is_local (file);
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ /* file system says to never thumbnail anything */
+ return FALSE;
+ } else if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL) {
+ /* file system says we should treat file as if it's local */
+ return TRUE;
+ } else {
+ /* only local files */
+ return nautilus_file_is_local (file);
+ }
}
return FALSE;
@@ -3715,10 +3747,18 @@
static gboolean
get_speed_tradeoff_preference_for_file (NautilusFile *file, NautilusSpeedTradeoffValue value)
{
+ GFilesystemPreviewType use_preview;
+
g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE);
+
+ use_preview = nautilus_file_get_filesystem_use_preview (file);
if (value == NAUTILUS_SPEED_TRADEOFF_ALWAYS) {
- return TRUE;
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ return FALSE;
+ } else {
+ return TRUE;
+ }
}
if (value == NAUTILUS_SPEED_TRADEOFF_NEVER) {
@@ -3726,7 +3766,17 @@
}
g_assert (value == NAUTILUS_SPEED_TRADEOFF_LOCAL_ONLY);
- return nautilus_file_is_local (file);
+
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ /* file system says to never preview anything */
+ return FALSE;
+ } else if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL) {
+ /* file system says we should treat file as if it's local */
+ return TRUE;
+ } else {
+ /* only local files */
+ return nautilus_file_is_local (file);
+ }
}
gboolean
Modified: trunk/libnautilus-private/nautilus-file.h
==============================================================================
--- trunk/libnautilus-private/nautilus-file.h (original)
+++ trunk/libnautilus-private/nautilus-file.h Thu Feb 21 13:20:19 2008
@@ -218,6 +218,7 @@
GFileInfo *attributes,
NautilusFileOperationCallback callback,
gpointer callback_data);
+GFilesystemPreviewType nautilus_file_get_filesystem_use_preview (NautilusFile *file);
/* Permissions. */
gboolean nautilus_file_can_get_permissions (NautilusFile *file);
Modified: trunk/src/file-manager/fm-directory-view.c
==============================================================================
--- trunk/src/file-manager/fm-directory-view.c (original)
+++ trunk/src/file-manager/fm-directory-view.c Thu Feb 21 13:20:19 2008
@@ -7552,7 +7552,9 @@
* well as doing a call when ready), in case external forces
* change the directory's file metadata.
*/
- attributes = NAUTILUS_FILE_ATTRIBUTE_METADATA;
+ attributes =
+ NAUTILUS_FILE_ATTRIBUTE_METADATA |
+ NAUTILUS_FILE_ATTRIBUTE_FILESYSTEM_INFO;
view->details->metadata_for_directory_as_file_pending = TRUE;
view->details->metadata_for_files_in_directory_pending = TRUE;
nautilus_file_call_when_ready
@@ -7568,7 +7570,9 @@
/* If capabilities change, then we need to update the menus
* because of New Folder, and relative emblems.
*/
- attributes = NAUTILUS_FILE_ATTRIBUTE_INFO;
+ attributes =
+ NAUTILUS_FILE_ATTRIBUTE_INFO |
+ NAUTILUS_FILE_ATTRIBUTE_FILESYSTEM_INFO;
nautilus_file_monitor_add (view->details->directory_as_file,
&view->details->directory_as_file,
attributes);
Modified: trunk/src/file-manager/fm-icon-view.c
==============================================================================
--- trunk/src/file-manager/fm-icon-view.c (original)
+++ trunk/src/file-manager/fm-icon-view.c Thu Feb 21 13:20:19 2008
@@ -1888,6 +1888,9 @@
should_preview_sound (NautilusFile *file)
{
GFile *location;
+ GFilesystemPreviewType use_preview;
+
+ use_preview = nautilus_file_get_filesystem_use_preview (file);
location = nautilus_file_get_location (file);
if (g_file_has_uri_scheme (location, "burn")) {
@@ -1902,10 +1905,23 @@
}
if (preview_sound_auto_value == NAUTILUS_SPEED_TRADEOFF_ALWAYS) {
- return TRUE;
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ return FALSE;
+ } else {
+ return TRUE;
+ }
}
- return nautilus_file_is_local (file);
+ if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_NEVER) {
+ /* file system says to never preview anything */
+ return FALSE;
+ } else if (use_preview == G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL) {
+ /* file system says we should treat file as if it's local */
+ return TRUE;
+ } else {
+ /* only local files */
+ return nautilus_file_is_local (file);
+ }
}
static int
Modified: trunk/src/nautilus-application.c
==============================================================================
--- trunk/src/nautilus-application.c (original)
+++ trunk/src/nautilus-application.c Thu Feb 21 13:20:19 2008
@@ -1460,7 +1460,7 @@
location = nautilus_window_get_location (window);
- if (g_file_contains_file (root, location)) {
+ if (g_file_has_prefix (location, root)) {
close_list = g_list_prepend (close_list, window);
}
g_object_unref (location);
Modified: trunk/src/nautilus-places-sidebar.c
==============================================================================
--- trunk/src/nautilus-places-sidebar.c (original)
+++ trunk/src/nautilus-places-sidebar.c Thu Feb 21 13:20:19 2008
@@ -56,6 +56,7 @@
#include <libnautilus-private/nautilus-file-operations.h>
#include <libnautilus-private/nautilus-trash-monitor.h>
#include <libnautilus-private/nautilus-icon-names.h>
+#include <libnautilus-private/nautilus-autorun.h>
#include <gio/gio.h>
#include "nautilus-bookmark-list.h"
@@ -1314,6 +1315,7 @@
GVolume *volume;
gtk_tree_model_get (model, &iter, PLACES_SIDEBAR_COLUMN_VOLUME, &volume, -1);
if (volume != NULL) {
+ nautilus_inhibit_autorun_for_volume (volume);
nautilus_file_operations_mount_volume (NULL, volume);
g_object_unref (volume);
}
@@ -1429,6 +1431,7 @@
-1);
if (volume != NULL) {
+ nautilus_inhibit_autorun_for_volume (volume);
nautilus_file_operations_mount_volume (NULL, volume);
g_object_unref (volume);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]