Skip to content
  • Darin Adler's avatar
    Made NautilusFile async. like NautilusDirectory already was. · e1f2a77d
    Darin Adler authored
    	* RENAMING: Added a renaming idea.
    
    	* libnautilus-extensions/nautilus-directory-async.c:
    	(cancel_get_info), (cancel_metafile_read),
    	(nautilus_directory_cancel): Added the new getting of file info
    	to the cancel logic.
    	(nautilus_compare_file_with_name): Changed to get the name in a
    	way that works with files with no info.
    	(nautilus_async_destroying_file): Handle the cancelling for the
    	get_file_info case.
    	(lacks_info), (wants_info), (request_is_satisfied): Add code to
    	handle the need for file info for a newly created NautilusFile.
    	(get_info_callback), (start_getting_file_info), (state_changed):
    	Add code to get file info for files that lack it.
    
    	* libnautilus-extensions/nautilus-directory-private.h:
    	Add fields for getting file info for new files.
    
    	* libnautilus-extensions/nautilus-directory.c:
    	(nautilus_directory_notify_files_moved): Moved the logic about
    	updating the name on a file as it is moved into nautilus-file.c.
    
    	* libnautilus-extensions/nautilus-file-attributes.h:
    	Added a "deep count" attribute and function as a placeholder for
    	work that I'll be doing for John shortly.
    
    	* libnautilus-extensions/nautilus-file-private.h:
    	Moved the calls relating to updating an existing NautilusFile
    	so they are private and added one for a name change.
    
    	* libnautilus-extensions/nautilus-file-utilities.h:
    	Added interface for new nautilus_read_entire_file family of calls
    	that I still need to implement.
    
    	* libnautilus-extensions/nautilus-file.h:
    	* libnautilus-extensions/nautilus-file.c:
    	(nautilus_file_new_from_name), (nautilus_file_new_from_info):
    	Added a way to create a file without having GnomeVFSFileInfo yet.
    	(nautilus_file_get): Don't get the GnomeVFSFileInfo; let the async.
    	logic handler that.
    	(rename_update_info_and_metafile): Handle new name field.
    	(nautilus_file_rename): Use new name field.
    	(nautilus_file_get_gnome_vfs_uri): Common code shared in a couple
    	of places. Started fixing the "no file object for root" problem.
    	(nautilus_file_matches_uri): Use nautilus_file_get_gnome_vfs_uri.
    	(nautilus_file_update_info): Handle NULL case and new name field.
    	(nautilus_file_update_name): New function used by move code in
    	nautilus-directory.c.
    	(nautilus_file_compare_by_type): Handle NULL info case.
    	(nautilus_file_compare_for_sort_internal): Handle NULL info case.
    	(nautilus_file_compare_name): Use new name field.
    	(nautilus_file_get_metadata), (nautilus_file_get_metadata_list):
    	Handle NULL file and use new name field.
    	(nautilus_file_set_metadata), (nautilus_file_set_metadata_list):
    	Use new name field.
    	(nautilus_file_get_name): Handle NULL file and use new name field.
    	(nautilus_file_get_uri): Use nautilus_file_get_gnome_vfs_uri.
    	(info_missing): New function to handle NULL file case, NULL info
    	case, and check the valid_fields more thoroughly.
    	(nautilus_file_get_date_as_string), (nautilus_file_get_size),
    	(nautilus_file_can_get_permissions),
    	(nautilus_file_get_owner_as_string),
    	(nautilus_file_get_group_as_string),
    	(nautilus_file_get_size_as_string),
    	(nautilus_file_get_type_as_string), (nautilus_file_get_file_type),
    	(nautilus_file_get_mime_type), (nautilus_file_is_mime_type),
    	(nautilus_file_is_symbolic_link),
    	Use info_missing to handle NULL file and NULL info cases and to
    	do valid_fields checks as needed.
    	(nautilus_file_get_permissions_as_string): Move file check so the
    	NULL case will work properly.
    	(nautilus_file_get_mime_type_as_string_attribute): Got rid of
    	redundant g_free call.
    	(nautilus_file_get_string_attribute): Remove file check so NULL
    	case will work properly.
    	(nautilus_file_get_emblem_names): Handle NULL file case.
    	(nautilus_file_get_keywords): Handle NULL file case.
    	(nautilus_file_is_executable): Remove file check so NULL case will
    	work properly.
    	(nautilus_file_mark_gone): Add code to get rid of info which we
    	don't need to keep around for files that are gone.
    	(nautilus_file_activate_custom): Added FIXME comments.
    
    	* libnautilus-extensions/nautilus-gdk-extensions.c:
    	(nautilus_get_largest_fitting_font): Changed so it handles the case
    	of NULL for passed-in text properly.
    
    	* libnautilus-extensions/nautilus-icon-factory.c:
    	(nautilus_icon_factory_get_icon_for_file): Formatting.
    	(nautilus_icon_factory_get_pixbuf_for_file): Handle NULL file by
    	returning NULL for the pixbuf.
    	(nautilus_icon_factory_get_pixmap_and_mask_for_file):
    	Handle NULL for the pixbuf by return NULL for the pixmap/mask.
    
    	* src/nautilus-main.c: (print_leaks), (main): Do the leak printing
    	from an atexit function so more of the cleanup will run first.
    
    	* libnautilus-extensions/nautilus-gtk-extensions.h:
    	* libnautilus-extensions/nautilus-gtk-extensions.c:
    	(nautilus_gtk_pixmap_new_empty): A simple cover for allocating a
    	GtkPixmap before we have a GdkPixmap to display.
    
    	* src/nautilus-sidebar-title.c: (nautilus_sidebar_title_initialize):
    	Create the widgets when the title is set up instead of creating
    	them "as needed".
    	(update_icon): Always update the icon, even if the file is NULL.
    	(update_title): Always update the title, even if the file is NULL.
    	Also got rid of the line-breaking code. We instead use the line-
    	breaking code inside GtkLabel, which we can tweak as needed by
    	setting a line width. We may need to revisit this, but lets not
    	re-add our own line-break code unless we have to.
    	(append_and_eat), (update_more_info): Always update the info field,
    	even if the file is NULL. I rewrote this.
    	(add_emblem), (update_emblems): Always update the emblems, even if
    	the file is NULL.
    	(update_notes): Always update the notes, even if the file is NULL.
    	(update_all): Update all the pieces separately (the old code was
    	doing them strangely bunched up).
    	(nautilus_sidebar_title_set_uri): Always ask for the directory
    	item count, even when the item is not yet known to be a directory.
    
    	* src/nautilus-window.c: (nautilus_window_constructed): Get rid
    	of the call to gtk_widget_show_all that was showhing things that
    	were intentionally hidden.
    	(nautilus_window_load_content_view_menu): Removed an unused
    	variable that was set up but never examined.
    e1f2a77d