gimp r27781 - in trunk: . app/core



Author: martinn
Date: Fri Dec 12 07:03:42 2008
New Revision: 27781
URL: http://svn.gnome.org/viewvc/gimp?rev=27781&view=rev

Log:
Bug 555954 â Merge Tagging of Gimp Resources GSoC Project

Partial merge of code from Aurimas JuÅka.

* app/core/gimpdata.[ch] (gimp_data_make_internal): Add an
'identifier' parameter/instance struct member that can be used to
identify the internal GimpData object across sessions. It is the
internal-object counterpart to a file path.

* app/core/gimp.c
* app/core/gimpcurve.c
* app/core/gimpbrush.c
* app/core/gimppattern.c
* app/core/gimppalette.c
* app/core/gimpgradient.c
* app/core/gimp-gradients.c: Assign an identifier to the the
internal GimpData objects.


Modified:
   trunk/ChangeLog
   trunk/app/core/gimp-gradients.c
   trunk/app/core/gimp.c
   trunk/app/core/gimpbrush.c
   trunk/app/core/gimpcurve.c
   trunk/app/core/gimpdata.c
   trunk/app/core/gimpdata.h
   trunk/app/core/gimpgradient.c
   trunk/app/core/gimppalette.c
   trunk/app/core/gimppattern.c

Modified: trunk/app/core/gimp-gradients.c
==============================================================================
--- trunk/app/core/gimp-gradients.c	(original)
+++ trunk/app/core/gimp-gradients.c	Fri Dec 12 07:03:42 2008
@@ -88,7 +88,7 @@
 {
   GimpGradient *gradient = GIMP_GRADIENT (gimp_gradient_new (name));
 
-  gimp_data_make_internal (GIMP_DATA (gradient));
+  gimp_data_make_internal (GIMP_DATA (gradient), id);
 
   gradient->segments->left_color_type  = GIMP_GRADIENT_COLOR_FOREGROUND;
   gradient->segments->right_color_type = GIMP_GRADIENT_COLOR_BACKGROUND;

Modified: trunk/app/core/gimp.c
==============================================================================
--- trunk/app/core/gimp.c	(original)
+++ trunk/app/core/gimp.c	Fri Dec 12 07:03:42 2008
@@ -602,14 +602,16 @@
 
   /*  add the clipboard brush  */
   clipboard_brush = gimp_brush_clipboard_new (gimp);
-  gimp_data_make_internal (GIMP_DATA (clipboard_brush));
+  gimp_data_make_internal (GIMP_DATA (clipboard_brush),
+                           "gimp-brush-clipboard");
   gimp_container_add (gimp->brush_factory->container,
                       GIMP_OBJECT (clipboard_brush));
   g_object_unref (clipboard_brush);
 
   /*  add the clipboard pattern  */
   clipboard_pattern = gimp_pattern_clipboard_new (gimp);
-  gimp_data_make_internal (GIMP_DATA (clipboard_pattern));
+  gimp_data_make_internal (GIMP_DATA (clipboard_pattern),
+                           "gimp-pattern-clipboard");
   gimp_container_add (gimp->pattern_factory->container,
                       GIMP_OBJECT (clipboard_pattern));
   g_object_unref (clipboard_pattern);

Modified: trunk/app/core/gimpbrush.c
==============================================================================
--- trunk/app/core/gimpbrush.c	(original)
+++ trunk/app/core/gimpbrush.c	Fri Dec 12 07:03:42 2008
@@ -380,7 +380,8 @@
       standard_brush = gimp_brush_new ("Standard");
 
       standard_brush->dirty = FALSE;
-      gimp_data_make_internal (standard_brush);
+      gimp_data_make_internal (standard_brush,
+                               "gimp-brush-standard");
 
       /*  set ref_count to 2 --> never swap the standard brush  */
       g_object_ref (standard_brush);

Modified: trunk/app/core/gimpcurve.c
==============================================================================
--- trunk/app/core/gimpcurve.c	(original)
+++ trunk/app/core/gimpcurve.c	Fri Dec 12 07:03:42 2008
@@ -534,7 +534,8 @@
       standard_curve = gimp_curve_new ("Standard");
 
       standard_curve->dirty = FALSE;
-      gimp_data_make_internal (standard_curve);
+      gimp_data_make_internal (standard_curve,
+                               "gimp-curve-standard");
 
       g_object_ref (standard_curve);
     }

