Convert file attributes from list of strings to a bitmask. Patch from

2003-04-02  Alexander Larsson  <alexl@redhat.com>

	* components/notes/nautilus-notes.c:
	* components/tree/nautilus-tree-model.c:
	* components/tree/nautilus-tree-view.c:
	* libnautilus-private/nautilus-directory-async.c:
	* libnautilus-private/nautilus-directory-background.c:
	* libnautilus-private/nautilus-directory-private.h:
	* libnautilus-private/nautilus-directory.c:
	* libnautilus-private/nautilus-directory.h:
	* libnautilus-private/nautilus-file-attributes.h:
	* libnautilus-private/nautilus-file-private.h:
	* libnautilus-private/nautilus-file.c: (rename_callback),
	* libnautilus-private/nautilus-file.h:
	* libnautilus-private/nautilus-icon-factory.c:
	* libnautilus-private/nautilus-icon-factory.h:
	* libnautilus-private/nautilus-link.c:
	* libnautilus-private/nautilus-merged-directory.c:
	* libnautilus-private/nautilus-mime-actions.c:
	* libnautilus-private/nautilus-mime-actions.h:
	* libnautilus-private/nautilus-program-choosing.c:
	* libnautilus-private/nautilus-trash-file.c:
	* libnautilus-private/nautilus-trash-monitor.c:
	* libnautilus-private/nautilus-vfs-directory.c:
	* libnautilus-private/nautilus-vfs-file.c:
	* src/file-manager/fm-directory-view.c:
	* src/file-manager/fm-icon-container.c:
	* src/file-manager/fm-properties-window.c:
	* src/nautilus-applicable-views.c:
	* src/nautilus-information-panel.c:
	* src/nautilus-sidebar-title.c:
	* src/nautilus-window-manage-views.c:
	* src/nautilus-window.c:
	* test/test-nautilus-mime-actions-set.c:
	* test/test-nautilus-mime-actions.c:

	Convert file attributes from list of strings to a bitmask.
	Patch from andersca@codefactory.se.
This commit is contained in:
Alexander Larsson 2003-04-02 11:51:14 +00:00 committed by Alexander Larsson
parent 234e6a286b
commit 4e04c0a008
37 changed files with 331 additions and 450 deletions

View file

@ -1,3 +1,42 @@
2003-04-02 Alexander Larsson <alexl@redhat.com>
* components/notes/nautilus-notes.c:
* components/tree/nautilus-tree-model.c:
* components/tree/nautilus-tree-view.c:
* libnautilus-private/nautilus-directory-async.c:
* libnautilus-private/nautilus-directory-background.c:
* libnautilus-private/nautilus-directory-private.h:
* libnautilus-private/nautilus-directory.c:
* libnautilus-private/nautilus-directory.h:
* libnautilus-private/nautilus-file-attributes.h:
* libnautilus-private/nautilus-file-private.h:
* libnautilus-private/nautilus-file.c: (rename_callback),
* libnautilus-private/nautilus-file.h:
* libnautilus-private/nautilus-icon-factory.c:
* libnautilus-private/nautilus-icon-factory.h:
* libnautilus-private/nautilus-link.c:
* libnautilus-private/nautilus-merged-directory.c:
* libnautilus-private/nautilus-mime-actions.c:
* libnautilus-private/nautilus-mime-actions.h:
* libnautilus-private/nautilus-program-choosing.c:
* libnautilus-private/nautilus-trash-file.c:
* libnautilus-private/nautilus-trash-monitor.c:
* libnautilus-private/nautilus-vfs-directory.c:
* libnautilus-private/nautilus-vfs-file.c:
* src/file-manager/fm-directory-view.c:
* src/file-manager/fm-icon-container.c:
* src/file-manager/fm-properties-window.c:
* src/nautilus-applicable-views.c:
* src/nautilus-information-panel.c:
* src/nautilus-sidebar-title.c:
* src/nautilus-window-manage-views.c:
* src/nautilus-window.c:
* test/test-nautilus-mime-actions-set.c:
* test/test-nautilus-mime-actions.c:
Convert file attributes from list of strings to a bitmask.
Patch from andersca@codefactory.se.
=== nautilus 2.2.3 ===
2003-03-31 Alexander Larsson <alexl@redhat.com>

View file

@ -210,8 +210,8 @@ done_with_file (Notes *notes)
static void
notes_load_metainfo (Notes *notes)
{
GList *attributes;
NautilusFileAttributes attributes;
done_with_file (notes);
notes->file = nautilus_file_get (notes->uri);
@ -221,15 +221,13 @@ notes_load_metainfo (Notes *notes)
return;
}
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = NAUTILUS_FILE_ATTRIBUTE_METADATA;
nautilus_file_monitor_add (notes->file, notes, attributes);
if (nautilus_file_check_if_ready (notes->file, attributes)) {
load_note_text_from_metadata (notes->file, notes);
}
g_list_free (attributes);
g_signal_connect (notes->file, "changed",
G_CALLBACK (load_note_text_from_metadata), notes);
}

View file

