[gimp/metadata-browser: 19/44] Don't set and create data structures.



commit 8404195a57ef1692acec773b21e6ccc76da52650
Author: Roman Joost <roman bromeco de>
Date:   Sun Sep 25 16:49:04 2011 +1000

    Don't set and create data structures.
    
    Use the API of the XMPModel to set scalar values. This will not alter
    the raw values. The XMPModel will have to keep track and merge changes
    if the raw data is exported.

 plug-ins/metadata/gimpxmpmodelwidget.c |   46 +++++++------------------------
 1 files changed, 11 insertions(+), 35 deletions(-)
---
diff --git a/plug-ins/metadata/gimpxmpmodelwidget.c b/plug-ins/metadata/gimpxmpmodelwidget.c
index 6b6fc41..272cd5d 100644
--- a/plug-ins/metadata/gimpxmpmodelwidget.c
+++ b/plug-ins/metadata/gimpxmpmodelwidget.c
@@ -314,45 +314,21 @@ void
 gimp_xmp_model_widget_changed (GimpXmpModelWidget *widget,
                                const gchar        *value)
 {
-  const gchar               **current_value;
   GimpXmpModelWidgetPrivate  *priv = GIMP_XMP_MODEL_WIDGET_GET_PRIVATE (widget);
-  XMPType                     type = xmp_model_find_xmptype_by (priv->xmp_model,
-                                                                priv->schema_uri,
-                                                                priv->property_name);
 
-  current_value = xmp_model_get_raw_property_value (priv->xmp_model,
-                                                    priv->schema_uri,
-                                                    priv->property_name);
 
-  switch (type)
-   {
-    case XMP_TYPE_LANG_ALT:
-      if (current_value == NULL)
-       {
-        current_value = g_new (const gchar *, 2);
-        current_value[0] = "x-default";
-        current_value[1] = g_strdup (value);
-       }
-      else
-       {
-        current_value[1] = g_strdup (value);
-       }
-      g_signal_handlers_block_by_func (priv->xmp_model,
-                                       gimp_xmp_model_widget_xmpmodel_changed,
-                                       widget);
-      xmp_model_set_property (priv->xmp_model,
-                              type,
-                              priv->schema_uri,
-                              priv->property_name,
-                              current_value);
-      g_signal_handlers_unblock_by_func (priv->xmp_model,
-                                         gimp_xmp_model_widget_xmpmodel_changed,
-                                         widget);
-      break;
+  g_signal_handlers_block_by_func (priv->xmp_model,
+                                   gimp_xmp_model_widget_xmpmodel_changed,
+                                   widget);
 
-    default:
-      break;
-   }
+  xmp_model_set_scalar_property (priv->xmp_model,
+                                 priv->schema_uri,
+                                 priv->property_name,
+                                 value);
+
+  g_signal_handlers_unblock_by_func (priv->xmp_model,
+                                     gimp_xmp_model_widget_xmpmodel_changed,
+                                     widget);
 
 }
 



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