gimp r26100 - in trunk: . app/core



Author: neo
Date: Thu Jul 10 09:08:54 2008
New Revision: 26100
URL: http://svn.gnome.org/viewvc/gimp?rev=26100&view=rev

Log:
2008-07-10  Sven Neumann  <sven sven-sun berlin jpk com>

	* app/core/gimpdata.[ch]: renamed gimp_data_name_compare() to
	gimp_data_compare() and changed it to keep the data in three
	groups: internal, writable and system resource files. Inside the
	groups the sorting order is alphabetical.

	* app/core/gimpdatafactory.c (gimp_data_factory_new): changed
	accordingly.



Modified:
   trunk/ChangeLog
   trunk/app/core/gimpdata.c
   trunk/app/core/gimpdata.h
   trunk/app/core/gimpdatafactory.c

Modified: trunk/app/core/gimpdata.c
==============================================================================
--- trunk/app/core/gimpdata.c	(original)
+++ trunk/app/core/gimpdata.c	Thu Jul 10 09:08:54 2008
@@ -728,26 +728,31 @@
 }
 
 /**
- * gimp_data_name_compare:
+ * gimp_data_compare:
  * @data1: a #GimpData object.
  * @data2: another #GimpData object.
  *
- * Compares the names of the two objects for use in sorting; see
- * gimp_object_name_collate() for the method.  Objects marked as
- * "internal" are considered to come before any objects that are not.
+ * Compares two data objects for use in sorting. Objects marked as
+ * "internal" come first, then user-writable objects, then system data
+ * files. In these three groups, the objects are sorted alphabetically
+ * by name, using gimp_object_name_collate().
  *
  * Return value: -1 if @data1 compares before @data2,
  *                0 if they compare equal,
  *                1 if @data1 compares after @data2.
  **/
 gint
-gimp_data_name_compare (GimpData *data1,
-                        GimpData *data2)
+gimp_data_compare (GimpData *data1,
+		   GimpData *data2)
 {
   /*  move the internal objects (like the FG -> BG) gradient) to the top  */
   if (data1->internal != data2->internal)
     return data1->internal ? -1 : 1;
 
+  /*  keep user-writable objects about system resource files  */
+  if (data1->writable != data2->writable)
+    return data1->writable ? -1 : 1;
+
   return gimp_object_name_collate ((GimpObject *) data1,
                                    (GimpObject *) data2);
 }

Modified: trunk/app/core/gimpdata.h
==============================================================================
--- trunk/app/core/gimpdata.h	(original)
+++ trunk/app/core/gimpdata.h	Thu Jul 10 09:08:54 2008
@@ -104,6 +104,8 @@
 
 void          gimp_data_make_internal    (GimpData     *data);
 
+gint          gimp_data_compare          (GimpData     *data1,
+                                          GimpData     *data2);
 gint          gimp_data_name_compare     (GimpData     *data1,
                                           GimpData     *data2);
 

Modified: trunk/app/core/gimpdatafactory.c
==============================================================================
--- trunk/app/core/gimpdatafactory.c	(original)
+++ trunk/app/core/gimpdatafactory.c	Thu Jul 10 09:08:54 2008
@@ -153,7 +153,7 @@
   factory->gimp                   = gimp;
   factory->container              = gimp_list_new (data_type, TRUE);
   gimp_list_set_sort_func (GIMP_LIST (factory->container),
-			   (GCompareFunc) gimp_data_name_compare);
+			   (GCompareFunc) gimp_data_compare);
 
   factory->path_property_name     = g_strdup (path_property_name);
   factory->writable_property_name = g_strdup (writable_property_name);



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