Modified: trunk/app/core/gimpdata.c
==============================================================================
--- trunk/app/core/gimpdata.c	(original)
+++ trunk/app/core/gimpdata.c	Fri Dec 12 07:03:42 2008
@@ -210,6 +210,7 @@
   data->freeze_count = 0;
   data->mtime        = 0;
   data->tags         = NULL;
+  data->identifier   = NULL;
 
   /*  look at the passed class pointer, not at GIMP_DATA_GET_CLASS(data)
    *  here, because the latter is always GimpDataClass itself
@@ -252,6 +253,12 @@
       data->tags = NULL;
     }
 
+  if (data->identifier)
+    {
+      g_free (data->identifier);
+      data->identifier = NULL;
+    }
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -713,9 +720,13 @@
  * saved to disk.  Note that if you do this, later calls to
  * gimp_data_save() and gimp_data_delete_from_disk() will
  * automatically return successfully without giving any warning.
+ *
+ * The identifier name shall be an untranslated globally unique string
+ * that identifies the internal object across sessions.
  **/
 void
-gimp_data_make_internal (GimpData *data)
+gimp_data_make_internal (GimpData      *data,
+                         const gchar   *identifier)
 {
   g_return_if_fail (GIMP_IS_DATA (data));
 
@@ -725,6 +736,8 @@
       data->filename = NULL;
     }
 
+  data->identifier = g_strdup (identifier);
+
   data->internal  = TRUE;
   data->writable  = FALSE;
   data->deletable = FALSE;

Modified: trunk/app/core/gimpdata.h
==============================================================================
--- trunk/app/core/gimpdata.h	(original)
+++ trunk/app/core/gimpdata.h	Fri Dec 12 07:03:42 2008
@@ -59,6 +59,11 @@
   gint          freeze_count;
   time_t        mtime;
 
+  /* Identifies the GimpData object across sessions. Used when there
+   * is not a filename associated with the object.
+   */
+  gchar        *identifier;
+
   GList        *tags;
 };
 
@@ -102,7 +107,8 @@
 
 GimpData    * gimp_data_duplicate        (GimpData     *data);
 
-void          gimp_data_make_internal    (GimpData     *data);
+void          gimp_data_make_internal    (GimpData     *data,
+                                          const gchar  *identifier);
 
 gint          gimp_data_compare          (GimpData     *data1,
                                           GimpData     *data2);

Modified: trunk/app/core/gimpgradient.c
==============================================================================
--- trunk/app/core/gimpgradient.c	(original)
+++ trunk/app/core/gimpgradient.c	Fri Dec 12 07:03:42 2008
@@ -285,7 +285,8 @@
       standard_gradient = gimp_gradient_new ("Standard");
 
       standard_gradient->dirty = FALSE;
-      gimp_data_make_internal (standard_gradient);
+      gimp_data_make_internal (standard_gradient,
+                               "gimp-gradient-standard");
 
       g_object_ref (standard_gradient);
     }

Modified: trunk/app/core/gimppalette.c
==============================================================================
--- trunk/app/core/gimppalette.c	(original)
+++ trunk/app/core/gimppalette.c	Fri Dec 12 07:03:42 2008
@@ -281,7 +281,8 @@
       standard_palette = gimp_palette_new ("Standard");
 
       standard_palette->dirty = FALSE;
-      gimp_data_make_internal (standard_palette);
+      gimp_data_make_internal (standard_palette,
+                               "gimp-palette-standard");
 
       g_object_ref (standard_palette);
     }

Modified: trunk/app/core/gimppattern.c
==============================================================================
--- trunk/app/core/gimppattern.c	(original)
+++ trunk/app/core/gimppattern.c	Fri Dec 12 07:03:42 2008
@@ -214,7 +214,8 @@
       standard_pattern = gimp_pattern_new ("Standard");
 
       standard_pattern->dirty = FALSE;
-      gimp_data_make_internal (standard_pattern);
+      gimp_data_make_internal (standard_pattern,
+                               "gimp-pattern-standard");
 
       /*  set ref_count to 2 --> never swap the standard pattern  */
       g_object_ref (standard_pattern);



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