summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-merged-directory.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-private/nautilus-merged-directory.c')
-rw-r--r--libnautilus-private/nautilus-merged-directory.c100
1 files changed, 48 insertions, 52 deletions
diff --git a/libnautilus-private/nautilus-merged-directory.c b/libnautilus-private/nautilus-merged-directory.c
index 2bea0815a..4d8bd3448 100644
--- a/libnautilus-private/nautilus-merged-directory.c
+++ b/libnautilus-private/nautilus-merged-directory.c
@@ -139,24 +139,6 @@ merged_callback_equal (gconstpointer merged_callback_as_pointer,
&& merged_callback->callback_data == merged_callback_2->callback_data;
}
-/* Return true if any directory in the list does. */
-static gboolean
-merged_contains_file (NautilusDirectory *directory,
- NautilusFile *file)
-{
- NautilusMergedDirectory *merged;
- GList *p;
-
- merged = NAUTILUS_MERGED_DIRECTORY (directory);
-
- for (p = merged->details->directories; p != NULL; p = p->next) {
- if (nautilus_directory_contains_file (p->data, file)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
static void
merged_callback_destroy (MergedCallback *merged_callback)
{
@@ -196,8 +178,6 @@ merged_callback_remove_directory (MergedCallback *merged_callback,
merged_callback->non_ready_directories = g_list_remove
(merged_callback->non_ready_directories,
directory);
-
- /* Check if we are ready. */
merged_callback_check_done (merged_callback);
}
@@ -220,18 +200,7 @@ directory_ready_callback (NautilusDirectory *directory,
nautilus_file_list_copy (files));
/* Check if we are ready. */
- merged_callback_remove_directory (merged_callback,
- directory);
-}
-
-static void
-merged_callback_connect_directory (MergedCallback *merged_callback,
- NautilusDirectory *real_merged)
-{
- nautilus_directory_call_when_ready
- (real_merged,
- merged_callback->wait_for_attributes,
- directory_ready_callback, merged_callback);
+ merged_callback_remove_directory (merged_callback, directory);
}
static void
@@ -242,7 +211,7 @@ merged_call_when_ready (NautilusDirectory *directory,
{
NautilusMergedDirectory *merged;
MergedCallback search_key, *merged_callback;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
@@ -260,9 +229,9 @@ merged_call_when_ready (NautilusDirectory *directory,
merged_callback->callback = callback;
merged_callback->callback_data = callback_data;
merged_callback->wait_for_attributes = nautilus_g_str_list_copy (file_attributes);
- for (p = merged->details->directories; p != NULL; p = p->next) {
+ for (node = merged->details->directories; node != NULL; node = node->next) {
merged_callback->non_ready_directories = g_list_prepend
- (merged_callback->non_ready_directories, p->data);
+ (merged_callback->non_ready_directories, node->data);
}
/* Put it in the hash table. */
@@ -275,8 +244,11 @@ merged_call_when_ready (NautilusDirectory *directory,
}
/* Now tell all the directories about it. */
- for (p = merged->details->directories; p != NULL; p = p->next) {
- merged_callback_connect_directory (merged_callback, p->data);
+ for (node = merged->details->directories; node != NULL; node = node->next) {
+ nautilus_directory_call_when_ready
+ (node->data,
+ merged_callback->wait_for_attributes,
+ directory_ready_callback, merged_callback);
}
}
@@ -287,7 +259,7 @@ merged_cancel_callback (NautilusDirectory *directory,
{
NautilusMergedDirectory *merged;
MergedCallback search_key, *merged_callback;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
@@ -303,9 +275,9 @@ merged_cancel_callback (NautilusDirectory *directory,
g_hash_table_remove (merged_callback->merged->details->callbacks, merged_callback);
/* Tell all the directories to cancel the call. */
- for (p = merged_callback->non_ready_directories; p != NULL; p = p->next) {
+ for (node = merged_callback->non_ready_directories; node != NULL; node = node->next) {
nautilus_directory_cancel_callback
- (p->data,
+ (node->data,
directory_ready_callback, merged_callback);
}
merged_callback_destroy (merged_callback);
@@ -322,7 +294,7 @@ merged_file_monitor_add (NautilusDirectory *directory,
{
NautilusMergedDirectory *merged;
MergedMonitor *monitor;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
@@ -345,9 +317,9 @@ merged_file_monitor_add (NautilusDirectory *directory,
monitor->force_reload = force_reload;
/* Call through to the real directory add calls. */
- for (p = merged->details->directories; p != NULL; p = p->next) {
+ for (node = merged->details->directories; node != NULL; node = node->next) {
nautilus_directory_file_monitor_add
- (p->data, monitor,
+ (node->data, monitor,
monitor_hidden_files, monitor_backup_files,
file_attributes, force_reload);
}
@@ -360,7 +332,7 @@ merged_file_monitor_remove (NautilusDirectory *directory,
{
NautilusMergedDirectory *merged;
MergedMonitor *monitor;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
@@ -372,26 +344,44 @@ merged_file_monitor_remove (NautilusDirectory *directory,
g_hash_table_remove (merged->details->monitors, client);
/* Call through to the real directory remove calls. */
- for (p = merged->details->directories; p != NULL; p = p->next) {
+ for (node = merged->details->directories; node != NULL; node = node->next) {
nautilus_directory_file_monitor_remove
- (p->data, monitor);
+ (node->data, monitor);
}
nautilus_g_list_free_deep (monitor->monitor_attributes);
g_free (monitor);
}
+/* Return true if any directory in the list does. */
+static gboolean
+merged_contains_file (NautilusDirectory *directory,
+ NautilusFile *file)
+{
+ NautilusMergedDirectory *merged;
+ GList *node;
+
+ merged = NAUTILUS_MERGED_DIRECTORY (directory);
+
+ for (node = merged->details->directories; node != NULL; node = node->next) {
+ if (nautilus_directory_contains_file (node->data, file)) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
/* Return true only if all directories in the list do. */
static gboolean
merged_are_all_files_seen (NautilusDirectory *directory)
{
NautilusMergedDirectory *merged;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
- for (p = merged->details->directories; p != NULL; p = p->next) {
- if (!nautilus_directory_are_all_files_seen (p->data)) {
+ for (node = merged->details->directories; node != NULL; node = node->next) {
+ if (!nautilus_directory_are_all_files_seen (node->data)) {
return FALSE;
}
}
@@ -403,12 +393,12 @@ static gboolean
merged_is_not_empty (NautilusDirectory *directory)
{
NautilusMergedDirectory *merged;
- GList *p;
+ GList *node;
merged = NAUTILUS_MERGED_DIRECTORY (directory);
- for (p = merged->details->directories; p != NULL; p = p->next) {
- if (nautilus_directory_is_not_empty (p->data)) {
+ for (node = merged->details->directories; node != NULL; node = node->next) {
+ if (nautilus_directory_is_not_empty (node->data)) {
return TRUE;
}
}
@@ -517,6 +507,12 @@ nautilus_merged_directory_add_real_directory (NautilusMergedDirectory *merged,
real_directory);
}
+GList *
+nautilus_merged_directory_get_real_directories (NautilusMergedDirectory *merged)
+{
+ return g_list_copy (merged->details->directories);
+}
+
static void
merged_callback_remove_directory_cover (gpointer key,
gpointer value,