From ed6b8de612790b33b5d6c6448f8ae4c5ec0743fa Mon Sep 17 00:00:00 2001 From: Apoorv Sachan Date: Sat, 22 Aug 2020 10:40:36 +0000 Subject: properties-window: Add created row to the basic page The NautilusFile backend now supports birth-time parameter. It is now leveraged to display the date-created for a file in properties dialogue. Closes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1566 --- src/nautilus-properties-window.c | 26 ++++++++++++++- src/resources/ui/nautilus-properties-window.ui | 44 ++++++++++++++++++++------ 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 0c38158f7..738b6f566 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -133,6 +133,9 @@ struct _NautilusPropertiesWindow GtkWidget *modified_title_label; GtkWidget *modified_value_label; + GtkWidget *created_title_label; + GtkWidget *created_value_label; + GtkWidget *spacer_3; GtkWidget *free_space_title_label; @@ -2274,6 +2277,12 @@ should_show_modified_date (NautilusPropertiesWindow *self) return !is_multi_file_window (self); } +static gboolean +should_show_created_date (NautilusPropertiesWindow *self) +{ + return !is_multi_file_window (self); +} + static gboolean should_show_trashed_on (NautilusPropertiesWindow *self) { @@ -2722,7 +2731,8 @@ setup_basic_page (NautilusPropertiesWindow *self) } if (should_show_accessed_date (self) - || should_show_modified_date (self)) + || should_show_modified_date (self) + || should_show_created_date (self)) { gtk_widget_show (self->spacer_2); } @@ -2751,6 +2761,18 @@ setup_basic_page (NautilusPropertiesWindow *self) self->modified_value_label); } + if (should_show_created_date (self)) + { + gtk_widget_show (self->created_title_label); + gtk_widget_show (self->created_value_label); + /* Stash a copy of the file attribute name in this field for the callback's sake. */ + g_object_set_data_full (G_OBJECT (self->created_value_label), "file_attribute", + g_strdup ("date_created_full"), g_free); + + self->value_fields = g_list_prepend (self->value_fields, + self->created_value_label); + } + if (should_show_free_space (self) && !should_show_volume_usage (self)) { @@ -5391,6 +5413,8 @@ nautilus_properties_window_class_init (NautilusPropertiesWindowClass *klass) gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, spacer_2); gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, modified_title_label); gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, modified_value_label); + gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, created_title_label); + gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, created_value_label); gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, spacer_3); gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, free_space_title_label); gtk_widget_class_bind_template_child (widget_class, NautilusPropertiesWindow, free_space_value_label); diff --git a/src/resources/ui/nautilus-properties-window.ui b/src/resources/ui/nautilus-properties-window.ui index d9cac49bc..23916f5a2 100644 --- a/src/resources/ui/nautilus-properties-window.ui +++ b/src/resources/ui/nautilus-properties-window.ui @@ -273,6 +273,32 @@ 6 + + + False + Created + 1 + + + + 0 + 11 + + + + + False + True + 24 + 0 + + + 1 + 11 + + False @@ -284,7 +310,7 @@ 0 - 11 + 12 @@ -298,7 +324,7 @@ 1 - 11 + 12 @@ -340,7 +366,7 @@ 0 - 12 + 13 @@ -354,7 +380,7 @@ 1 - 12 + 13 @@ -420,7 +446,7 @@ 0 - 14 + 15 @@ -432,7 +458,7 @@ 1 - 14 + 15 @@ -644,7 +670,7 @@ 0 - 15 + 16 3 @@ -656,7 +682,7 @@ 0 - 16 + 17 3 @@ -700,7 +726,7 @@ 0 - 13 + 14 -- cgit v1.2.1