diff options
author | António Fernandes <antoniof@gnome.org> | 2020-12-22 01:12:13 +0000 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2020-12-22 15:32:34 +0000 |
commit | 817571a0cc60cef316dbf4c813d54911ec22f1a9 (patch) | |
tree | 17c5d8abee6d5ba1234de047275b1ad8da637c17 | |
parent | f95350f06eace09e1346baaec2945f3528207725 (diff) | |
download | nautilus-817571a0cc60cef316dbf4c813d54911ec22f1a9.tar.gz |
general: Support sorting by creation date
No user visible changes yet.
-rw-r--r-- | data/org.gnome.nautilus.gschema.xml | 3 | ||||
-rw-r--r-- | src/nautilus-canvas-view.c | 12 | ||||
-rw-r--r-- | src/nautilus-file.c | 19 | ||||
-rw-r--r-- | src/nautilus-file.h | 3 | ||||
-rw-r--r-- | src/nautilus-list-view.c | 1 | ||||
-rw-r--r-- | src/nautilus-view-icon-controller.c | 12 |
6 files changed, 48 insertions, 2 deletions
diff --git a/data/org.gnome.nautilus.gschema.xml b/data/org.gnome.nautilus.gschema.xml index 941812ea8..3b085ea52 100644 --- a/data/org.gnome.nautilus.gschema.xml +++ b/data/org.gnome.nautilus.gschema.xml @@ -32,7 +32,8 @@ <value value="2" nick="type"/> <value value="3" nick="mtime"/> <value value="4" nick="atime"/> - <value value="5" nick="starred"/> + <value value="5" nick="btime"/> + <value value="6" nick="starred"/> </enum> <enum id="org.gnome.nautilus.CanvasZoomLevel"> diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c index 4b3197bd7..144deb06b 100644 --- a/src/nautilus-canvas-view.c +++ b/src/nautilus-canvas-view.c @@ -149,6 +149,18 @@ static const SortCriterion sort_criteria[] = TRUE }, { + NAUTILUS_FILE_SORT_BY_BTIME, + "creation date", + "creation-date", + FALSE + }, + { + NAUTILUS_FILE_SORT_BY_BTIME, + "creation date", + "creation-date-desc", + TRUE + }, + { NAUTILUS_FILE_SORT_BY_TRASHED_TIME, "trashed", "trash-time", diff --git a/src/nautilus-file.c b/src/nautilus-file.c index f8621a2af..f5ecd4b36 100644 --- a/src/nautilus-file.c +++ b/src/nautilus-file.c @@ -3749,6 +3749,16 @@ nautilus_file_compare_for_sort (NautilusFile *file_1, } break; + case NAUTILUS_FILE_SORT_BY_BTIME: + { + result = compare_by_time (file_1, file_2, NAUTILUS_DATE_TYPE_CREATED); + if (result == 0) + { + result = compare_by_full_path (file_1, file_2); + } + } + break; + case NAUTILUS_FILE_SORT_BY_TRASHED_TIME: { result = compare_by_time (file_1, file_2, NAUTILUS_DATE_TYPE_TRASHED); @@ -3854,6 +3864,13 @@ nautilus_file_compare_for_sort_by_attribute_q (NautilusFile *file_1, directories_first, reversed); } + else if (attribute == attribute_date_created_q || attribute == attribute_date_created_full_q) + { + return nautilus_file_compare_for_sort (file_1, file_2, + NAUTILUS_FILE_SORT_BY_BTIME, + directories_first, + reversed); + } else if (attribute == attribute_trashed_on_q || attribute == attribute_trashed_on_full_q) { return nautilus_file_compare_for_sort (file_1, file_2, @@ -7476,6 +7493,8 @@ nautilus_file_is_date_sort_attribute_q (GQuark attribute_q) attribute_q == attribute_accessed_date_q || attribute_q == attribute_date_accessed_q || attribute_q == attribute_date_accessed_full_q || + attribute_q == attribute_date_created_q || + attribute_q == attribute_date_created_full_q || attribute_q == attribute_trashed_on_q || attribute_q == attribute_trashed_on_full_q || attribute_q == attribute_recency_q) diff --git a/src/nautilus-file.h b/src/nautilus-file.h index eb3a1f13f..2e4820f97 100644 --- a/src/nautilus-file.h +++ b/src/nautilus-file.h @@ -60,7 +60,8 @@ typedef enum { NAUTILUS_FILE_SORT_BY_TYPE = 2, NAUTILUS_FILE_SORT_BY_MTIME = 3, NAUTILUS_FILE_SORT_BY_ATIME = 4, - NAUTILUS_FILE_SORT_BY_STARRED = 5, + NAUTILUS_FILE_SORT_BY_BTIME = 5, + NAUTILUS_FILE_SORT_BY_STARRED = 6, /* The following are specific to special locations and as such are not to be * included in the "org.gnome.nautilus.SortOrder" enum. diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c index 66e3373e2..923e2ad5c 100644 --- a/src/nautilus-list-view.c +++ b/src/nautilus-list-view.c @@ -142,6 +142,7 @@ get_default_sort_order (NautilusFile *file, "type", "date_modified", "date_accessed", + "date_created", "starred", "trashed_on", "search_relevance", diff --git a/src/nautilus-view-icon-controller.c b/src/nautilus-view-icon-controller.c index ab8b82426..5e528e032 100644 --- a/src/nautilus-view-icon-controller.c +++ b/src/nautilus-view-icon-controller.c @@ -85,6 +85,18 @@ static const SortConstants sorts_constants[] = TRUE, }, { + NAUTILUS_FILE_SORT_BY_BTIME, + "creation date", + "creation-date", + FALSE, + }, + { + NAUTILUS_FILE_SORT_BY_BTIME, + "creation date", + "creation-date-desc", + TRUE, + }, + { NAUTILUS_FILE_SORT_BY_TRASHED_TIME, "trashed", "trash-time", |