Hi All,

    This fix removes dependencies on external thumbnailer and meld.

    Thanks,

       Erwann


diff -r 495a1acdc408 usr/share/time-slider/lib/time_slider/fileversion.py
--- a/usr/share/time-slider/lib/time_slider/fileversion.py    Tue Apr 07 
11:35:37 2009 +0100
+++ b/usr/share/time-slider/lib/time_slider/fileversion.py    Thu Apr 09 
21:36:40 2009 +0200
@@ -29,6 +29,8 @@
 import subprocess
 import string
 import gnomevfs
+import gnome.ui
+#import traceback
 
 try:
     import pygtk
@@ -89,18 +91,18 @@
 
     def  get_icon (self):
         #try thumnailer first
-        p = subprocess.Popen (["/usr/bin/tracker-thumbnailer",
-                    self.path,
-                    self.info.get_content_type(),
-                    "normal"],
-                       stdout=subprocess.PIPE,
-                       stderr=subprocess.PIPE)
-        stdout_value, stderr_value = p.communicate ()
-        if p.returncode == 0:
-            return  gtk.gdk.pixbuf_new_from_file (string.rstrip 
(stdout_value))
-        else:
-            #get the themed icon
-            return gtk.icon_theme_get_default().choose_icon 
(self.info.get_icon().get_property ("names"), 48,  
gtk.ICON_LOOKUP_USE_BUILTIN).load_icon ()
+        icon_factory = 
gnome.ui.ThumbnailFactory(gnome.ui.THUMBNAIL_SIZE_NORMAL)
+        mtime = os.path.getmtime(self.path)
+        uri = gnomevfs.make_uri_from_input(self.path)
+        thumb =  icon_factory.lookup (uri, mtime)
+        if thumb:
+          return gtk.gdk.pixbuf_new_from_file (thumb)
+            thumb = icon_factory.generate_thumbnail (uri, 
self.info.get_content_type())
+        if thumb:
+          icon_factory.save_thumbnail (thumb, uri, mtime)
+          return thumb
+         #fallback get the themed icon
+        return gtk.icon_theme_get_default().choose_icon 
(self.info.get_icon().get_property ("names"), 48,  
gtk.ICON_LOOKUP_USE_BUILTIN).load_icon ()
 
     def  get_size (self):
         amount = self.info.get_size ()
@@ -135,6 +137,7 @@
 
 
 class FileVersionWindow:
+    meld_hint_displayed = False
 
     def __init__(self, snap_path, file):
         self.snap_path = snap_path
@@ -218,14 +221,14 @@
     def on_current_file_button_clicked (self, widget):
         application = gnomevfs.mime_get_default_application 
(gnomevfs.get_mime_type(gnomevfs.make_uri_from_input(self.filename)))
         if application:
-            subprocess.Popen ([application[2], self.filename])
+            subprocess.Popen (str.split (application[2]) + [self.filename])
 
     def on_treeview_row_activated (self, treeview, path, column):
         (model, iter) = treeview.get_selection ().get_selected ()
         filename = model.get (iter, 1)[0]
         application = gnomevfs.mime_get_default_application 
(gnomevfs.get_mime_type(gnomevfs.make_uri_from_input(filename)))
         if application:
-            subprocess.Popen ([application[2], filename])
+            subprocess.Popen (str.split (application[2]) + [filename])
 
     def on_treeview_cursor_changed (self, treeview):
         if not self.button_init:
@@ -236,7 +239,18 @@
     def on_compare_button_clicked (self, widget):
         (model, iter) = self.treeview.get_selection ().get_selected ()
         filename = model.get (iter, 1)[0]
-        subprocess.Popen (["/usr/bin/meld",self.filename, filename])
+        if os.path.exists ("/usr/bin/meld"):
+          subprocess.Popen (["/usr/bin/meld",self.filename, filename])
+        else:
+          if not self.meld_hint_displayed:
+            dialog = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, 
gtk.BUTTONS_CLOSE, _("Hint"))
+            dialog.set_title (_("Hint"))
+            dialog.format_secondary_text(_("Installing the optional 
meld package will enhance the file comparison visualization"))
+            dialog.run ()
+            dialog.destroy ()
+            self.meld_hint_displayed = True
+          p1 = subprocess.Popen(["/usr/bin/diff", "-u", self.filename, 
filename], stdout=subprocess.PIPE)
+          p2 = subprocess.Popen(str.split ("/usr/bin/zenity --text-info 
--editable"), stdin=p1.stdout, stdout=subprocess.PIPE)
 
 
 class VersionScanner(threading.Thread):
@@ -298,6 +312,7 @@
 
     def critical_section_enter (self):
 #        print "in critical_section enter"
+#        print traceback.print_stack ()
         if  not self._stopevent.isSet ():
             gtk.gdk.threads_enter()
             return True
@@ -333,11 +348,8 @@
             "- The filename to explore."))
         dialog.run()
         sys.exit (2)
-   
+
     window = FileVersionWindow(args[0], args[1])
+    gtk.gdk.threads_enter()
     gtk.main()
-
-
-#FileVersionWindow("/shared/test/.zfs/snapshot/12-11-08:534849865/", 
"/shared/test/dsa")
-#FileVersionWindow("/shared/erwannc/.zfs/snapshot/test/Documents", 
"/shared/erwannc/Documents/desktop 2008.11.pdf")
-#gtk.main ()
+    gtk.gdk.threads_leave()


  

-- 
              Erwann Ch?ned?,
 Desktop Group, Sun Microsystems, Grenoble
 Phone  : +33 476 188 358       ext: 38358


Reply via email to