[nautilus] Remove .hidden file code now that gio does if for us



commit ace6d2c2170028148785f3fa87eedf883f20f1dd
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Dec 7 11:13:02 2012 +0100

    Remove .hidden file code now that gio does if for us
    
    Gio now parses .hidden files itself and sets the hidden flags in
    the GFileInfo, so no need to do it again.
    
    We already rely on the glib version that has this support added.

 libnautilus-private/nautilus-directory-async.c   |  107 +---------------------
 libnautilus-private/nautilus-directory-private.h |    5 -
 libnautilus-private/nautilus-directory.c         |    4 -
 libnautilus-private/nautilus-file.c              |   11 +--
 4 files changed, 2 insertions(+), 125 deletions(-)
---
diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c
index e067266..506f320 100644
--- a/libnautilus-private/nautilus-directory-async.c
+++ b/libnautilus-private/nautilus-directory-async.c
@@ -178,9 +178,6 @@ static GHashTable *waiting_directories;
 static GHashTable *async_jobs;
 #endif
 
-/* Hide kde trashcan directory */
-static char *kde_trash_dir_name = NULL;
-
 /* Forward declarations for functions that need them. */
 static void     deep_count_load                               (DeepCountState         *state,
 							       GFile                  *location);
@@ -204,13 +201,6 @@ static void     move_file_to_extension_queue                  (NautilusDirectory
 static void     nautilus_directory_invalidate_file_attributes (NautilusDirectory      *directory,
 							       NautilusFileAttributes  file_attributes);
 
-void
-nautilus_set_kde_trash_name (const char *trash_dir)
-{
-	g_free (kde_trash_dir_name);
-	kde_trash_dir_name = g_strdup (trash_dir);
-}
-
 /* Some helpers for case-insensitive strings.
  * Move to nautilus-glib-extensions?
  */
@@ -860,10 +850,7 @@ should_skip_file (NautilusDirectory *directory, GFileInfo *info)
 
 	if (!show_hidden_files &&
 	    (g_file_info_get_is_hidden (info) ||
-	     g_file_info_get_is_backup (info) ||
-	     (directory != NULL && directory->details->hidden_file_hash != NULL &&
-	      g_hash_table_lookup (directory->details->hidden_file_hash,
-				   g_file_info_get_name (info)) != NULL))) {
+	     g_file_info_get_is_backup (info))) {
 		return TRUE;
 	}
 
@@ -1089,10 +1076,6 @@ file_list_cancel (NautilusDirectory *directory)
 		g_list_free_full (directory->details->pending_file_info, g_object_unref);
 		directory->details->pending_file_info = NULL;
 	}
-
-	if (directory->details->hidden_file_hash) {
-		g_hash_table_remove_all (directory->details->hidden_file_hash);
-	}
 }
 
 static void
@@ -1984,78 +1967,6 @@ mark_all_files_unconfirmed (NautilusDirectory *directory)
 }
 
 static void