@ -876,22 +876,23 @@ done_loading_callback (NautilusDirectory *directory,
nautilus_file_unref (file);
}
static GList *
static NautilusFileAttributes
get_tree_monitor_attributes (void)
{
GList *attrs;
NautilusFileAttributes attributes;
attrs = nautilus_icon_factory_get_required_file_attributes ();
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
return attrs;
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes |= NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY |
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
return attributes;
}
static void
start_monitoring_directory (NautilusTreeModel *model, TreeNode *node)
{
NautilusDirectory *directory;
GList *attrs;
NautilusFileAttributes attributes;
if (node->done_loading_id != 0) {
return;
@ -914,12 +915,11 @@ start_monitoring_directory (NautilusTreeModel *model, TreeNode *node)
set_done_loading (model, node, nautilus_directory_are_all_files_seen (directory));
attrs = get_tree_monitor_attributes ();
attributes = get_tree_monitor_attributes ();
nautilus_directory_file_monitor_add (directory, model,
model->details->show_hidden_files,
model->details->show_backup_files,
attrs, files_changed_callback, model);
g_list_free (attrs);
attributes, files_changed_callback, model);
}
static int
@ -1380,7 +1380,7 @@ nautilus_tree_model_set_root_uri (NautilusTreeModel *model, const char *root_uri
{
NautilusFile *file;
TreeNode *node;
GList *attrs;
NautilusFileAttributes attributes;
g_return_if_fail (model->details->root_node == NULL);
@ -1392,9 +1392,8 @@ nautilus_tree_model_set_root_uri (NautilusTreeModel *model, const char *root_uri
g_signal_connect_object (file, "changed",
G_CALLBACK (root_node_file_changed_callback), model, 0);
attrs = get_tree_monitor_attributes ();
nautilus_file_monitor_add (file, model, attrs);
g_list_free (attrs);
attributes = get_tree_monitor_attributes ();
nautilus_file_monitor_add (file, model, attributes);
nautilus_file_unref (file);

View file

@ -302,7 +302,7 @@ static void
selection_changed_callback (GtkTreeSelection *selection,
NautilusTreeView *view)
{
GList *attrs;
NautilusFileAttributes attributes;
GtkTreeIter iter;
cancel_activation (view);
@ -316,10 +316,9 @@ selection_changed_callback (GtkTreeSelection *selection,
return;
}
attrs = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
nautilus_file_call_when_ready (view->details->activation_file, attrs,
attributes = NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI;
nautilus_file_call_when_ready (view->details->activation_file, attributes,
got_activation_uri_callback, view);
g_list_free (attrs);
}
static int

View file

@ -104,19 +104,19 @@ static GHashTable *async_jobs;
#endif
/* Forward declarations for functions that need them. */
static void deep_count_load (NautilusDirectory *directory,
const char *uri);
static gboolean request_is_satisfied (NautilusDirectory *directory,
NautilusFile *file,
Request *request);
static void cancel_loading_attributes (NautilusDirectory *directory,
GList *file_attributes);
static void add_all_files_to_work_queue (NautilusDirectory *directory);
static void link_info_done (NautilusDirectory *directory,
NautilusFile *file,
const char *uri,
const char *name,
const char *icon);
static void deep_count_load (NautilusDirectory *directory,
const char *uri);
static gboolean request_is_satisfied (NautilusDirectory *directory,
NautilusFile *file,
Request *request);
static void cancel_loading_attributes (NautilusDirectory *directory,
NautilusFileAttributes file_attributes);
static void add_all_files_to_work_queue (NautilusDirectory *directory);
static void link_info_done (NautilusDirectory *directory,
NautilusFile *file,
const char *uri,
const char *name,
const char *icon);
static gboolean file_needs_high_priority_work_done (NautilusDirectory *directory,
NautilusFile *file);
static gboolean file_needs_low_priority_work_done (NautilusDirectory *directory,
@ -505,56 +505,33 @@ remove_monitor (NautilusDirectory *directory,
void
nautilus_directory_set_up_request (Request *request,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
memset (request, 0, sizeof (*request));
request->directory_count = g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT,
eel_strcmp_compare_func) != NULL;
request->deep_count = g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS,
eel_strcmp_compare_func) != NULL;
request->mime_list = g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES,
eel_strcmp_compare_func) != NULL;
request->file_info = g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE,
eel_strcmp_compare_func) != NULL;
request->file_info |= g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY,
eel_strcmp_compare_func) != NULL;
request->file_info |= g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES,
eel_strcmp_compare_func) != NULL;
request->file_info |= g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE,
eel_strcmp_compare_func) != NULL;
if (g_list_find_custom (file_attributes,
NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT,
eel_strcmp_compare_func) != NULL) {
request->directory_count = (file_attributes &
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT) != FALSE;
request->deep_count = (file_attributes &
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS) != FALSE;
request->mime_list = (file_attributes &
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES) != FALSE;
request->file_info = (file_attributes &
(NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE |
NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY |
NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES |
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE)) != FALSE;
if (file_attributes & NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT) {
request->top_left_text = TRUE;
request->file_info = TRUE;
}
if (g_list_find_custom (file_attributes,
NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI,
eel_strcmp_compare_func) != NULL) {
if (file_attributes & NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI) {
request->file_info = TRUE;
request->link_info = TRUE;
}
if (g_list_find_custom (file_attributes,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME,
eel_strcmp_compare_func) != NULL) {
if (file_attributes & NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME) {
request->file_info = TRUE;
request->link_info = TRUE;
}
@ -570,39 +547,34 @@ nautilus_directory_set_up_request (Request *request,
* directly (would need some funky char trick to prevent
* namespace collisions).
*/
if (g_list_find_custom (file_attributes,
NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON,
eel_strcmp_compare_func) != NULL) {
if (file_attributes & NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON) {
request->metafile = TRUE;
request->file_info = TRUE;
request->link_info = TRUE;
}
request->metafile |= g_list_find_custom
(file_attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA,
eel_strcmp_compare_func) != NULL;
request->metafile |= (file_attributes &
NAUTILUS_FILE_ATTRIBUTE_METADATA) != FALSE;
}
static void
mime_db_changed_callback (GnomeVFSMIMEMonitor *ignore, NautilusDirectory *dir)
{
const Monitor *monitor;
GList *ptr, *attrs;
NautilusFileAttributes attrs;
GList *ptr;
GList *file_list;
g_return_if_fail (dir != NULL);
g_return_if_fail (dir->details != NULL);
attrs = NULL;
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE);
attrs = g_list_prepend (attrs, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES);
attrs = NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI |
NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES |
NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON |
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE |
NAUTILUS_FILE_ATTRIBUTE_METADATA |
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES;
file_list = NULL;
for (ptr = dir->details->monitor_list ; ptr != NULL ; ptr = ptr->next) {
@ -627,7 +599,6 @@ mime_db_changed_callback (GnomeVFSMIMEMonitor *ignore, NautilusDirectory *dir)
}
g_list_free (file_list);
}
g_list_free (attrs);
}
void
@ -636,7 +607,7 @@ nautilus_directory_monitor_add_internal (NautilusDirectory *directory,
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *file_attributes,
NautilusFileAttributes file_attributes,
NautilusDirectoryCallback callback,
gpointer callback_data)
{
@ -1287,7 +1258,7 @@ ready_callback_call (NautilusDirectory *directory,
void
nautilus_directory_call_when_ready_internal (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_file_list,
NautilusDirectoryCallback directory_callback,
NautilusFileCallback file_callback,
@ -1351,7 +1322,7 @@ nautilus_directory_call_when_ready_internal (NautilusDirectory *directory,
gboolean
nautilus_directory_check_if_ready_internal (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
Request request;
@ -2043,10 +2014,10 @@ file_list_start_or_stop (NautilusDirectory *directory)
void
nautilus_file_invalidate_count_and_mime_list (NautilusFile *file)
{
GList *attributes = NULL;
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES);
NautilusFileAttributes attributes;
attributes = NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES;
nautilus_file_invalidate_attributes (file, attributes);
}
@ -2072,8 +2043,8 @@ nautilus_directory_invalidate_count_and_mime_list (NautilusDirectory *directory)
}
static void
nautilus_directory_invalidate_file_attributes (NautilusDirectory *directory,
GList *file_attributes)
nautilus_directory_invalidate_file_attributes (NautilusDirectory *directory,
NautilusFileAttributes file_attributes)
{
GList *node;
@ -2091,8 +2062,8 @@ nautilus_directory_invalidate_file_attributes (NautilusDirectory *directory,
}
void
nautilus_directory_force_reload_internal (NautilusDirectory *directory,
GList *file_attributes)
nautilus_directory_force_reload_internal (NautilusDirectory *directory,
NautilusFileAttributes file_attributes)
{
/* invalidate attributes that are getting reloaded for all files */
nautilus_directory_invalidate_file_attributes (directory, file_attributes);
@ -3205,7 +3176,7 @@ cancel_link_info_for_file (NautilusDirectory *directory,
static void
cancel_loading_attributes (NautilusDirectory *directory,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
Request request;
@ -3238,9 +3209,9 @@ cancel_loading_attributes (NautilusDirectory *directory,
}
void
nautilus_directory_cancel_loading_file_attributes (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes)
nautilus_directory_cancel_loading_file_attributes (NautilusDirectory *directory,
NautilusFile *file,
NautilusFileAttributes file_attributes)
{
Request request;

View file

@ -863,7 +863,6 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
{
EelBackground *background;
gpointer old_file;
GList *attributes;
/* Get at the background object we'll be connecting. */
background = eel_get_widget_background (widget);
@ -913,11 +912,9 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
G_CALLBACK (saved_settings_changed_callback), background, 0);
/* arrange to receive file metadata */
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
nautilus_file_monitor_add (file,
background,
attributes);
g_list_free (attributes);
NAUTILUS_FILE_ATTRIBUTE_METADATA);
/* arrange for notification when the theme changes */
eel_preferences_add_callback (NAUTILUS_PREFERENCES_THEME,

View file

@ -125,14 +125,14 @@ NautilusDirectory *nautilus_directory_get_existing (const cha
void nautilus_directory_async_state_changed (NautilusDirectory *directory);
void nautilus_directory_call_when_ready_internal (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_file_list,
NautilusDirectoryCallback directory_callback,
NautilusFileCallback file_callback,
gpointer callback_data);
gboolean nautilus_directory_check_if_ready_internal (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes);
NautilusFileAttributes file_attributes);
void nautilus_directory_cancel_callback_internal (NautilusDirectory *directory,
NautilusFile *file,
NautilusDirectoryCallback directory_callback,
@ -143,7 +143,7 @@ void nautilus_directory_monitor_add_internal (NautilusD
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *attributes,
NautilusFileAttributes attributes,
NautilusDirectoryCallback callback,
gpointer callback_data);
void nautilus_directory_monitor_remove_internal (NautilusDirectory *directory,
@ -162,10 +162,10 @@ void nautilus_directory_stop_monitoring_file_list (NautilusD
void nautilus_directory_cancel (NautilusDirectory *directory);
void nautilus_async_destroying_file (NautilusFile *file);
void nautilus_directory_force_reload_internal (NautilusDirectory *directory,
GList *file_attributes);
NautilusFileAttributes file_attributes);
void nautilus_directory_cancel_loading_file_attributes (NautilusDirectory *directory,
NautilusFile *file,
GList *file_attributes);
NautilusFileAttributes file_attributes);
/* Calls shared between directory, file, and async. code. */
void nautilus_directory_emit_files_added (NautilusDirectory *directory,
@ -182,7 +182,7 @@ NautilusDirectory *nautilus_directory_get_internal (const cha
gboolean create);
char * nautilus_directory_get_name_for_self_as_new_file (NautilusDirectory *directory);
void nautilus_directory_set_up_request (Request *request,
GList *file_attributes);
NautilusFileAttributes file_attributes);
/* Interface to the file list. */
NautilusFile * nautilus_directory_find_file_by_name (NautilusDirectory *directory,

View file

@ -1246,7 +1246,7 @@ nautilus_directory_notify_files_moved (GList *uri_pairs)
GList *new_files_list, *unref_list;
GHashTable *added_lists, *changed_lists;
char *name;
GList *cancel_attributes;
NautilusFileAttributes cancel_attributes;
/* Make a list of added and changed files in each directory. */
new_files_list = NULL;
@ -1347,8 +1347,6 @@ nautilus_directory_notify_files_moved (GList *uri_pairs)
/* Separate handling for brand new file objects. */
nautilus_directory_notify_files_added (new_files_list);
g_list_free (new_files_list);
g_list_free (cancel_attributes);
}
void
@ -1520,7 +1518,7 @@ nautilus_directory_get_file_uri (NautilusDirectory *directory,
void
nautilus_directory_call_when_ready (NautilusDirectory *directory,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_all_files,
NautilusDirectoryCallback callback,
gpointer callback_data)
@ -1552,7 +1550,7 @@ nautilus_directory_file_monitor_add (NautilusDirectory *directory,
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *file_attributes,
NautilusFileAttributes file_attributes,
NautilusDirectoryCallback callback,
gpointer callback_data)
{
@ -1739,7 +1737,6 @@ nautilus_self_check_directory (void)
{
NautilusDirectory *directory;
NautilusFile *file;
GList *attributes;
directory = nautilus_directory_get ("file:///etc");
file = nautilus_file_get ("file:///etc/passwd");
@ -1748,14 +1745,12 @@ nautilus_self_check_directory (void)
nautilus_directory_file_monitor_add
(directory, &data_dummy,
TRUE, TRUE, NULL, NULL, NULL);
TRUE, TRUE, 0, NULL, NULL);
got_metadata_flag = FALSE;
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
nautilus_directory_call_when_ready (directory, attributes, TRUE,
nautilus_directory_call_when_ready (directory, NAUTILUS_FILE_ATTRIBUTE_METADATA, TRUE,
got_metadata_callback, &data_dummy);
g_list_free (attributes);
while (!got_metadata_flag) {
gtk_main_iteration ();
@ -1803,10 +1798,8 @@ nautilus_self_check_directory (void)
directory = nautilus_directory_get ("file:///etc");
got_metadata_flag = FALSE;
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
nautilus_directory_call_when_ready (directory, attributes, TRUE,
nautilus_directory_call_when_ready (directory, NAUTILUS_FILE_ATTRIBUTE_METADATA, TRUE,
got_metadata_callback, &data_dummy);
g_list_free (attributes);
while (!got_metadata_flag) {
gtk_main_iteration ();
@ -1816,11 +1809,11 @@ nautilus_self_check_directory (void)
got_files_flag = FALSE;
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS);
nautilus_directory_call_when_ready (directory, attributes, TRUE,
nautilus_directory_call_when_ready (directory,
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE |
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS,
TRUE,
got_files_callback, &data_dummy);
g_list_free (attributes);
while (!got_files_flag) {
gtk_main_iteration ();

View file

@ -27,6 +27,7 @@
#include <gtk/gtkobject.h>
#include <libgnomevfs/gnome-vfs-types.h>
#include <libnautilus-private/nautilus-file-attributes.h>
/* NautilusDirectory is a class that manages the model for a directory,
real or virtual, for Nautilus, mainly the file-manager component. The directory is
@ -105,7 +106,7 @@ typedef struct
gboolean (* contains_file) (NautilusDirectory *directory,
NautilusFile *file);
void (* call_when_ready) (NautilusDirectory *directory,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_file_list,
NautilusDirectoryCallback callback,
gpointer callback_data);
@ -116,7 +117,7 @@ typedef struct
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *monitor_attributes,
NautilusFileAttributes monitor_attributes,
NautilusDirectoryCallback initial_files_callback,
gpointer callback_data);
void (* file_monitor_remove) (NautilusDirectory *directory,
@ -163,7 +164,7 @@ NautilusFile * nautilus_directory_get_corresponding_file (NautilusDirector
* The file attribute and metadata keys are for files in the directory.
*/
void nautilus_directory_call_when_ready (NautilusDirectory *directory,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_all_files,
NautilusDirectoryCallback callback,
gpointer callback_data);
@ -177,7 +178,7 @@ void nautilus_directory_file_monitor_add (NautilusDirector
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *attributes,
NautilusFileAttributes attributes,
NautilusDirectoryCallback initial_files_callback,
gpointer callback_data);
void nautilus_directory_file_monitor_remove (NautilusDirectory *directory,

View file

@ -29,17 +29,19 @@
* interest in changes to the attributes or when waiting for them.
*/
#define NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI "activation URI"
#define NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES "capabilities"
#define NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON "custom icon"
#define NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS "deep counts"
#define NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT "directory item count"
#define NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES "directory item MIME types"
#define NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE "file type"
#define NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY "is directory"
#define NAUTILUS_FILE_ATTRIBUTE_METADATA "metadata"
#define NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE "MIME type"
#define NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT "top left text"
#define NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME "display name"
typedef enum {
NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI = 1 << 0,
NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES = 1 << 1,
NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON = 1 << 2,
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS = 1 << 3,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT = 1 << 4,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES = 1 << 5,
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE = 1 << 6,
NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY = 1 << 7,
NAUTILUS_FILE_ATTRIBUTE_METADATA = 1 << 8,
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE = 1 << 9,
NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT = 1 << 10,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME = 1 << 11,
} NautilusFileAttributes;
#endif /* NAUTILUS_FILE_ATTRIBUTES_H */

View file

@ -167,14 +167,14 @@ gboolean nautilus_file_should_get_top_left_text (NautilusFile
/* Mark specified attributes for this file out of date without canceling current
* I/O or kicking off new I/O.
*/
void nautilus_file_invalidate_attributes_internal (NautilusFile *file,
GList *file_attributes);
GList * nautilus_file_get_all_attributes (void);
gboolean nautilus_file_is_self_owned (NautilusFile *file);
void nautilus_file_invalidate_count_and_mime_list (NautilusFile *file);
gboolean nautilus_file_rename_in_progress (NautilusFile *file);
void nautilus_file_invalidate_attributes_internal (NautilusFile *file,
NautilusFileAttributes file_attributes);
NautilusFileAttributes nautilus_file_get_all_attributes (void);
gboolean nautilus_file_is_self_owned (NautilusFile *file);
void nautilus_file_invalidate_count_and_mime_list (NautilusFile *file);
gboolean nautilus_file_rename_in_progress (NautilusFile *file);
GnomeVFSFileInfo * nautilus_file_peek_vfs_file_info (NautilusFile *file);
GnomeVFSFileInfo *nautilus_file_peek_vfs_file_info (NautilusFile *file);
/* Thumbnailing: */
void nautilus_file_set_is_thumbnailing (NautilusFile *file,

View file

@ -917,7 +917,6 @@ rename_callback (GnomeVFSAsyncHandle *handle,
char *old_relative_uri;
char *old_uri;
char *new_uri;
GList name_attribute = { 0, };
op = callback_data;
g_assert (handle == op->handle);
@ -961,9 +960,8 @@ rename_callback (GnomeVFSAsyncHandle *handle,
* and a rename affects the contents of the desktop file.
*/
if (op->file->details->display_name != NULL) {
name_attribute.data = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_invalidate_attributes (op->file,
&name_attribute);
nautilus_file_invalidate_attributes (op->file,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
}
}
operation_complete (op, result);
@ -1065,9 +1063,8 @@ rename_guts (NautilusFile *file,
g_free (uri);
if (success) {
GList attributes = { 0 };
attributes.data = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_invalidate_attributes (file, &attributes);
nautilus_file_invalidate_attributes (file,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
(* callback) (file, GNOME_VFS_OK, callback_data);
return;
} else {
@ -2401,7 +2398,7 @@ nautilus_file_get_name (NautilusFile *file)
void
nautilus_file_monitor_add (NautilusFile *file,
gconstpointer client,
GList *attributes)
NautilusFileAttributes attributes)
{
g_return_if_fail (NAUTILUS_IS_FILE (file));
g_return_if_fail (client != NULL);
@ -5019,13 +5016,13 @@ nautilus_file_is_not_yet_confirmed (NautilusFile *file)
* obtain the information, which might be slow network calls, e.g.
*
* @file: The file being queried.
* @file_attributes: A GList of the desired information.
* @file_attributes: A bit-mask with the desired information.
*
* Return value: TRUE if all of the specified attributes are currently readable.
*/
gboolean
nautilus_file_check_if_ready (NautilusFile *file,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
/* To be parallel with call_when_ready, return
* TRUE for NULL file.
@ -5043,7 +5040,7 @@ nautilus_file_check_if_ready (NautilusFile *file,
void
nautilus_file_call_when_ready (NautilusFile *file,
GList *file_attributes,
NautilusFileAttributes file_attributes,
NautilusFileCallback callback,
gpointer callback_data)
@ -5120,7 +5117,7 @@ invalidate_link_info (NautilusFile *file)
void
nautilus_file_invalidate_attributes_internal (NautilusFile *file,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
Request request;
@ -5180,7 +5177,7 @@ nautilus_file_set_is_thumbnailing (NautilusFile *file,
void
nautilus_file_invalidate_attributes (NautilusFile *file,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
/* Cancel possible in-progress loads of any of these attributes */
nautilus_directory_cancel_loading_file_attributes (file->details->directory,
@ -5196,37 +5193,30 @@ nautilus_file_invalidate_attributes (NautilusFile *file,
nautilus_directory_async_state_changed (file->details->directory);
}
GList *
NautilusFileAttributes
nautilus_file_get_all_attributes (void)
{
GList *attributes;
attributes = NULL;
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
return attributes;
return NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI |
NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES |
NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON |
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES |
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE |
NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY |
NAUTILUS_FILE_ATTRIBUTE_METADATA |
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE |
NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT |
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
}
void
nautilus_file_invalidate_all_attributes (NautilusFile *file)
{
GList *all_attributes;
NautilusFileAttributes all_attributes;
all_attributes = nautilus_file_get_all_attributes ();
nautilus_file_invalidate_attributes (file, all_attributes);
g_list_free (all_attributes);
}

View file

@ -27,6 +27,7 @@
#include <gtk/gtkobject.h>
#include <libgnomevfs/gnome-vfs-types.h>
#include <libnautilus-private/nautilus-file-attributes.h>
/* NautilusFile is an object used to represent a single element of a
* NautilusDirectory. It's lightweight and relies on NautilusDirectory
@ -100,7 +101,7 @@ void nautilus_file_unref (Nautilu
/* Monitor the file. */
void nautilus_file_monitor_add (NautilusFile *file,
gconstpointer client,
GList *attributes);
NautilusFileAttributes attributes);
void nautilus_file_monitor_remove (NautilusFile *file,
gconstpointer client);
@ -109,16 +110,16 @@ void nautilus_file_monitor_remove (Nautilu
* to other attributes as well.
*/
void nautilus_file_call_when_ready (NautilusFile *file,
GList *attributes,
NautilusFileAttributes attributes,
NautilusFileCallback callback,
gpointer callback_data);
void nautilus_file_cancel_call_when_ready (NautilusFile *file,
NautilusFileCallback callback,
gpointer callback_data);
gboolean nautilus_file_check_if_ready (NautilusFile *file,
GList *attributes);
NautilusFileAttributes attributes);
void nautilus_file_invalidate_attributes (NautilusFile *file,
GList *attributes);
NautilusFileAttributes attributes);
void nautilus_file_invalidate_all_attributes (NautilusFile *file);
/* Basic attributes for file objects. */
@ -344,33 +345,33 @@ typedef struct {
void (* updated_deep_count_in_progress) (NautilusFile *file);
/* Virtual functions (mainly used for trash directory). */
void (* monitor_add) (NautilusFile *file,
gconstpointer client,
GList *attributes);
void (* monitor_remove) (NautilusFile *file,
gconstpointer client);
void (* call_when_ready) (NautilusFile *file,
GList *attributes,
NautilusFileCallback callback,
gpointer callback_data);
void (* cancel_call_when_ready) (NautilusFile *file,
NautilusFileCallback callback,
gpointer callback_data);
gboolean (* check_if_ready) (NautilusFile *file,
GList *attributes);
GnomeVFSFileType (* get_file_type) (NautilusFile *file);
gboolean (* get_item_count) (NautilusFile *file,
guint *count,
gboolean *count_unreadable);
NautilusRequestStatus (* get_deep_counts) (NautilusFile *file,
guint *directory_count,
guint *file_count,
guint *unreadable_directory_count,
GnomeVFSFileSize *total_size);
gboolean (* get_date) (NautilusFile *file,
NautilusDateType type,
time_t *date);
char * (* get_where_string) (NautilusFile *file);
void (* monitor_add) (NautilusFile *file,
gconstpointer client,
NautilusFileAttributes attributes);
void (* monitor_remove) (NautilusFile *file,
gconstpointer client);
void (* call_when_ready) (NautilusFile *file,
NautilusFileAttributes attributes,
NautilusFileCallback callback,
gpointer callback_data);
void (* cancel_call_when_ready) (NautilusFile *file,
NautilusFileCallback callback,
gpointer callback_data);
gboolean (* check_if_ready) (NautilusFile *file,
NautilusFileAttributes attributes);
GnomeVFSFileType (* get_file_type) (NautilusFile *file);
gboolean (* get_item_count) (NautilusFile *file,
guint *count,
gboolean *count_unreadable);
NautilusRequestStatus (* get_deep_counts) (NautilusFile *file,
guint *directory_count,
guint *file_count,
guint *unreadable_directory_count,
GnomeVFSFileSize *total_size);
gboolean (* get_date) (NautilusFile *file,
NautilusDateType type,
time_t *date);
char * (* get_where_string) (NautilusFile *file);
} NautilusFileClass;
#endif /* NAUTILUS_FILE_H */

View file

@ -847,19 +847,13 @@ nautilus_icon_factory_get_icon_for_file (NautilusFile *file, gboolean embedd_tex
/**
* nautilus_icon_factory_get_required_file_attributes
*
* Get the list of file attributes required to obtain a file's icon.
* Callers must free this list.
* Get the file attributes required to obtain a file's icon.
*/
GList *
NautilusFileAttributes
nautilus_icon_factory_get_required_file_attributes (void)
{
GList *attributes;
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON);
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
return attributes;
return NAUTILUS_FILE_ATTRIBUTE_CUSTOM_ICON |
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE;
}
@ -874,12 +868,11 @@ nautilus_icon_factory_get_required_file_attributes (void)
gboolean
nautilus_icon_factory_is_icon_ready_for_file (NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
gboolean result;
attributes = nautilus_icon_factory_get_required_file_attributes ();
result = nautilus_file_check_if_ready (file, attributes);
g_list_free (attributes);
return result;
}

View file

@ -109,8 +109,8 @@ guint nautilus_get_icon_size_for_zoom_level (Nautil
/* Choose the appropriate icon, but don't render it yet. */
char * nautilus_icon_factory_get_icon_for_file (NautilusFile *file,
gboolean embedd_text);
gboolean nautilus_icon_factory_is_icon_ready_for_file (NautilusFile *file);
GList * nautilus_icon_factory_get_required_file_attributes (void);
gboolean nautilus_icon_factory_is_icon_ready_for_file (NautilusFile *file);
NautilusFileAttributes nautilus_icon_factory_get_required_file_attributes (void);
GList * nautilus_icon_factory_get_emblem_icons_for_file (NautilusFile *file,
EelStringList *exclude);

View file

@ -125,7 +125,6 @@ nautilus_link_local_set_icon (const char *uri, const char *icon_name)
{
gboolean result;
NautilusFile *file;
GList *attributes;
switch (get_link_style_for_local_file (uri, NULL)) {
case desktop:
@ -139,10 +138,8 @@ nautilus_link_local_set_icon (const char *uri, const char *icon_name)
}
file = nautilus_file_get (uri);
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
nautilus_file_invalidate_attributes (file, attributes);
nautilus_file_invalidate_attributes (file, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
nautilus_file_unref (file);
g_list_free (attributes);
return result;
}
@ -152,7 +149,6 @@ nautilus_link_local_set_link_uri (const char *uri, const char *link_uri)
{
gboolean result;
NautilusFile *file;
GList *attributes;
switch (get_link_style_for_local_file (uri, NULL)) {
case desktop:
@ -168,10 +164,8 @@ nautilus_link_local_set_link_uri (const char *uri, const char *link_uri)
file = nautilus_file_get (uri);
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
nautilus_file_invalidate_attributes (file, attributes);
nautilus_file_invalidate_attributes (file, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
nautilus_file_unref (file);
g_list_free (attributes);
return result;
}

View file

@ -44,7 +44,7 @@ typedef struct {
NautilusDirectoryCallback callback;
gpointer callback_data;
GList *wait_for_attributes;
NautilusFileAttributes wait_for_attributes;
gboolean wait_for_file_list;
GList *non_ready_directories;
@ -56,7 +56,7 @@ typedef struct {
gboolean monitor_hidden_files;
gboolean monitor_backup_files;
GList *monitor_attributes;
NautilusFileAttributes monitor_attributes;
} MergedMonitor;
enum {
@ -99,7 +99,6 @@ merged_callback_destroy (MergedCallback *merged_callback)
g_assert (merged_callback != NULL);
g_assert (NAUTILUS_IS_MERGED_DIRECTORY (merged_callback->merged));
eel_g_list_free_deep (merged_callback->wait_for_attributes);
g_list_free (merged_callback->non_ready_directories);
nautilus_file_list_free (merged_callback->merged_file_list);
g_free (merged_callback);
@ -158,7 +157,7 @@ directory_ready_callback (NautilusDirectory *directory,
static void
merged_call_when_ready (NautilusDirectory *directory,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_file_list,
NautilusDirectoryCallback callback,
gpointer callback_data)
@ -182,7 +181,7 @@ merged_call_when_ready (NautilusDirectory *directory,
merged_callback->merged = merged;
merged_callback->callback = callback;
merged_callback->callback_data = callback_data;
merged_callback->wait_for_attributes = eel_g_str_list_copy (file_attributes);
merged_callback->wait_for_attributes = file_attributes;
merged_callback->wait_for_file_list = wait_for_file_list;
for (node = merged->details->directories; node != NULL; node = node->next) {
merged_callback->non_ready_directories = g_list_prepend
@ -254,12 +253,12 @@ build_merged_callback_list (NautilusDirectory *directory,
/* Create a monitor on each of the directories in the list. */
static void
merged_monitor_add (NautilusDirectory *directory,
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *file_attributes,
NautilusDirectoryCallback callback,
gpointer callback_data)
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
NautilusFileAttributes file_attributes,
NautilusDirectoryCallback callback,
gpointer callback_data)
{
NautilusMergedDirectory *merged;
MergedMonitor *monitor;
@ -274,7 +273,6 @@ merged_monitor_add (NautilusDirectory *directory,
monitor = g_hash_table_lookup (merged->details->monitors, client);
if (monitor != NULL) {
g_assert (monitor->merged == merged);
eel_g_list_free_deep (monitor->monitor_attributes);
} else {
monitor = g_new0 (MergedMonitor, 1);
monitor->merged = merged;
@ -283,7 +281,7 @@ merged_monitor_add (NautilusDirectory *directory,
}
monitor->monitor_hidden_files = monitor_hidden_files;
monitor->monitor_backup_files = monitor_backup_files;
monitor->monitor_attributes = eel_g_str_list_copy (file_attributes);
monitor->monitor_attributes = file_attributes;
/* Call through to the real directory add calls. */
merged_callback_list = NULL;
@ -310,7 +308,6 @@ merged_monitor_destroy (NautilusMergedDirectory *merged, MergedMonitor *monitor)
nautilus_directory_file_monitor_remove (node->data, monitor);
}
eel_g_list_free_deep (monitor->monitor_attributes);
g_free (monitor);
}

View file

@ -70,12 +70,11 @@ is_known_mime_type (const char *mime_type)
static gboolean
nautilus_mime_actions_check_if_minimum_attributes_ready (NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
gboolean ready;
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
ready = nautilus_file_check_if_ready (file, attributes);
g_list_free (attributes);
return ready;
}
@ -83,40 +82,30 @@ nautilus_mime_actions_check_if_minimum_attributes_ready (NautilusFile *file)
static gboolean
nautilus_mime_actions_check_if_full_attributes_ready (NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
gboolean ready;
attributes = nautilus_mime_actions_get_full_file_attributes ();
ready = nautilus_file_check_if_ready (file, attributes);
g_list_free (attributes);
return ready;
}
GList *
NautilusFileAttributes
nautilus_mime_actions_get_minimum_file_attributes (void)
{
GList *attributes;
attributes = NULL;
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
return attributes;
return NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI |
NAUTILUS_FILE_ATTRIBUTE_METADATA |
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE;
}
GList *
NautilusFileAttributes
nautilus_mime_actions_get_full_file_attributes (void)
{
GList *attributes;
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES);
return attributes;
return nautilus_mime_actions_get_minimum_file_attributes () |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES;
}

View file

@ -30,8 +30,8 @@
#include <libnautilus-private/nautilus-file.h>
GList *nautilus_mime_actions_get_minimum_file_attributes (void);
GList *nautilus_mime_actions_get_full_file_attributes (void);
NautilusFileAttributes nautilus_mime_actions_get_minimum_file_attributes (void);
NautilusFileAttributes nautilus_mime_actions_get_full_file_attributes (void);
gboolean nautilus_mime_actions_file_needs_full_file_attributes (NautilusFile *file);
GnomeVFSMimeActionType nautilus_mime_get_default_action_type_for_file (NautilusFile *file);
GnomeVFSMimeAction * nautilus_mime_get_default_action_for_file (NautilusFile *file);

View file

@ -229,7 +229,7 @@ nautilus_choose_component_for_file (NautilusFile *file,
gpointer callback_data)
{
ChooseComponentCallbackData *choose_data;
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_FILE (file));
g_return_if_fail (parent_window == NULL || GTK_IS_WINDOW (parent_window));
@ -266,7 +266,6 @@ nautilus_choose_component_for_file (NautilusFile *file,
attributes,
choose_component_callback,
choose_data);
g_list_free (attributes);
}
void
@ -369,7 +368,7 @@ nautilus_choose_application_for_file (NautilusFile *file,
gpointer callback_data)
{
ChooseApplicationCallbackData *choose_data;
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_FILE (file));
g_return_if_fail (parent_window == NULL || GTK_IS_WINDOW (parent_window));
@ -406,7 +405,6 @@ nautilus_choose_application_for_file (NautilusFile *file,
attributes,
choose_application_callback,
choose_data);
g_list_free (attributes);
}

View file

@ -52,8 +52,8 @@ typedef struct {
NautilusFileCallback callback;
gpointer callback_data;
GList *delegated_attributes;
GList *non_delegated_attributes;
NautilusFileAttributes delegated_attributes;
NautilusFileAttributes non_delegated_attributes;
GList *non_ready_files;
@ -63,16 +63,10 @@ typedef struct {
typedef struct {
NautilusTrashFile *trash;
GList *delegated_attributes;
GList *non_delegated_attributes;
NautilusFileAttributes delegated_attributes;
NautilusFileAttributes non_delegated_attributes;
} TrashMonitor;
static const char * const delegated_attributes[] = {
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES
};
static void nautilus_trash_file_init (gpointer object,
gpointer klass);
static void nautilus_trash_file_class_init (gpointer klass);
@ -81,44 +75,31 @@ EEL_CLASS_BOILERPLATE (NautilusTrashFile,
nautilus_trash_file,
NAUTILUS_TYPE_FILE)
static gboolean
is_delegated_attribute (const char *attribute)
static NautilusFileAttributes
get_delegated_attributes_mask (void)
{
guint i;
g_return_val_if_fail (attribute != NULL, FALSE);
for (i = 0; i < G_N_ELEMENTS (delegated_attributes); i++) {
if (strcmp (attribute, delegated_attributes[i]) == 0) {
return TRUE;
}
}
return FALSE;
}
static gboolean
is_delegated_attribute_predicate (gpointer data,
gpointer callback_data)
{
return is_delegated_attribute (data);
return NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_MIME_TYPES;
}
static void
partition_attributes (GList *attributes,
GList **delegated_attributes,
GList **non_delegated_attributes)
partition_attributes (NautilusFileAttributes attributes,
NautilusFileAttributes *delegated_attributes,
NautilusFileAttributes *non_delegated_attributes)
{
*delegated_attributes = eel_g_list_partition
(attributes,
is_delegated_attribute_predicate,
NULL,
non_delegated_attributes);
NautilusFileAttributes mask;
mask = get_delegated_attributes_mask ();
*delegated_attributes = attributes & mask;
*non_delegated_attributes = attributes & ~mask;
}
static void
real_monitor_add (NautilusFile *file,
gconstpointer client,
GList *attributes)
NautilusFileAttributes attributes)
{
nautilus_directory_monitor_add_internal
(file->details->directory, file,
@ -135,7 +116,7 @@ real_monitor_remove (NautilusFile *file,
static void
real_call_when_ready (NautilusFile *file,
GList *attributes,
NautilusFileAttributes attributes,
NautilusFileCallback callback,
gpointer callback_data)
@ -157,7 +138,7 @@ real_cancel_call_when_ready (NautilusFile *file,
static gboolean
real_check_if_ready (NautilusFile *file,
GList *attributes)
NautilusFileAttributes attributes)
{
return nautilus_directory_check_if_ready_internal
(file->details->directory, file,
@ -194,8 +175,6 @@ trash_callback_destroy (TrashCallback *trash_callback)
g_assert (NAUTILUS_IS_TRASH_FILE (trash_callback->trash));
nautilus_file_unref (NAUTILUS_FILE (trash_callback->trash));
eel_g_list_free_deep (trash_callback->delegated_attributes);
eel_g_list_free_deep (trash_callback->non_delegated_attributes);
g_list_free (trash_callback->non_ready_files);
g_free (trash_callback);
}
@ -382,7 +361,7 @@ remove_directory_callback (NautilusTrashDirectory *trash_directory,
static void
trash_file_call_when_ready (NautilusFile *file,
GList *attributes,
NautilusFileAttributes attributes,
NautilusFileCallback callback,
gpointer callback_data)
@ -409,7 +388,7 @@ trash_file_call_when_ready (NautilusFile *file,
trash_callback->callback_data = callback_data;
trash_callback->initializing = TRUE;
partition_attributes (eel_g_str_list_copy (attributes),
partition_attributes (attributes,
&trash_callback->delegated_attributes,
&trash_callback->non_delegated_attributes);
@ -476,16 +455,16 @@ trash_file_cancel_call_when_ready (NautilusFile *file,
static gboolean
trash_file_check_if_ready (NautilusFile *file,
GList *attributes)
NautilusFileAttributes attributes)
{
GList *delegated_attributes, *non_delegated_attributes;
NautilusFileAttributes delegated_attributes, non_delegated_attributes;
NautilusTrashFile *trash;
GList *node;
gboolean ready;
trash = NAUTILUS_TRASH_FILE (file);
partition_attributes (g_list_copy (attributes),
partition_attributes (attributes,
&delegated_attributes,
&non_delegated_attributes);
@ -501,16 +480,13 @@ trash_file_check_if_ready (NautilusFile *file,
}
}
g_list_free (delegated_attributes);
g_list_free (non_delegated_attributes);
return ready;
}
static void
trash_file_monitor_add (NautilusFile *file,
gconstpointer client,
GList *attributes)
NautilusFileAttributes attributes)
{
NautilusTrashFile *trash;
TrashMonitor *monitor;
@ -524,8 +500,6 @@ trash_file_monitor_add (NautilusFile *file,
monitor = g_hash_table_lookup (trash->details->monitors, client);
if (monitor != NULL) {
g_assert (monitor->trash == trash);
eel_g_list_free_deep (monitor->delegated_attributes);
eel_g_list_free_deep (monitor->non_delegated_attributes);
} else {
monitor = g_new0 (TrashMonitor, 1);
monitor->trash = trash;
@ -533,7 +507,7 @@ trash_file_monitor_add (NautilusFile *file,
(gpointer) client, monitor);
}
partition_attributes (eel_g_str_list_copy (attributes),
partition_attributes (attributes,
&monitor->delegated_attributes,
&monitor->non_delegated_attributes);
@ -568,8 +542,6 @@ trash_file_monitor_remove (NautilusFile *file,
nautilus_file_monitor_remove (node->data, monitor);
}
eel_g_list_free_deep (monitor->delegated_attributes);
eel_g_list_free_deep (monitor->non_delegated_attributes);
g_free (monitor);
}

View file

@ -125,7 +125,7 @@ nautilus_trash_monitor_init (gpointer object, gpointer klass)
{
NautilusDirectory *trash_directory;
NautilusTrashMonitor *trash_monitor;
GList *attributes;
NautilusFileAttributes attributes;
trash_monitor = NAUTILUS_TRASH_MONITOR (object);
@ -137,15 +137,13 @@ nautilus_trash_monitor_init (gpointer object, gpointer klass)
trash_monitor->details->trash_directory = trash_directory;
trash_monitor->details->empty = TRUE;
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = NAUTILUS_FILE_ATTRIBUTE_METADATA;
/* Make sure we get notified about changes */
nautilus_directory_file_monitor_add
(trash_directory, trash_monitor, TRUE, TRUE, attributes,
nautilus_trash_files_changed_callback, trash_monitor);
g_list_free (attributes);
g_signal_connect_object (trash_directory, "files_added",
G_CALLBACK (nautilus_trash_files_changed_callback), trash_monitor, 0);
g_signal_connect_object (trash_directory, "files_changed",

View file

@ -58,7 +58,7 @@ vfs_contains_file (NautilusDirectory *directory,
static void
vfs_call_when_ready (NautilusDirectory *directory,
GList *file_attributes,
NautilusFileAttributes file_attributes,
gboolean wait_for_file_list,
NautilusDirectoryCallback callback,
gpointer callback_data)
@ -95,7 +95,7 @@ vfs_file_monitor_add (NautilusDirectory *directory,
gconstpointer client,
gboolean monitor_hidden_files,
gboolean monitor_backup_files,
GList *file_attributes,
NautilusFileAttributes file_attributes,
NautilusDirectoryCallback callback,
gpointer callback_data)
{
@ -124,14 +124,13 @@ vfs_file_monitor_remove (NautilusDirectory *directory,
static void
vfs_force_reload (NautilusDirectory *directory)
{
GList *all_attributes;
NautilusFileAttributes all_attributes;
g_assert (NAUTILUS_IS_DIRECTORY (directory));
all_attributes = nautilus_file_get_all_attributes ();
nautilus_directory_force_reload_internal (directory,
all_attributes);
g_list_free (all_attributes);
}
static gboolean

View file

@ -41,7 +41,7 @@ EEL_CLASS_BOILERPLATE (NautilusVFSFile,
static void
vfs_file_monitor_add (NautilusFile *file,
gconstpointer client,
GList *attributes)
NautilusFileAttributes attributes)
{
nautilus_directory_monitor_add_internal
(file->details->directory, file,
@ -58,7 +58,7 @@ vfs_file_monitor_remove (NautilusFile *file,
static void
vfs_file_call_when_ready (NautilusFile *file,
GList *file_attributes,
NautilusFileAttributes file_attributes,
NautilusFileCallback callback,
gpointer callback_data)
@ -80,7 +80,7 @@ vfs_file_cancel_call_when_ready (NautilusFile *file,
static gboolean
vfs_file_check_if_ready (NautilusFile *file,
GList *file_attributes)
NautilusFileAttributes file_attributes)
{
return nautilus_directory_check_if_ready_internal
(file->details->directory, file,

View file

@ -1253,21 +1253,19 @@ static void
add_directory_to_scripts_directory_list (FMDirectoryView *view,
NautilusDirectory *directory)
{
GList *attributes;
NautilusFileAttributes attributes;
if (g_list_find (view->details->scripts_directory_list, directory) == NULL) {
nautilus_directory_ref (directory);
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
attributes |= NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES |
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT;
nautilus_directory_file_monitor_add (directory, &view->details->scripts_directory_list,
FALSE, FALSE, attributes,
scripts_added_or_changed_callback, view);
g_list_free (attributes);
g_signal_connect_object (directory, "files_added",
G_CALLBACK (scripts_added_or_changed_callback), view, 0);
g_signal_connect_object (directory, "files_changed",
@ -5231,7 +5229,7 @@ fm_directory_view_activate_file (FMDirectoryView *view,
WindowChoice choice)
{
ActivateParameters *parameters;
GList *attributes;
NautilusFileAttributes attributes;
char *file_name;
char *timed_wait_prompt;
@ -5239,9 +5237,9 @@ fm_directory_view_activate_file (FMDirectoryView *view,
g_return_if_fail (NAUTILUS_IS_FILE (file));
/* Might have to read some of the file to activate it. */
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI);
attributes = g_list_prepend (attributes, NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE);
attributes = nautilus_mime_actions_get_minimum_file_attributes () |
NAUTILUS_FILE_ATTRIBUTE_ACTIVATION_URI |
NAUTILUS_FILE_ATTRIBUTE_FILE_TYPE;
parameters = g_new (ActivateParameters, 1);
parameters->view = view;
parameters->file = file;
@ -5260,8 +5258,6 @@ fm_directory_view_activate_file (FMDirectoryView *view,
g_free (timed_wait_prompt);
nautilus_file_call_when_ready
(file, attributes, activate_callback, parameters);
g_list_free (attributes);
}
@ -5332,7 +5328,7 @@ load_directory (FMDirectoryView *view,
{
NautilusDirectory *old_directory;
NautilusFile *old_file;
GList *attributes;
NautilusFileAttributes attributes;
g_assert (FM_IS_DIRECTORY_VIEW (view));
g_assert (NAUTILUS_IS_DIRECTORY (directory));
@ -5364,7 +5360,7 @@ load_directory (FMDirectoryView *view,
* well as doing a call when ready), in case external forces
* change the directory's file metadata.
*/
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = NAUTILUS_FILE_ATTRIBUTE_METADATA;
view->details->metadata_for_directory_as_file_pending = TRUE;
view->details->metadata_for_files_in_directory_pending = TRUE;
nautilus_file_call_when_ready
@ -5376,16 +5372,14 @@ load_directory (FMDirectoryView *view,
attributes,
FALSE,
metadata_for_files_in_directory_ready_callback, view);
g_list_free (attributes);
/* If capabilities change, then we need to update the menus
* because of New Folder, and relative emblems.
*/
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES);
attributes = NAUTILUS_FILE_ATTRIBUTE_CAPABILITIES;
nautilus_file_monitor_add (view->details->directory_as_file,
&view->details->directory_as_file,
attributes);
g_list_free (attributes);
view->details->file_changed_handler_id = g_signal_connect
(view->details->directory_as_file, "changed",
@ -5395,7 +5389,7 @@ load_directory (FMDirectoryView *view,
static void
finish_loading (FMDirectoryView *view)
{
GList *attributes;
NautilusFileAttributes attributes;
nautilus_view_report_load_underway (view->details->nautilus_view);
@ -5428,14 +5422,10 @@ finish_loading (FMDirectoryView *view)
* and possible custom name.
*/
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE);
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes |= NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT |
NAUTILUS_FILE_ATTRIBUTE_METADATA |
NAUTILUS_FILE_ATTRIBUTE_MIME_TYPE |
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_directory_file_monitor_add (view->details->model,
&view->details->model,
@ -5444,8 +5434,6 @@ finish_loading (FMDirectoryView *view)
attributes,
files_added_callback, view);
g_list_free (attributes);
view->details->files_added_handler_id = g_signal_connect
(view->details->model, "files_added",
G_CALLBACK (files_added_callback), view);
@ -6041,7 +6029,7 @@ monitor_file_for_open_with (FMDirectoryView *view, NautilusFile *file)
{
NautilusFile **file_spot;
NautilusFile *old_file;
GList *attributes;
NautilusFileAttributes attributes;
/* Quick out when not changing. */
file_spot = &view->details->file_monitored_for_open_with;
@ -6064,7 +6052,6 @@ monitor_file_for_open_with (FMDirectoryView *view, NautilusFile *file)
if (file != NULL) {
attributes = nautilus_mime_actions_get_full_file_attributes ();
nautilus_file_monitor_add (file, file_spot, attributes);
g_list_free (attributes);
}
}

View file

@ -86,19 +86,12 @@ fm_icon_container_start_monitor_top_left (NautilusIconContainer *container,
gconstpointer client)
{
NautilusFile *file;
GList *attributes;
file = (NautilusFile *) data;
g_assert (NAUTILUS_IS_FILE (file));
attributes = NULL;
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT);
nautilus_file_monitor_add (file, client, attributes);
g_list_free (attributes);
nautilus_file_monitor_add (file, client, NAUTILUS_FILE_ATTRIBUTE_TOP_LEFT_TEXT);
}
static void

View file

@ -2384,7 +2384,7 @@ static FMPropertiesWindow *
create_properties_window (StartupData *startup_data)
{
FMPropertiesWindow *window;
GList *attributes;
NautilusFileAttributes attributes;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *button;
@ -2407,20 +2407,16 @@ create_properties_window (StartupData *startup_data)
* target file.
*/
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes |= NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (window->details->original_file, window, attributes);
g_list_free (attributes);
attributes = NULL;
attributes = 0;
if (nautilus_file_is_directory (window->details->target_file)) {
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS);
attributes |= NAUTILUS_FILE_ATTRIBUTE_DEEP_COUNTS;
}
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes |= NAUTILUS_FILE_ATTRIBUTE_METADATA;
nautilus_file_monitor_add (window->details->target_file, window, attributes);
g_list_free (attributes);
/* React to future property changes and file deletions. */
window->details->file_changed_handler_id =
@ -2591,7 +2587,6 @@ fm_properties_window_present (NautilusFile *original_file, FMDirectoryView *dire
GtkWidget *parent_window;
NautilusFile *target_file;
StartupData *startup_data;
GList attribute_list;
g_return_if_fail (NAUTILUS_IS_FILE (original_file));
g_return_if_fail (FM_IS_DIRECTORY_VIEW (directory_view));
@ -2640,11 +2635,8 @@ fm_properties_window_present (NautilusFile *original_file, FMDirectoryView *dire
_("Cancel Showing Properties Window?"),
_("Creating Properties window"),
parent_window == NULL ? NULL : GTK_WINDOW (parent_window));
attribute_list.data = NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY;
attribute_list.next = NULL;
attribute_list.prev = NULL;
nautilus_file_call_when_ready
(target_file, &attribute_list,
(target_file, NAUTILUS_FILE_ATTRIBUTE_IS_DIRECTORY,
create_properties_window_callback, startup_data);
}

View file

@ -143,7 +143,7 @@ nautilus_determine_initial_view (const char *location,
gpointer callback_data)
{
NautilusDetermineViewHandle *handle;
GList *attributes;
NautilusFileAttributes attributes;
g_return_val_if_fail (location != NULL, NULL);
g_return_val_if_fail (callback != NULL, NULL);
@ -160,7 +160,6 @@ nautilus_determine_initial_view (const char *location,
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
nautilus_file_call_when_ready (handle->file, attributes,
got_file_info_callback, handle);
g_list_free (attributes);
if (handle != NULL) {
handle->early_completion_hook = NULL;

View file

@ -1109,12 +1109,11 @@ nautilus_information_panel_update_appearance (NautilusInformationPanel *informat
static void
background_metadata_changed_callback (NautilusInformationPanel *information_panel)
{
GList *attributes;
NautilusFileAttributes attributes;
gboolean ready;
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
ready = nautilus_file_check_if_ready (information_panel->details->file, attributes);
g_list_free (attributes);
if (ready) {
nautilus_information_panel_update_appearance (information_panel);
@ -1132,7 +1131,7 @@ nautilus_information_panel_set_uri (NautilusInformationPanel *information_panel,
const char* initial_title)
{
NautilusFile *file;
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_INFORMATION_PANEL (information_panel));
g_return_if_fail (new_uri != NULL);
@ -1166,7 +1165,6 @@ nautilus_information_panel_set_uri (NautilusInformationPanel *information_panel,
attributes = nautilus_mime_actions_get_minimum_file_attributes ();
nautilus_file_monitor_add (information_panel->details->file, information_panel, attributes);
g_list_free (attributes);
background_metadata_changed_callback (information_panel);

View file

@ -1515,7 +1515,7 @@ cancel_view_as_callback (NautilusWindow *window)
void
nautilus_window_load_view_as_menus (NautilusWindow *window)
{
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_WINDOW (window));
@ -1526,8 +1526,6 @@ nautilus_window_load_view_as_menus (NautilusWindow *window)
attributes,
load_view_as_menus_callback,
window);
g_list_free (attributes);
}
void
@ -2200,7 +2198,7 @@ void
nautilus_window_set_viewed_file (NautilusWindow *window,
NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
if (window->details->viewed_file == file) {
return;
@ -2217,9 +2215,8 @@ nautilus_window_set_viewed_file (NautilusWindow *window,
}
if (file != NULL) {
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (file, window, attributes);
g_list_free (attributes);
}
nautilus_file_unref (window->details->viewed_file);

View file

@ -1515,7 +1515,7 @@ cancel_view_as_callback (NautilusWindow *window)
void
nautilus_window_load_view_as_menus (NautilusWindow *window)
{
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_WINDOW (window));
@ -1526,8 +1526,6 @@ nautilus_window_load_view_as_menus (NautilusWindow *window)
attributes,
load_view_as_menus_callback,
window);
g_list_free (attributes);
}
void
@ -2200,7 +2198,7 @@ void
nautilus_window_set_viewed_file (NautilusWindow *window,
NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
if (window->details->viewed_file == file) {
return;
@ -2217,9 +2215,8 @@ nautilus_window_set_viewed_file (NautilusWindow *window,
}
if (file != NULL) {
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (file, window, attributes);
g_list_free (attributes);
}
nautilus_file_unref (window->details->viewed_file);

View file

@ -635,7 +635,7 @@ item_count_ready (NautilusSidebarTitle *sidebar_title)
static void
monitor_add (NautilusSidebarTitle *sidebar_title)
{
GList *attributes;
NautilusFileAttributes attributes;
/* Monitor the things needed to get the right icon. Don't
* monitor a directory's item count at first even though the
@ -650,16 +650,13 @@ monitor_add (NautilusSidebarTitle *sidebar_title)
sidebar_title->details->monitoring_count = item_count_ready (sidebar_title);
attributes = nautilus_icon_factory_get_required_file_attributes ();
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes |= NAUTILUS_FILE_ATTRIBUTE_METADATA;
if (sidebar_title->details->monitoring_count) {
attributes = g_list_prepend (attributes,
NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT);
attributes |= NAUTILUS_FILE_ATTRIBUTE_DIRECTORY_ITEM_COUNT;
}
nautilus_file_monitor_add (sidebar_title->details->file, sidebar_title, attributes);
g_list_free (attributes);
}
static void

View file

@ -1515,7 +1515,7 @@ cancel_view_as_callback (NautilusWindow *window)
void
nautilus_window_load_view_as_menus (NautilusWindow *window)
{
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_WINDOW (window));
@ -1526,8 +1526,6 @@ nautilus_window_load_view_as_menus (NautilusWindow *window)
attributes,
load_view_as_menus_callback,
window);
g_list_free (attributes);
}
void
@ -2200,7 +2198,7 @@ void
nautilus_window_set_viewed_file (NautilusWindow *window,
NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
if (window->details->viewed_file == file) {
return;
@ -2217,9 +2215,8 @@ nautilus_window_set_viewed_file (NautilusWindow *window,
}
if (file != NULL) {
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (file, window, attributes);
g_list_free (attributes);
}
nautilus_file_unref (window->details->viewed_file);

View file

@ -612,7 +612,7 @@ update_for_new_location (NautilusWindow *window)
file = nautilus_file_get (window->details->location);
nautilus_window_set_viewed_file (window, file);
window->details->viewed_file_seen = !nautilus_file_is_not_yet_confirmed (file);
nautilus_file_monitor_add (file, &window->details->viewed_file, NULL);
nautilus_file_monitor_add (file, &window->details->viewed_file, 0);
g_signal_connect_object (file, "changed",
G_CALLBACK (viewed_file_changed_callback), window, 0);
nautilus_file_unref (file);
@ -1265,7 +1265,7 @@ determined_initial_view_callback (NautilusDetermineViewHandle *handle,
char *home_uri;
const char *location;
GtkDialog *dialog;
GList *attributes;
NautilusFileAttributes attributes;
GnomeVFSURI *vfs_uri;
window = NAUTILUS_WINDOW (data);
@ -1285,12 +1285,11 @@ determined_initial_view_callback (NautilusDetermineViewHandle *handle,
if (!GTK_WIDGET_VISIBLE (window)) {
file = nautilus_file_get (location);
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_METADATA);
attributes = NAUTILUS_FILE_ATTRIBUTE_METADATA;
nautilus_file_call_when_ready (file,
attributes,
position_and_show_window_callback,
window);
g_list_free (attributes);
}
load_content_view (window, initial_view);

View file

@ -1515,7 +1515,7 @@ cancel_view_as_callback (NautilusWindow *window)
void
nautilus_window_load_view_as_menus (NautilusWindow *window)
{
GList *attributes;
NautilusFileAttributes attributes;
g_return_if_fail (NAUTILUS_IS_WINDOW (window));
@ -1526,8 +1526,6 @@ nautilus_window_load_view_as_menus (NautilusWindow *window)
attributes,
load_view_as_menus_callback,
window);
g_list_free (attributes);
}
void
@ -2200,7 +2198,7 @@ void
nautilus_window_set_viewed_file (NautilusWindow *window,
NautilusFile *file)
{
GList *attributes;
NautilusFileAttributes attributes;
if (window->details->viewed_file == file) {
return;
@ -2217,9 +2215,8 @@ nautilus_window_set_viewed_file (NautilusWindow *window,
}
if (file != NULL) {
attributes = g_list_prepend (NULL, NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME);
attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (file, window, attributes);
g_list_free (attributes);
}
nautilus_file_unref (window->details->viewed_file);

View file

@ -108,8 +108,8 @@ main (int argc, char **argv)
const char *field;
const char *value;
NautilusFile *file;
GList *attributes;
NautilusFileAttributes attributes;
gnome_program_init ("test-nautilus-mime-actions-set", "0.0",
LIBGNOMEUI_MODULE, argc, argv, NULL);
@ -125,7 +125,6 @@ main (int argc, char **argv)
attributes = nautilus_mime_actions_get_full_file_attributes ();
nautilus_file_call_when_ready (file, attributes, ready_callback, NULL);
g_list_free (attributes);
while (!ready) {
gtk_main_iteration ();

View file

@ -152,7 +152,7 @@ main (int argc, char **argv)
GList *short_list_components;
GList *short_list_applications;
NautilusFile *file;
GList *attributes;
NautilusFileAttributes attributes;
gnome_program_init ("test-nautilus-mime-actions", "0.0",
LIBGNOMEUI_MODULE, argc, argv, NULL);
@ -167,7 +167,6 @@ main (int argc, char **argv)
attributes = nautilus_mime_actions_get_full_file_attributes ();
nautilus_file_call_when_ready (file, attributes, ready_callback, NULL);
g_list_free (attributes);
while (!ready) {
gtk_main_iteration ();