summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2020-12-22 01:12:13 +0000
committerOndrej Holy <oholy@redhat.com>2021-01-05 14:03:49 +0000
commit22d2c30d5f8aea3f6828a34b04e926f29a66c91a (patch)
tree32c1a941b28858186b85b0a30317a70ec935069d
parent99d034af6cceb6a170c9022f3261cfcb3a6cade0 (diff)
downloadnautilus-22d2c30d5f8aea3f6828a34b04e926f29a66c91a.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 4758ad1d1..b0dca1e3c 100644
--- a/src/nautilus-file.c
+++ b/src/nautilus-file.c
@@ -3747,6 +3747,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);
@@ -3852,6 +3862,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,
@@ -7474,6 +7491,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 0bfb7dec4..ff4ca50de 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",