[tracker] TST: Fixed display of type and formatted file size in metadata tile



commit ce978edbc317187927aacb185dac0529f6d145df
Author: Jamie McCracken <jamiemcc gnome org>
Date:   Tue Feb 16 01:14:25 2010 -0500

    TST: Fixed display of type and formatted file size in metadata tile

 src/tracker-search-tool/tracker-metadata-tile.gs |   17 +++++++--------
 src/tracker-search-tool/tracker-query.gs         |    2 +-
 src/tracker-search-tool/tracker-result-grid.gs   |   22 +++++++++++++++-----
 src/tracker-search-tool/tracker-utils.gs         |   23 ++++++++++++++++++++++
 4 files changed, 48 insertions(+), 16 deletions(-)
---
diff --git a/src/tracker-search-tool/tracker-metadata-tile.gs b/src/tracker-search-tool/tracker-metadata-tile.gs
index 62e75f9..ee408a6 100644
--- a/src/tracker-search-tool/tracker-metadata-tile.gs
+++ b/src/tracker-search-tool/tracker-metadata-tile.gs
@@ -223,12 +223,11 @@ class TrackerMetadataTile : EventBox
             return
 
         iter : TreeIter
-        uri : weak string
-        display_name : weak string
+        id, uri, mime, display_name : weak string
         icon : Gdk.Pixbuf
 
         _result_grid.store.get_iter (out iter, path)
-        _result_grid.store.get (iter, ResultColumns.Uri, out uri, ResultColumns.Icon, out icon, ResultColumns.DisplayName, out display_name)
+        _result_grid.store.get (iter, ResultColumns.Id, out id, ResultColumns.Uri, out uri, ResultColumns.Mime, out mime, ResultColumns.Icon, out icon, ResultColumns.DisplayName, out display_name)
 
         image.set_from_pixbuf (icon)
 
@@ -236,6 +235,9 @@ class TrackerMetadataTile : EventBox
         var filepath = file.get_basename ()
         name_link.uri = uri
         name_link.label = filepath
+        var val1 = "<b>%s</b>".printf (mime)
+        info_value1.set_markup (val1)
+        info_value1.xalign = 0
 
         // get metadata
         // var query = "SELECT ?mimetype ?size ?mtime WHERE {<%s> nie:byteSize ?size; nie:contentLastModified ?mtime; nie:mimeType ?mimeType.}".printf(uri)
@@ -243,17 +245,14 @@ class TrackerMetadataTile : EventBox
         if Query is not null
             var result = Query.Query (query)
 
-            if result is not null and  result [0,0] is not null
-                var val1 = "<b>%s</b>".printf (result [0,0])
-
-                info_value1.set_markup (val1)
-                info_value1.xalign = 0
+            if result is not null 
+                mime = result[0]
 
             try
                 var info =  file.query_info ("standard::size,time::modified", \
                                               FileQueryInfoFlags.NONE, null)
 
-                var val2 = "<b>%s</b>".printf (info.get_size ().to_string ())
+                var val2 = "<b>%s</b>".printf (FormatFileSize (info.get_size ()))
 
                 info_value2.set_markup (val2)
 
diff --git a/src/tracker-search-tool/tracker-query.gs b/src/tracker-search-tool/tracker-query.gs
index c3fcd5c..d70bdba 100644
--- a/src/tracker-search-tool/tracker-query.gs
+++ b/src/tracker-search-tool/tracker-query.gs
@@ -81,7 +81,7 @@ class TrackerQuery : Object
         else
             cat = Category
 
-        query = "SELECT ?s nie:url(?s) WHERE { ?s fts:match \"%s\". ?s a %s } limit 100 ".printf (SearchTerms, cat)
+        query = "SELECT ?s nie:url(?s) nie:mimeType(?s) WHERE { ?s fts:match \"%s\". ?s a %s } limit 100 ".printf (SearchTerms, cat)
 
         // to do : add Fields, Category and SortField
         try
diff --git a/src/tracker-search-tool/tracker-result-grid.gs b/src/tracker-search-tool/tracker-result-grid.gs
index 5c74931..084ecbc 100644
--- a/src/tracker-search-tool/tracker-result-grid.gs
+++ b/src/tracker-search-tool/tracker-result-grid.gs
@@ -26,6 +26,7 @@ uses
 
 
 enum ResultColumns
+    Id
     Uri
     Icon
     DisplayName
@@ -84,8 +85,8 @@ class TrackerResultGrid : ScrolledWindow
         vscrollbar_policy = PolicyType.AUTOMATIC
         shadow_type = ShadowType.ETCHED_OUT
 
-        store = new ListStore (ResultColumns.NumOfCols, typeof (string), typeof (Gdk.Pixbuf), typeof (string), \
-                               typeof (int), typeof (string), typeof (string), typeof (bool), typeof (string))
+        store = new ListStore (ResultColumns.NumOfCols, typeof (string), typeof (string), typeof (Gdk.Pixbuf), typeof (string), \
+                               typeof (string), typeof (string), typeof (string), typeof (bool), typeof (string))
 
         // to do add treeview
 
@@ -123,8 +124,16 @@ class TrackerResultGrid : ScrolledWindow
             store.clear ()
 
             if results is null do return
-
-            for uri in results
+            
+            var i = 0
+            while results[i] is not null
+                var uri = results[i+1]
+                var id = results[i]
+                var mime = results[i+2]                     
+                i += 3
+            
+                
+            
                 if uri.has_prefix ("file://")
 
                     has_results = true
@@ -137,9 +146,10 @@ class TrackerResultGrid : ScrolledWindow
 
                         var filetype =  info.get_file_type ()
                         store.append (out iter);
-                        store.set (iter, ResultColumns.Uri, uri, ResultColumns.Icon, GetThumbNail (info, 64, 48, get_screen()), \
+                        store.set (iter, ResultColumns.Id, id, ResultColumns.Uri, uri, ResultColumns.Mime, mime, ResultColumns.Icon, GetThumbNail (info, 64, 48, get_screen()), \
                                   ResultColumns.DisplayName, info.get_display_name(), ResultColumns.IsDirectory, \
-                                  (filetype is FileType.DIRECTORY) , -1);
+                                  (filetype is FileType.DIRECTORY) , -1)
+                                  
                     except e:Error
                         print "Could not get file info for %s", uri
 
diff --git a/src/tracker-search-tool/tracker-utils.gs b/src/tracker-search-tool/tracker-utils.gs
index bd0ad8e..f5506c0 100644
--- a/src/tracker-search-tool/tracker-utils.gs
+++ b/src/tracker-search-tool/tracker-utils.gs
@@ -153,3 +153,26 @@ class TrackerUtils
             return icon_info.load_icon ()
         except e: Error
             return null
+            
+            
+    /* formatting methods */
+    def static FormatFileSize (size : int64) : string
+        displayed_size : double
+        
+        if size < 1024
+            return "%u bytes".printf ((uint)size)
+
+        if size < 1048576
+            displayed_size = (double) size / 1024
+            return "%.1f KB".printf (displayed_size)
+            
+        if size < 1073741824
+            displayed_size = (double) size / 1048576
+            return "%.1f MB".printf (displayed_size)
+            
+        displayed_size = (double) size / 1073741824
+        return "%.1f GB".printf (displayed_size)
+
+
+
+    



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