summaryrefslogtreecommitdiff
path: root/src-ng/nautilus-file.c
diff options
context:
space:
mode:
Diffstat (limited to 'src-ng/nautilus-file.c')
-rw-r--r--src-ng/nautilus-file.c48
1 files changed, 16 insertions, 32 deletions
diff --git a/src-ng/nautilus-file.c b/src-ng/nautilus-file.c
index b5438806e..d9f3e3755 100644
--- a/src-ng/nautilus-file.c
+++ b/src-ng/nautilus-file.c
@@ -18,24 +18,17 @@
#include "nautilus-file.h"
-#include "nautilus-cache.h"
+#include "nautilus-attribute.h"
#include "nautilus-directory.h"
#include "nautilus-file-table.h"
#include "nautilus-task.h"
#include "nautilus-tasks.h"
-enum
-{
- INFO,
- N_ITEMS
-};
-
typedef struct
{
GFile *location;
- NautilusCache *cache;
- gssize cache_items[N_ITEMS];
+ NautilusAttribute *attribute_info;
} NautilusFilePrivate;
G_DEFINE_TYPE_WITH_PRIVATE (NautilusFile, nautilus_file, G_TYPE_OBJECT)
@@ -147,8 +140,7 @@ renamed (NautilusFile *file,
g_assert (nautilus_file_table_insert (new_location, file));
- nautilus_cache_item_invalidate (priv->cache, priv->cache_items[INFO],
- FALSE);
+ nautilus_attribute_item_invalidate (priv->attribute_info);
}
static void
@@ -189,9 +181,9 @@ nautilus_file_init (NautilusFile *self)
priv = nautilus_file_get_instance_private (self);
- priv->cache = nautilus_cache_new ();
- priv->cache_items[INFO] = nautilus_cache_install_item (priv->cache,
- g_object_unref);
+ priv->attribute_info = nautilus_attribute_new (nautilus_query_info_func,
+ NAUTILUS_COPY_FUNC (g_file_info_dup),
+ g_object_unref);
}
typedef struct
@@ -202,12 +194,9 @@ typedef struct
gpointer callback_data;
} QueryInfoDetails;
-/*static void
-on_query_info_finished (NautilusAttributeTask *task,
- GFile *file,
- GFileInfo *info,
- GError *error,
- gpointer data)
+static void
+query_info_task_callback (NautilusTask *task,
+ gpointer user_data)
{
QueryInfoDetails *details;
NautilusFilePrivate *priv;
@@ -218,20 +207,11 @@ on_query_info_finished (NautilusAttributeTask *task,
cache_state = nautilus_cache_item_get_state (priv->cache,
priv->cache_items[INFO]);
- if (cache_state == NAUTILUS_CACHE_INVALID)
- {*/
- /* TODO: restart */
- /*return;
- }
-
- nautilus_cache_item_set_value (priv->cache, priv->cache_items[INFO],
- info);
-
details->callback (details->file, g_file_info_dup (info), error,
details->callback_data);
g_free (details);
-}*/
+}
void
nautilus_file_query_info (NautilusFile *file,
@@ -277,7 +257,8 @@ nautilus_file_query_info (NautilusFile *file,
nautilus_cache_item_set_pending (priv->cache, priv->cache_items[INFO]);
location = nautilus_file_get_location (file);
- task = nautilus_task_new_with_func (nautilus_query_info_func, location, cancellable);
+ task = nautilus_task_new_with_func (nautilus_query_info_func, location, g_object_unref,
+ cancellable);
details = g_new0 (QueryInfoDetails, 1);
@@ -285,6 +266,8 @@ nautilus_file_query_info (NautilusFile *file,
details->callback = callback;
details->callback_data = user_data;
+ nautilus_task_add_callback (task, query_info_task_callback, details);
+
nautilus_task_run (task);
}
@@ -301,7 +284,8 @@ nautilus_file_get_thumbnail (NautilusFile *file,
location = nautilus_file_get_location (file);
task = nautilus_task_new_with_func (nautilus_thumbnail_task_func,
- g_object_ref (location), cancellable);
+ g_object_ref (location), g_object_unref,
+ cancellable);
nautilus_task_run (task);
}