diff options
author | Darin Adler <darin@src.gnome.org> | 2002-03-05 01:13:01 +0000 |
---|---|---|
committer | Darin Adler <darin@src.gnome.org> | 2002-03-05 01:13:01 +0000 |
commit | e839e4791a0fb243f30ccd7cada0b1dfefcc9cbb (patch) | |
tree | 70c1d067004fac99b9c2785f7b7af423ff9168c3 | |
parent | c3955f7147318c7b8fd8ca2089529c3196e8ce13 (diff) | |
download | nautilus-e839e4791a0fb243f30ccd7cada0b1dfefcc9cbb.tar.gz |
Put a default one in here, since there are only really icon locations for
* src/file-manager/fm-directory-view.c:
(real_get_selected_icon_locations): Put a default one in here, since
there are only really icon locations for FMIconView.
(fm_directory_view_class_init): Set up default get_selected_icon_locations.
* src/file-manager/fm-list-model.c:
(fm_list_model_get_sort_column_id_from_attribute): Allow NULL.
(fm_list_model_get_sort_column_id_from_sort_type): Handle all types.
* src/file-manager/fm-list-view.c:
(set_sort_order_from_metadata_and_preferences): Fix to handle unknown
values in metadata.
(fm_list_view_reset_to_defaults): New.
(fm_list_view_class_init): Hoom up the new reset_to_defaults function.
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | src/file-manager/fm-directory-view.c | 11 | ||||
-rw-r--r-- | src/file-manager/fm-list-model.c | 18 | ||||
-rw-r--r-- | src/file-manager/fm-list-view.c | 47 |
4 files changed, 69 insertions, 24 deletions
@@ -1,5 +1,22 @@ 2002-03-04 Darin Adler <darin@bentspoon.com> + * src/file-manager/fm-directory-view.c: + (real_get_selected_icon_locations): Put a default one in here, since + there are only really icon locations for FMIconView. + (fm_directory_view_class_init): Set up default get_selected_icon_locations. + + * src/file-manager/fm-list-model.c: + (fm_list_model_get_sort_column_id_from_attribute): Allow NULL. + (fm_list_model_get_sort_column_id_from_sort_type): Handle all types. + + * src/file-manager/fm-list-view.c: + (set_sort_order_from_metadata_and_preferences): Fix to handle unknown + values in metadata. + (fm_list_view_reset_to_defaults): New. + (fm_list_view_class_init): Hoom up the new reset_to_defaults function. + +2002-03-04 Darin Adler <darin@bentspoon.com> + * src/file-manager/fm-directory-view.c: Formatting tweaks. * src/file-manager/fm-list-model.c: (remove_link_saving_prev): diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index 1f2e27813..42e58721d 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -327,6 +327,7 @@ static void monitor_file_for_open_with (FMDirectoryView NautilusFile *file); EEL_CLASS_BOILERPLATE (FMDirectoryView, fm_directory_view, GTK_TYPE_SCROLLED_WINDOW) + EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, add_file) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, bump_zoom_level) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, can_zoom_in) @@ -334,7 +335,6 @@ EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, can_zoom_out) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, clear) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, file_changed) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_background_widget) -EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_selected_icon_locations) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, get_selection) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, is_empty) EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (fm_directory_view, reset_to_defaults) @@ -5655,6 +5655,13 @@ real_sort_files (FMDirectoryView *view, GList **files) { } +static GArray * +real_get_selected_icon_locations (FMDirectoryView *view) +{ + /* By default, just return an empty list. */ + return g_array_new (FALSE, TRUE, sizeof (GdkPoint)); +} + static void fm_directory_view_class_init (FMDirectoryViewClass *klass) { @@ -5755,6 +5762,7 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass) klass->file_limit_reached = real_file_limit_reached; klass->file_still_belongs = real_file_still_belongs; klass->get_emblem_names_to_exclude = real_get_emblem_names_to_exclude; + klass->get_selected_icon_locations = real_get_selected_icon_locations; klass->is_read_only = real_is_read_only; klass->load_error = real_load_error; klass->sort_files = real_sort_files; @@ -5773,7 +5781,6 @@ fm_directory_view_class_init (FMDirectoryViewClass *klass) EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, clear); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, file_changed); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_background_widget); - EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_selected_icon_locations); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, get_selection); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, is_empty); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, fm_directory_view, reset_to_defaults); diff --git a/src/file-manager/fm-list-model.c b/src/file-manager/fm-list-model.c index d195ca636..b3dd13fd7 100644 --- a/src/file-manager/fm-list-model.c +++ b/src/file-manager/fm-list-model.c @@ -691,6 +691,10 @@ fm_list_model_get_sort_column_id_from_attribute (const char *attribute) { guint i; + if (attribute == NULL) { + return -1; + } + for (i = 0; i < G_N_ELEMENTS (attributes); i++) { if (strcmp (attributes[i].attribute_name, attribute) == 0) { return i; @@ -704,15 +708,22 @@ int fm_list_model_get_sort_column_id_from_sort_type (NautilusFileSortType sort_type) { switch (sort_type) { + case NAUTILUS_FILE_SORT_NONE: + return -1; + case NAUTILUS_FILE_SORT_BY_SIZE: + return FM_LIST_MODEL_NAME_COLUMN; + case NAUTILUS_FILE_SORT_BY_TYPE: + return FM_LIST_MODEL_TYPE_COLUMN; case NAUTILUS_FILE_SORT_BY_DISPLAY_NAME: return FM_LIST_MODEL_NAME_COLUMN; case NAUTILUS_FILE_SORT_BY_MTIME: return FM_LIST_MODEL_DATE_MODIFIED_COLUMN; - default: - g_assert_not_reached (); + case NAUTILUS_FILE_SORT_BY_EMBLEMS: + case NAUTILUS_FILE_SORT_BY_DIRECTORY: + break; } - return -1; + g_return_val_if_reached (-1); } static void @@ -809,5 +820,4 @@ fm_list_model_get_type (void) } return object_type; - } diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c index a4a806e46..b1f3062ed 100644 --- a/src/file-manager/fm-list-view.c +++ b/src/file-manager/fm-list-view.c @@ -180,25 +180,20 @@ set_sort_order_from_metadata_and_preferences (FMListView *list_view) NautilusFile *file; gboolean sort_reversed; - sort_attribute = NULL; - file = fm_directory_view_get_directory_as_file (FM_DIRECTORY_VIEW (list_view)); + sort_attribute = nautilus_file_get_metadata (file, + NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_COLUMN, + NULL); + sort_column_id = fm_list_model_get_sort_column_id_from_attribute (sort_attribute); + g_free (sort_attribute); - nautilus_file_get_metadata (file, - NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_COLUMN, - sort_attribute); - - if (sort_attribute == NULL) { + if (sort_column_id == -1) { sort_column_id = fm_list_model_get_sort_column_id_from_sort_type (default_sort_order_auto_value); - } else { - sort_column_id = fm_list_model_get_sort_column_id_from_attribute (sort_attribute); } - - g_free (sort_attribute); sort_reversed = nautilus_file_get_boolean_metadata (file, - NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED, - default_sort_reversed_auto_value); + NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED, + default_sort_reversed_auto_value); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (list_view->details->model), sort_column_id, @@ -308,7 +303,26 @@ fm_list_view_select_all (FMDirectoryView *view) gtk_tree_selection_select_all (gtk_tree_view_get_selection (FM_LIST_VIEW (view)->details->tree_view)); } -#if 0 +/* Reset sort criteria and zoom level to match defaults */ +static void +fm_list_view_reset_to_defaults (FMDirectoryView *view) +{ + nautilus_file_set_metadata (file, NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_COLUMN, NULL, NULL); + nautilus_file_set_metadata (file, NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED, NULL, NULL); + + gtk_tree_sortable_set_sort_column_id + (GTK_TREE_SORTABLE (FM_LIST_VIEW (view)->details->model), + fm_list_model_get_sort_column_id_from_sort_type (default_sort_order_auto_value), + default_sort_reversed_auto_value ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING); + fm_directory_view_restore_default_zoom_level (view); +} + +#if GNOME2_CONVERSION_COMPLETE + +/* This is needed when writing out the sort to metadata. But we don't + * need this list here. We can probably do this using the table inside + * FMListModel. + */ static char * get_attribute_from_sort_type (NautilusFileSortType sort_type) @@ -382,13 +396,10 @@ fm_list_view_class_init (FMListViewClass *klass) fm_directory_view_class->clear = fm_list_view_clear; fm_directory_view_class->file_changed = fm_list_view_file_changed; fm_directory_view_class->get_background_widget = fm_list_view_get_background_widget; -#if GNOME2_CONVERSION_COMPLETE - fm_directory_view_class->get_selected_icon_locations = xxx; -#endif fm_directory_view_class->get_selection = fm_list_view_get_selection; fm_directory_view_class->is_empty = fm_list_view_is_empty; + fm_directory_view_class->reset_to_defaults = fm_list_view_reset_to_defaults; #if GNOME2_CONVERSION_COMPLETE - fm_directory_view_class->reset_to_defaults = xxx; fm_directory_view_class->restore_default_zoom_level = xxx; #endif fm_directory_view_class->remove_file = fm_list_view_remove_file; |