Code

Store cached icons to disk between runs, and invalidate/purge as needed.
[inkscape.git] / src / sp-metadata.cpp
index 11bc994f7402d3fee63f916d96d3c9f6fa3d3002..426810c7d9b607c275c904d272e56895641bac5d 100644 (file)
@@ -41,7 +41,7 @@ static void sp_metadata_build (SPObject * object, SPDocument * document, Inkscap
 static void sp_metadata_release (SPObject *object);
 static void sp_metadata_set (SPObject *object, unsigned int key, const gchar *value);
 static void sp_metadata_update(SPObject *object, SPCtx *ctx, guint flags);
-static Inkscape::XML::Node *sp_metadata_write(SPObject *object, Inkscape::XML::Node *repr, guint flags);
+static Inkscape::XML::Node *sp_metadata_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
 
 static SPObjectClass *metadata_parent_class;
 
@@ -84,6 +84,7 @@ sp_metadata_class_init (SPMetadataClass *klass)
 static void
 sp_metadata_init (SPMetadata *metadata)
 {
+    (void)metadata;
     debug("0x%08x",(unsigned int)metadata);
 }
 
@@ -182,22 +183,22 @@ sp_metadata_update(SPObject *object, SPCtx *ctx, guint flags)
  * \brief Writes it's settings to an incoming repr object, if any
  */
 static Inkscape::XML::Node *
-sp_metadata_write(SPObject *object, Inkscape::XML::Node *repr, guint flags)
+sp_metadata_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags)
 {
     debug("0x%08x",(unsigned int)object);
     //SPMetadata *metadata = SP_METADATA(object);
 
-    // only create a repr when we're writing out an Inkscape SVG
-    if ( flags & SP_OBJECT_WRITE_EXT && repr != SP_OBJECT_REPR(object) ) {
+    if ( repr != SP_OBJECT_REPR(object) ) {
         if (repr) {
             repr->mergeFrom(SP_OBJECT_REPR (object), "id");
         } else {
-            repr = SP_OBJECT_REPR (object)->duplicate(NULL); // FIXME
+            repr = SP_OBJECT_REPR (object)->duplicate(doc);
         }
     }
 
-    if (((SPObjectClass *) metadata_parent_class)->write)
-        ((SPObjectClass *) metadata_parent_class)->write(object, repr, flags);
+    if (((SPObjectClass *) metadata_parent_class)->write) {
+        ((SPObjectClass *) metadata_parent_class)->write(object, doc, repr, flags);
+    }
 
     return repr;
 }