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

Stephan Arts stephan at xfce.org
Sat Dec 22 07:37:21 CET 2007


Author: stephan
Date: 2007-12-22 06:37:21 +0000 (Sat, 22 Dec 2007)
New Revision: 3733

Modified:
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/navigator.h
   ristretto/trunk/src/thumbnail_bar.c
Log:
Sort thumbnails like the items in the navigator are sorted.



Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-12-21 20:18:09 UTC (rev 3732)
+++ ristretto/trunk/src/navigator.c	2007-12-22 06:37:21 UTC (rev 3733)
@@ -1181,3 +1181,17 @@
 {
     return navigator->max_history;
 }
+
+
+
+gint
+rstto_navigator_entry_get_position(RsttoNavigatorEntry *entry)
+{
+    RsttoNavigator *navigator = entry->navigator;
+    GList *iter = g_list_find (navigator->file_list, entry);
+    if (iter)
+    {
+        return g_list_position(navigator->file_list, iter);
+    }
+    return -1;
+}

Modified: ristretto/trunk/src/navigator.h
===================================================================
--- ristretto/trunk/src/navigator.h	2007-12-21 20:18:09 UTC (rev 3732)
+++ ristretto/trunk/src/navigator.h	2007-12-22 06:37:21 UTC (rev 3733)
@@ -123,6 +123,8 @@
 rstto_navigator_entry_set_scale (RsttoNavigatorEntry *entry, gdouble);
 void
 rstto_navigator_entry_set_rotation (RsttoNavigatorEntry *entry, GdkPixbufRotation rotation);
+gint
+rstto_navigator_entry_get_position(RsttoNavigatorEntry *entry);
 
 GdkPixbufRotation
 rstto_navigator_entry_get_rotation (RsttoNavigatorEntry *entry);

Modified: ristretto/trunk/src/thumbnail_bar.c
===================================================================
--- ristretto/trunk/src/thumbnail_bar.c	2007-12-21 20:18:09 UTC (rev 3732)
+++ ristretto/trunk/src/thumbnail_bar.c	2007-12-22 06:37:21 UTC (rev 3733)
@@ -76,6 +76,9 @@
 static void
 cb_rstto_thumbnail_bar_thumbnail_toggled (RsttoThumbnail *thumb, RsttoThumbnailBar *bar);
 
+static gint
+cb_rstto_thumbnail_bar_compare (RsttoThumbnail *a, RsttoThumbnail *b);
+
 GType
 rstto_thumbnail_bar_get_type ()
 {
@@ -301,7 +304,7 @@
 
 	gtk_widget_set_parent(child, GTK_WIDGET(container));
 
-    bar->priv->thumbs = g_slist_append(bar->priv->thumbs, child);
+    bar->priv->thumbs = g_slist_insert_sorted(bar->priv->thumbs, child, (GCompareFunc)cb_rstto_thumbnail_bar_compare);
 }
 
 static void
@@ -414,3 +417,19 @@
         rstto_navigator_entry_select (rstto_thumbnail_get_entry(thumb));
     }
 }
+
+static gint
+cb_rstto_thumbnail_bar_compare (RsttoThumbnail *a, RsttoThumbnail *b)
+{
+    RsttoNavigatorEntry *_a = rstto_thumbnail_get_entry(a);
+    RsttoNavigatorEntry *_b = rstto_thumbnail_get_entry(b);
+
+    if (rstto_navigator_entry_get_position(_a) < rstto_navigator_entry_get_position(_b))
+    {
+        return -1;
+    }
+    else
+    {
+        return 1;
+    }
+}




More information about the Goodies-commits mailing list