[Goodies-commits] r2948 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Sun Aug 5 01:46:52 CEST 2007


Author: stephan
Date: 2007-08-04 23:46:52 +0000 (Sat, 04 Aug 2007)
New Revision: 2948

Modified:
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/thumbnail_viewer.c
Log:
fixed issues

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-08-04 23:13:27 UTC (rev 2947)
+++ ristretto/trunk/src/navigator.c	2007-08-04 23:46:52 UTC (rev 2948)
@@ -45,7 +45,7 @@
     GdkPixbuf     *pixbuf;
 };
 
-static RsttoNavigatorEntry *
+RsttoNavigatorEntry *
 _rstto_navigator_entry_new (ThunarVfsInfo *info);
 static void
 _rstto_navigator_entry_free(RsttoNavigatorEntry *nav_entry);
@@ -141,7 +141,7 @@
 
     if(navigator->file_list)
     {
-        g_list_foreach(navigator->file_list, (GFunc)thunar_vfs_info_unref, NULL);
+        g_list_foreach(navigator->file_list, (GFunc)_rstto_navigator_entry_free, NULL);
         navigator->file_list = NULL;
         navigator->file_iter = NULL;
     }
@@ -176,30 +176,35 @@
         {
             ThunarVfsPath *file_path = thunar_vfs_path_relative(navigator->path, filename);
             ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
-            gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
-            if(!strcmp(file_media, "image"))
+            if(file_info)
             {
-                RsttoNavigatorEntry *nav_entry = _rstto_navigator_entry_new(file_info);
+                gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+                if(!strcmp(file_media, "image"))
+                {
+                    RsttoNavigatorEntry *nav_entry = _rstto_navigator_entry_new(file_info);
 
-                if(thunar_vfs_path_equal(path, file_path))
+                    if(thunar_vfs_path_equal(path, file_path))
+                    {
+                        navigator->file_list = g_list_prepend(navigator->file_list, nav_entry);
+                        navigator->file_iter = navigator->file_list;
+                    }
+                    else
+                    {
+                        if(index_path)
+                            navigator->file_list = g_list_prepend(navigator->file_list, nav_entry);
+                        else
+                            _rstto_navigator_entry_free(nav_entry);
+                    }
+                }
+                else
                 {
-                    navigator->file_list = g_list_prepend(navigator->file_list, nav_entry);
-                    navigator->file_iter = navigator->file_list;
+                    thunar_vfs_info_unref(file_info);
                 }
-                else
-                    if(index_path)
-                        navigator->file_list = g_list_prepend(navigator->file_list, nav_entry);
-                    else
-                        _rstto_navigator_entry_free(nav_entry);
+                g_free(file_media);
             }
-            else
-            {
-                thunar_vfs_info_unref(file_info);
-            }
 
             thunar_vfs_path_unref(file_path);
             filename = g_dir_read_name(dir);
-            g_free(file_media);
         }
         g_free(dir_name);
         if(!navigator->file_iter)
@@ -235,7 +240,8 @@
 
     if(navigator->file_iter)
     {
-        gchar *filename = thunar_vfs_path_dup_string(((ThunarVfsInfo *)navigator->file_iter->data)->path);
+        ThunarVfsInfo *info = rstto_navigator_entry_get_info(((RsttoNavigatorEntry *)navigator->file_iter->data));
+        gchar *filename = thunar_vfs_path_dup_string(info->path);
         GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename , NULL);
         if(!pixbuf)
         {
@@ -262,7 +268,8 @@
 
     if(navigator->file_iter)
     {
-        gchar *filename = thunar_vfs_path_dup_string(((ThunarVfsInfo *)navigator->file_iter->data)->path);
+        ThunarVfsInfo *info = rstto_navigator_entry_get_info(((RsttoNavigatorEntry *)navigator->file_iter->data));
+        gchar *filename = thunar_vfs_path_dup_string(info->path);
         GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename , NULL);
         if(!pixbuf)
         {
@@ -297,16 +304,20 @@
     return g_list_nth_data(navigator->file_list, n);
 }
 
-static RsttoNavigatorEntry *
+RsttoNavigatorEntry *
 _rstto_navigator_entry_new (ThunarVfsInfo *info)
 {
-    RsttoNavigatorEntry *entry = g_new(RsttoNavigatorEntry, 1);
+    RsttoNavigatorEntry *entry = NULL;
     gchar *filename = thunar_vfs_path_dup_string(info->path);
+    if(filename)
+    {
+        entry = g_new0(RsttoNavigatorEntry, 1);
 
-    entry->info = info;
-    entry->pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 64, 64, NULL);
+        entry->info = info;
+        entry->pixbuf = gdk_pixbuf_new_from_file_at_size(filename, 64, 64, NULL);
 
-    g_free(filename);
+        g_free(filename);
+    }
     return entry;
 }
 

Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	2007-08-04 23:13:27 UTC (rev 2947)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-08-04 23:46:52 UTC (rev 2948)
@@ -57,6 +57,9 @@
 
 static GtkWidgetClass *parent_class = NULL;
 
+static void
+cb_rstto_thumbnailer_nav_file_changed(RsttoNavigator *nav, RsttoThumbnailViewer *viewer);
+
 GType
 rstto_thumbnail_viewer_get_type ()
 {
@@ -222,7 +225,6 @@
     PangoContext *pc = gtk_widget_get_pango_context(widget);
     PangoLayout *pl = pango_layout_new(pc);
 
-    pango_layout_set_text(pl, "Ristretto Image Viewer", 22);
     pango_layout_set_width(pl, (dimension - 24) * PANGO_SCALE);
     pango_layout_set_ellipsize(pl, PANGO_ELLIPSIZE_MIDDLE);
 
@@ -257,7 +259,8 @@
                   TRUE,
                   (i*dimension)+12, 12, inner_dimension, inner_dimension-12);
             */
-            gdk_draw_pixbuf(GDK_DRAWABLE(widget->window),
+            if(pixbuf)
+                gdk_draw_pixbuf(GDK_DRAWABLE(widget->window),
                             gc,
                             pixbuf,
                             0, 0,
@@ -292,5 +295,13 @@
 
     viewer->priv->navigator = navigator;
 
+	g_signal_connect(G_OBJECT(navigator), "file-changed", G_CALLBACK(cb_rstto_thumbnailer_nav_file_changed), viewer);
+
 	return (GtkWidget *)viewer;
 }
+
+static void
+cb_rstto_thumbnailer_nav_file_changed(RsttoNavigator *nav, RsttoThumbnailViewer *viewer)
+{
+    
+}




More information about the Goodies-commits mailing list