summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2002-03-05 01:13:01 +0000
committerDarin Adler <darin@src.gnome.org>2002-03-05 01:13:01 +0000
commite839e4791a0fb243f30ccd7cada0b1dfefcc9cbb (patch)
tree70c1d067004fac99b9c2785f7b7af423ff9168c3
parentc3955f7147318c7b8fd8ca2089529c3196e8ce13 (diff)
downloadnautilus-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--ChangeLog17
-rw-r--r--src/file-manager/fm-directory-view.c11
-rw-r--r--src/file-manager/fm-list-model.c18
-rw-r--r--src/file-manager/fm-list-view.c47
4 files changed, 69 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 107369173..12d2e32f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;