#define MAX_ITEMS 50
-typedef struct _GeditMetadataManager GeditMetadataManager;
+typedef struct _EvMetadataManager EvMetadataManager;
typedef struct _Item Item;
GHashTable *values;
};
-struct _GeditMetadataManager
+struct _EvMetadataManager
{
gboolean values_loaded; /* It is true if the file
has been read */
GHashTable *items;
};
-static void ev_metadata_manager_save (gpointer data);
+static gboolean ev_metadata_manager_save (gpointer data);
-static GeditMetadataManager *ev_metadata_manager = NULL;
+static EvMetadataManager *ev_metadata_manager = NULL;
static void
item_free (gpointer data)
g_free (item);
}
-static gboolean
+void
ev_metadata_manager_init (void)
{
- if (ev_metadata_manager != NULL)
- return TRUE;
-
- ev_metadata_manager = g_new0 (GeditMetadataManager, 1);
+ ev_metadata_manager = g_new0 (EvMetadataManager, 1);
ev_metadata_manager->values_loaded = FALSE;
ev_metadata_manager->modified = FALSE;
(GSourceFunc)ev_metadata_manager_save,
NULL,
NULL);
-
- return TRUE;
}
/* This function must be called before exiting ev */
g_return_val_if_fail (key != NULL, FALSE);
if (ev_metadata_manager == NULL)
- ev_metadata_manager_init ();
+ return FALSE;
if (!ev_metadata_manager->values_loaded)
{
g_return_if_fail (key != NULL);
if (ev_metadata_manager == NULL)
- ev_metadata_manager_init ();
+ return;
if (!ev_metadata_manager->values_loaded)
{
}
}
-static void
+static gboolean
ev_metadata_manager_save (gpointer data)
{
xmlDocPtr doc;
gchar *file_name;
if (!ev_metadata_manager->modified)
- return;
+ return TRUE;
resize_items ();
doc = xmlNewDoc ((const xmlChar *)"1.0");
if (doc == NULL)
- return;
+ return TRUE;
/* Create metadata root */
root = xmlNewDocNode (doc, NULL, (const xmlChar *)"metadata", NULL);
xmlFreeDoc (doc);
ev_metadata_manager->modified = FALSE;
+
+ return TRUE;
}
void
g_value_set_int (&val, value);
ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
}
void
g_value_set_double (&val, value);
ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
}
void
g_value_set_string (&val, value);
ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
}
void
g_value_set_boolean (&val, value);
ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
}