[file-roller: 4/26] file selector: changed the modified column format



commit f8a0a7ff50be9f29ab8cd8108cf07b488ec641f4
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Wed Aug 8 10:13:57 2012 +0200

    file selector: changed the modified column format
    
    Show only the time if the file was modified today, show only the date
    otherwise.  Make the modified column smaller.

 src/fr-file-selector-dialog.c |   20 +++++++++++++++++++-
 src/ui/file-selector.ui       |   26 +++++++++++++-------------
 2 files changed, 32 insertions(+), 14 deletions(-)
---
diff --git a/src/fr-file-selector-dialog.c b/src/fr-file-selector-dialog.c
index 834be42..d023dd6 100644
--- a/src/fr-file-selector-dialog.c
+++ b/src/fr-file-selector-dialog.c
@@ -253,6 +253,20 @@ fr_file_selector_dialog_get_extra_widget (FrFileSelectorDialog *self)
 }
 
 
+static gboolean
+_g_date_time_same_day (GDateTime *dt1,
+		       GDateTime *dt2)
+{
+	int y1, m1, d1;
+	int y2, m2, d2;
+
+	g_date_time_get_ymd (dt1, &y1, &m1, &d1);
+	g_date_time_get_ymd (dt2, &y2, &m2, &d2);
+
+	return (y1 == y2) && (m1 == m2) && (d1 == d2);
+}
+
+
 static void
 get_folder_content_done_cb (GError   *error,
 		            gpointer  user_data)
@@ -262,6 +276,7 @@ get_folder_content_done_cb (GError   *error,
 	GtkListStore         *list_store;
 	GList                *scan;
 	GtkTreeIter           iter;
+	GDateTime            *today;
 
 	if (error != NULL) {
 		g_warning ("%s", error->message);
@@ -271,6 +286,8 @@ get_folder_content_done_cb (GError   *error,
 
 	load_data->files = g_list_reverse (load_data->files);
 
+	today = g_date_time_new_now_local ();
+
 	list_store = GTK_LIST_STORE (GET_WIDGET ("files_liststore"));
 	gtk_list_store_clear (list_store);
 	for (scan = load_data->files; scan; scan = scan->next) {
@@ -288,7 +305,7 @@ get_folder_content_done_cb (GError   *error,
 		size = g_format_size (g_file_info_get_size (file_info->info));
 		g_file_info_get_modification_time (file_info->info, &timeval);
 		datetime = g_date_time_new_from_timeval_local (&timeval);
-		modified = g_date_time_format (datetime, "%x %X");
+		modified = g_date_time_format (datetime, _g_date_time_same_day (datetime, today) ? "%X" : "%x");
 		collate_key = g_utf8_collate_key_for_filename (g_file_info_get_display_name (file_info->info), -1);
 
 		gtk_list_store_set (list_store, &iter,
@@ -310,6 +327,7 @@ get_folder_content_done_cb (GError   *error,
 		g_object_unref (icon_pixbuf);
 	}
 
+	g_date_time_unref (today);
 	load_data_free (load_data);
 }
 
diff --git a/src/ui/file-selector.ui b/src/ui/file-selector.ui
index b950151..132711b 100644
--- a/src/ui/file-selector.ui
+++ b/src/ui/file-selector.ui
@@ -25,6 +25,18 @@
       <column type="gboolean"/>
     </columns>
   </object>
+  <object class="GtkListStore" id="places_liststore">
+    <columns>
+      <!-- column-name icon -->
+      <column type="GdkPixbuf"/>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+      <!-- column-name file -->
+      <column type="GObject"/>
+      <!-- column-name is_separator -->
+      <column type="gboolean"/>
+    </columns>
+  </object>
   <object class="GtkBox" id="content">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -232,7 +244,7 @@
                       <object class="GtkTreeViewColumn" id="treeviewcolumn4">
                         <property name="resizable">True</property>
                         <property name="sizing">fixed</property>
-                        <property name="fixed_width">150</property>
+                        <property name="fixed_width">100</property>
                         <property name="title" translatable="yes" context="File">Modified</property>
                         <property name="reorderable">True</property>
                         <property name="sort_column_id">7</property>
@@ -282,16 +294,4 @@
       </packing>
     </child>
   </object>
-  <object class="GtkListStore" id="places_liststore">
-    <columns>
-      <!-- column-name icon -->
-      <column type="GdkPixbuf"/>
-      <!-- column-name name -->
-      <column type="gchararray"/>
-      <!-- column-name file -->
-      <column type="GObject"/>
-      <!-- column-name is_separator -->
-      <column type="gboolean"/>
-    </columns>
-  </object>
 </interface>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]