summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2015-07-01 16:27:29 +0200
committerCarlos Soriano <csoriano@gnome.org>2015-07-01 16:31:34 +0200
commit76c63eb3ee13affac097d6258a8fcc79ce92a321 (patch)
treedcbe28a1ad1ce5cee2d8e87b353e0c5fafc0aa8c
parent2e1ac987268cd57349cdc2763d2442b532ce3c49 (diff)
downloadnautilus-76c63eb3ee13affac097d6258a8fcc79ce92a321.tar.gz
toolbar: show modified time for all places except Recent
We changed to only show access time for sorting in the sort menu in 3.16 to avoid having both sorting options always present. But for folders like Downloads, the most useful sorting criteria is actually modified time, since it orders the files in downloading order. Actually modified time is more useful than access time is all cases except in "Recent", which what we actually want is the most recent accessed or modified file. For that, show only Modified Time sorting menu item in all places except in "Recent", where we will show only Access Time. https://bugzilla.gnome.org/show_bug.cgi?id=748185
-rw-r--r--src/nautilus-canvas-view.c12
-rw-r--r--src/nautilus-toolbar-view-menu.xml9
-rw-r--r--src/nautilus-toolbar.c22
3 files changed, 35 insertions, 8 deletions
diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c
index b6fe026ad..07199c9f6 100644
--- a/src/nautilus-canvas-view.c
+++ b/src/nautilus-canvas-view.c
@@ -107,6 +107,12 @@ struct NautilusCanvasViewDetails
gboolean supports_keep_aligned;
};
+static gboolean
+file_is_not_in_recent (NautilusFile *file)
+{
+ return !nautilus_file_is_in_recent (file);
+}
+
/* Note that the first item in this list is the default sort,
* and that the items show up in the menu in the order they
* appear in this list.
@@ -130,12 +136,14 @@ static const SortCriterion sort_criteria[] = {
{
NAUTILUS_FILE_SORT_BY_MTIME,
"modification date",
- "modification-date"
+ "modification-date",
+ file_is_not_in_recent
},
{
NAUTILUS_FILE_SORT_BY_ATIME,
"access date",
- "access-date"
+ "access-date",
+ nautilus_file_is_in_recent
},
{
NAUTILUS_FILE_SORT_BY_TRASHED_TIME,
diff --git a/src/nautilus-toolbar-view-menu.xml b/src/nautilus-toolbar-view-menu.xml
index d1cb8b55c..f2e034177 100644
--- a/src/nautilus-toolbar-view-menu.xml
+++ b/src/nautilus-toolbar-view-menu.xml
@@ -132,6 +132,15 @@
</object>
</child>
<child>
+ <object class="GtkModelButton" id="sort_modification_date">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="text" translatable="yes">Last _Modified</property>
+ <property name="action-name">view.sort</property>
+ <property name="action-target">'modification-date'</property>
+ </object>
+ </child>
+ <child>
<object class="GtkModelButton" id="sort_trash_time">
<property name="visible">False</property>
<property name="can_focus">True</property>
diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c
index 68bb86dce..79697a71a 100644
--- a/src/nautilus-toolbar.c
+++ b/src/nautilus-toolbar.c
@@ -59,6 +59,8 @@ struct _NautilusToolbarPrivate {
GtkWidget *view_menu_widget;
GtkWidget *sort_menu;
+ GtkWidget *sort_modification_date;
+ GtkWidget *sort_access_date;
GtkWidget *sort_trash_time;
GtkWidget *sort_search_relevance;
GtkWidget *visible_columns;
@@ -440,6 +442,8 @@ nautilus_toolbar_init (NautilusToolbar *self)
self->priv->zoom_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (builder, "zoom_adjustment"));
self->priv->sort_menu = GTK_WIDGET (gtk_builder_get_object (builder, "sort_menu"));
+ self->priv->sort_modification_date = GTK_WIDGET (gtk_builder_get_object (builder, "sort_modification_date"));
+ self->priv->sort_access_date = GTK_WIDGET (gtk_builder_get_object (builder, "sort_access_date"));
self->priv->sort_trash_time = GTK_WIDGET (gtk_builder_get_object (builder, "sort_trash_time"));
self->priv->sort_search_relevance = GTK_WIDGET (gtk_builder_get_object (builder, "sort_search_relevance"));
self->priv->visible_columns = GTK_WIDGET (gtk_builder_get_object (builder, "visible_columns"));
@@ -575,7 +579,7 @@ nautilus_toolbar_reset_menus (NautilusToolbar *self)
GActionGroup *view_action_group;
GVariant *variant;
GVariantIter iter;
- gboolean sort_trash, sort_search, has_sort;
+ gboolean show_sort_trash, show_sort_search, show_sort_access, show_sort_modification, has_sort;
const gchar *hint;
/* Allow actions from the current view to be activated through
@@ -591,7 +595,7 @@ nautilus_toolbar_reset_menus (NautilusToolbar *self)
g_action_group_has_action (view_action_group, "visible-columns"));
has_sort = g_action_group_has_action (view_action_group, "sort");
- sort_trash = sort_search = FALSE;
+ show_sort_trash = show_sort_search = show_sort_modification = show_sort_access = FALSE;
gtk_widget_set_visible (self->priv->sort_menu, has_sort);
if (has_sort) {
@@ -600,16 +604,22 @@ nautilus_toolbar_reset_menus (NautilusToolbar *self)
while (g_variant_iter_next (&iter, "&s", &hint)) {
if (g_strcmp0 (hint, "trash-time") == 0)
- sort_trash = TRUE;
+ show_sort_trash = TRUE;
if (g_strcmp0 (hint, "search-relevance") == 0)
- sort_search = TRUE;
+ show_sort_search = TRUE;
+ if (g_strcmp0 (hint, "access-date") == 0)
+ show_sort_access = TRUE;
+ if (g_strcmp0 (hint, "modification-date") == 0)
+ show_sort_modification = TRUE;
}
g_variant_unref (variant);
}
- gtk_widget_set_visible (self->priv->sort_trash_time, sort_trash);
- gtk_widget_set_visible (self->priv->sort_search_relevance, sort_search);
+ gtk_widget_set_visible (self->priv->sort_trash_time, show_sort_trash);
+ gtk_widget_set_visible (self->priv->sort_search_relevance, show_sort_search);
+ gtk_widget_set_visible (self->priv->sort_modification_date, show_sort_modification);
+ gtk_widget_set_visible (self->priv->sort_access_date, show_sort_access);
variant = g_action_group_get_action_state (view_action_group, "zoom-to-level");
gtk_adjustment_set_value (self->priv->zoom_adjustment,