[Goodies-commits] r3285 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Tue Oct 2 23:03:30 CEST 2007
Author: stephan
Date: 2007-10-02 21:03:30 +0000 (Tue, 02 Oct 2007)
New Revision: 3285
Modified:
ristretto/trunk/src/navigator.c
ristretto/trunk/src/navigator.h
ristretto/trunk/src/picture_viewer.c
ristretto/trunk/src/thumbnail_viewer.c
Log:
Use thunar thumbnail factory for thumbnail stuff...
Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c 2007-09-30 22:30:50 UTC (rev 3284)
+++ ristretto/trunk/src/navigator.c 2007-10-02 21:03:30 UTC (rev 3285)
@@ -101,6 +101,8 @@
navigator->old_position = -1;
navigator->timeout = 5000;
navigator->album = FALSE;
+
+ navigator->factory = thunar_vfs_thumb_factory_new(THUNAR_VFS_THUMB_SIZE_NORMAL);
}
static void
@@ -603,23 +605,34 @@
}
GdkPixbuf *
-rstto_navigator_entry_get_thumb(RsttoNavigatorEntry *entry, gint size)
+rstto_navigator_get_entry_thumb(RsttoNavigator *navigator, RsttoNavigatorEntry *entry, gint size)
{
if(entry->thumb)
{
if(!(gdk_pixbuf_get_width(entry->thumb) == size || gdk_pixbuf_get_height(entry->thumb) == size))
{
- g_object_unref(entry->thumb);
- gchar *filename = thunar_vfs_path_dup_string(entry->info->path);
- entry->thumb = gdk_pixbuf_new_from_file_at_size(filename, size, size, NULL);
- g_free(filename);
}
}
else
{
- gchar *filename = thunar_vfs_path_dup_string(entry->info->path);
- entry->thumb = gdk_pixbuf_new_from_file_at_size(filename, size, size, NULL);
- g_free(filename);
+ ThunarVfsInfo *info = rstto_navigator_entry_get_info(entry);
+ gchar *thumbnail = thunar_vfs_thumb_factory_lookup_thumbnail(navigator->factory, info);
+ if (thumbnail == NULL)
+ {
+ GdkPixbuf *pixbuf = thunar_vfs_thumb_factory_generate_thumbnail(navigator->factory, info);
+ if (pixbuf != NULL)
+ {
+ if (!thunar_vfs_thumb_factory_store_thumbnail(navigator->factory, pixbuf, info, NULL))
+ {
+ }
+ entry->thumb = gdk_pixbuf_scale_simple(pixbuf, size, size, GDK_INTERP_BILINEAR);
+ }
+ }
+ else
+ {
+ entry->thumb = gdk_pixbuf_new_from_file_at_size(thumbnail, size, size, NULL);
+ g_free(thumbnail);
+ }
}
return entry->thumb;
}
Modified: ristretto/trunk/src/navigator.h
===================================================================
--- ristretto/trunk/src/navigator.h 2007-09-30 22:30:50 UTC (rev 3284)
+++ ristretto/trunk/src/navigator.h 2007-10-02 21:03:30 UTC (rev 3285)
@@ -56,6 +56,7 @@
gint timeout;
gint id;
GCompareFunc compare_func;
+ ThunarVfsThumbFactory *factory;
};
typedef struct _RsttoNavigatorClass RsttoNavigatorClass;
@@ -131,7 +132,7 @@
void
rstto_navigator_flip_entry(RsttoNavigator *navigator, RsttoNavigatorEntry *entry, gboolean horizontal);
GdkPixbuf *
-rstto_navigator_entry_get_thumb(RsttoNavigatorEntry *entry, gint max_size);
+rstto_navigator_get_entry_thumb(RsttoNavigator *navigator, RsttoNavigatorEntry *entry, gint size);
ExifData *
rstto_navigator_entry_get_exif_data (RsttoNavigatorEntry *entry);
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-09-30 22:30:50 UTC (rev 3284)
+++ ristretto/trunk/src/picture_viewer.c 2007-10-02 21:03:30 UTC (rev 3285)
@@ -855,9 +855,10 @@
rstto_picture_viewer_refresh(viewer);
rstto_picture_viewer_paint(GTK_WIDGET(viewer));
- if (time > -1)
+ if (time != -1)
{
/* update frame */
+ g_debug("Timeout: %u\n");
}
}
@@ -899,6 +900,7 @@
if (viewer->priv->src_pixbuf)
{
gdk_pixbuf_ref(viewer->priv->src_pixbuf);
+
}
rstto_picture_viewer_refresh(viewer);
rstto_picture_viewer_paint(GTK_WIDGET(viewer));
Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c 2007-09-30 22:30:50 UTC (rev 3284)
+++ ristretto/trunk/src/thumbnail_viewer.c 2007-10-02 21:03:30 UTC (rev 3285)
@@ -146,8 +146,8 @@
static void
rstto_thumbnail_viewer_size_request(GtkWidget *widget, GtkRequisition *requisition)
{
- requisition->height = 60;
- requisition->width = 60;
+ requisition->height = 120;
+ requisition->width = 120;
}
static void
@@ -407,7 +407,7 @@
GdkPixmap *pixmap = NULL;
if (entry)
{
- GdkPixbuf *pixbuf = rstto_navigator_entry_get_thumb(entry, viewer->priv->dimension - 4);
+ GdkPixbuf *pixbuf = rstto_navigator_get_entry_thumb(viewer->priv->navigator, entry, viewer->priv->dimension - 4);
pixmap = gdk_pixmap_new(widget->window, viewer->priv->dimension, viewer->priv->dimension, -1);
if(selected)
More information about the Goodies-commits
mailing list