diff options
author | Carlos Soriano <csoriano@gnome.org> | 2015-07-01 16:27:29 +0200 |
---|---|---|
committer | Carlos Soriano <csoriano@gnome.org> | 2015-07-01 16:31:34 +0200 |
commit | 76c63eb3ee13affac097d6258a8fcc79ce92a321 (patch) | |
tree | dcbe28a1ad1ce5cee2d8e87b353e0c5fafc0aa8c /src | |
parent | 2e1ac987268cd57349cdc2763d2442b532ce3c49 (diff) | |
download | nautilus-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
Diffstat (limited to 'src')
-rw-r--r-- | src/nautilus-canvas-view.c | 12 | ||||
-rw-r--r-- | src/nautilus-toolbar-view-menu.xml | 9 | ||||
-rw-r--r-- | src/nautilus-toolbar.c | 22 |
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, |