Skip to content
  • John Sullivan's avatar
    reviewed by: Darin Adler <darin@eazel.com> · 40f19a1e
    John Sullivan authored
    	Fixed bug 1853 (Want preference for always sorting folders first)
    
    	For now, this is a global preference. Making it
    	per-window later is a possibility. Arlo is working on
    	a design for directory view defaults that may incorporate
    	this.
    
    	* libnautilus-extensions/nautilus-file.h:
    	* libnautilus-extensions/nautilus-file.c:
    	(nautilus_file_compare_for_sort_reversed): Eliminated this in
    	favor of a parameter to nautilus_file_compare_for_sort.
    	(nautilus_file_compare_for_sort): Add a parameter for reversed,
    	and another for directories_first.
    	(nautilus_file_compare_for_sort_internal): Former guts of
    	nautilus_file_compare_for_sort moved here.
    	(nautilus_self_check_file): Update compare_for_sort self-checks.
    
    	* libnautilus-extensions/nautilus-global-preferences.h:
    	* libnautilus-extensions/nautilus-global-preferences.c:
    	(global_preferences_install_descriptions),
    	(global_preferences_install_defaults),
    	(global_preferences_install_visibility),
    	(global_preferences_create_dialog): Install an "Always list
    	folders before files" preference in the Icon and List Views
    	section.
    
    	* src/file-manager/fm-directory-view.h:
    	(sort_directories_first_changed): New function pointer for
    	subclasses to override.
    	* src/file-manager/fm-directory-view.c:
    	(fm_directory_view_should_sort_directories_first): New function
    	for subclasses to call.
    	(sort_directories_first_changed_callback): Call virtual function
    	when preference changes.
    	(fm_directory_view_initialize): Store initial value of preference;
    	install preference callback.
    	(fm_directory_view_destroy): Remove preference callback.
    
    	* src/file-manager/fm-desktop-icon-view.c:
    	(desktop_icons_compare_callback): Respect preference
    	setting.
    
    	* src/file-manager/fm-icon-view.c:
    	(icon_container_compare_icons_callback): Update to respect
    	directories_first setting.
    	(icon_container_compare_icons_by_name_callback): Update for API
    	change only.
    	(fm_icon_view_sort_directories_first_changed): Override virtual
    	function; re-sort icon container if in auto-layout mode.
    	(fm_icon_view_initialize_class): Install virtual function override.
    
    	* src/file-manager/fm-list-view.c:
    	(fm_list_view_initialize_class): Install virtual function override.
    	(list_view_compare_files_for_sort): New function, broken out of
    	fm_list_view_compare_rows, and changed to respect directories_first
    	setting.
    	(fm_list_view_compare_rows): Break out list_view_compare_files_for_sort.
    	(compare_rows_by_name): Update for API change only.
    	(real_sort_directories_first_changed): Override virtual function;
    	re-sort list.
    	(fm_list_view_display_pending_files): Update code that sorts
    	pending items before adding them to list.
    	(fm_list_view_sort_items): Add comment.
    40f19a1e