summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2020-12-22 01:12:13 +0000
committerAntónio Fernandes <antoniof@gnome.org>2020-12-22 15:32:34 +0000
commit817571a0cc60cef316dbf4c813d54911ec22f1a9 (patch)
tree17c5d8abee6d5ba1234de047275b1ad8da637c17
parentf95350f06eace09e1346baaec2945f3528207725 (diff)
downloadnautilus-817571a0cc60cef316dbf4c813d54911ec22f1a9.tar.gz
general: Support sorting by creation date
No user visible changes yet.
-rw-r--r--data/org.gnome.nautilus.gschema.xml3
-rw-r--r--src/nautilus-canvas-view.c12
-rw-r--r--src/nautilus-file.c19
-rw-r--r--src/nautilus-file.h3
-rw-r--r--src/nautilus-list-view.c1
-rw-r--r--src/nautilus-view-icon-controller.c12
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",