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



commit 0f5a5917f9efaf6195f603595e3c804ed82e64fa
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]