-read_dot_hidden_file (NautilusDirectory *directory)
-{
-	gsize file_size;
-	char *file_contents;
-	GFile *child;
-	GFileInfo *info;
-	GFileType type;
-	int i;
-
-
-	/* FIXME: We only support .hidden on file: uri's for the moment.
-	 * Need to figure out if we should do this async or sync to extend
-	 * it to all types of uris.
-	 */
-	if (directory->details->location == NULL ||
-	    !g_file_is_native (directory->details->location)) {
-		return;
-	}
-	
-	child = g_file_get_child (directory->details->location, ".hidden");
-
-	type = G_FILE_TYPE_UNKNOWN;
-	
-	info = g_file_query_info (child, G_FILE_ATTRIBUTE_STANDARD_TYPE, 0, NULL, NULL);
-	if (info != NULL) {
-		type = g_file_info_get_file_type (info);
-		g_object_unref (info);
-	}
-	
-	if (type != G_FILE_TYPE_REGULAR) {
-		g_object_unref (child);
-		return;
-	}
-
-	if (!g_file_load_contents (child, NULL, &file_contents, &file_size, NULL, NULL)) {
-		g_object_unref (child);
-		return;
-	}
-
-	g_object_unref (child);
-
-	if (directory->details->hidden_file_hash == NULL) {
-		directory->details->hidden_file_hash =
-			g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-	}
-	
-	/* Now parse the data */
-	i = 0;
-	while (i < file_size) {
-		int start;
-
-		start = i;
-		while (i < file_size && file_contents[i] != '\n') {
-			i++;
-		}
-
-		if (i > start) {
-			char *hidden_filename;
-		
-			hidden_filename = g_strndup (file_contents + start, i - start);
-			g_hash_table_replace (directory->details->hidden_file_hash,
-					     hidden_filename, hidden_filename);
-		}
-
-		i++;
-		
-	}
-
-	g_free (file_contents);
-}
-
-static void
 directory_load_state_free (DirectoryLoadState *state)
 {
 	if (state->enumerator) {
@@ -2201,23 +2112,7 @@ start_monitoring_file_list (NautilusDirectory *directory)
 		nautilus_directory_get_corresponding_file (directory);
 	state->load_directory_file->details->loading_directory = TRUE;
 
-	read_dot_hidden_file (directory);
-	
-	/* Hack to work around kde trash dir */
-	if (kde_trash_dir_name != NULL && nautilus_directory_is_desktop_directory (directory)) {
-		char *fn;
-
-		if (directory->details->hidden_file_hash == NULL) {
-			directory->details->hidden_file_hash =
-				g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-		}
-		
-		fn = g_strdup (kde_trash_dir_name);
-		g_hash_table_replace (directory->details->hidden_file_hash,
-				     fn, fn);
-	}
 
-	
 #ifdef DEBUG_LOAD_DIRECTORY
 	g_message ("load_directory called to monitor file list of %p", directory->details->location);
 #endif
diff --git a/libnautilus-private/nautilus-directory-private.h b/libnautilus-private/nautilus-directory-private.h
index f21bc67..1d34200 100644
--- a/libnautilus-private/nautilus-directory-private.h
+++ b/libnautilus-private/nautilus-directory-private.h
@@ -134,8 +134,6 @@ struct NautilusDirectoryDetails
 	LinkInfoReadState *link_info_read_state;
 
 	GList *file_operations_in_progress; /* list of FileOperation * */
-
-	GHashTable *hidden_file_hash;
 };
 
 NautilusDirectory *nautilus_directory_get_existing                    (GFile                     *location);
@@ -235,9 +233,6 @@ void               nautilus_directory_add_file_to_work_queue          (NautilusD
 void               nautilus_directory_remove_file_from_work_queue     (NautilusDirectory *directory,
 								       NautilusFile *file);
 
-/* KDE compatibility hacks */
-
-void               nautilus_set_kde_trash_name                        (const char *trash_dir);
 
 /* debugging functions */
 int                nautilus_directory_number_outstanding              (void);
diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c
index 1e8df6d..993cee3 100644
--- a/libnautilus-private/nautilus-directory.c
+++ b/libnautilus-private/nautilus-directory.c
@@ -234,10 +234,6 @@ nautilus_directory_finalize (GObject *object)
 	g_assert (directory->details->file_list == NULL);
 	g_hash_table_destroy (directory->details->file_hash);
 
-	if (directory->details->hidden_file_hash) {
-		g_hash_table_destroy (directory->details->hidden_file_hash);
-	}
-	
 	nautilus_file_queue_destroy (directory->details->high_priority_queue);
 	nautilus_file_queue_destroy (directory->details->low_priority_queue);
 	nautilus_file_queue_destroy (directory->details->extension_queue);
diff --git a/libnautilus-private/nautilus-file.c b/libnautilus-private/nautilus-file.c
index 605d947..af42102 100644
--- a/libnautilus-private/nautilus-file.c
+++ b/libnautilus-private/nautilus-file.c
@@ -3329,15 +3329,6 @@ nautilus_file_is_hidden_file (NautilusFile *file)
 	return file->details->is_hidden;
 }
 
-static gboolean
-is_file_hidden (NautilusFile *file)
-{
-	return file->details->directory->details->hidden_file_hash != NULL &&
-		g_hash_table_lookup (file->details->directory->details->hidden_file_hash,
-				     eel_ref_str_peek (file->details->name)) != NULL;
-	
-}
-
 /**
  * nautilus_file_should_show:
  * @file: the file to check.
@@ -3357,7 +3348,7 @@ nautilus_file_should_show (NautilusFile *file,
 	if (nautilus_file_is_in_trash (file)) {
 		return TRUE;
 	} else {
-		return (show_hidden || (!nautilus_file_is_hidden_file (file) && !is_file_hidden (file))) &&
+		return (show_hidden || !nautilus_file_is_hidden_file (file)) &&
 			(show_foreign || !(nautilus_file_is_in_desktop (file) && nautilus_file_is_foreign_link (file)));
 	}
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]