GHashTable *items;
};
-static void ev_metadata_manager_save (gpointer data);
+static gboolean ev_metadata_manager_save (gpointer data);
static GeditMetadataManager *ev_metadata_manager = NULL;
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->values_loaded = FALSE;
(GSourceFunc)ev_metadata_manager_save,
NULL,
NULL);
-
- return TRUE;
}
/* This function must be called before exiting ev */
case G_TYPE_INT:
g_value_set_int (ret, atoi ((char *)value));
break;
+ case G_TYPE_DOUBLE:
+ g_value_set_double (ret, atof ((char *)value));
+ break;
+ case G_TYPE_BOOLEAN:
+ g_value_set_boolean (ret, atoi ((char *)value));
+ break;
}
return ret;
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)
{
case G_TYPE_INT:
string_value = g_strdup_printf ("%d", g_value_get_int (value));
break;
+ case G_TYPE_DOUBLE:
+ string_value = g_strdup_printf ("%f", g_value_get_double (value));
+ break;
+ case G_TYPE_BOOLEAN:
+ string_value = g_strdup_printf ("%d", g_value_get_boolean (value));
+ break;
default:
string_value = NULL;
g_assert_not_reached ();
}
}
-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
+ev_metadata_manager_set_double (const gchar *uri, const gchar *key, double value)
+{
+ GValue val = { 0, };
+
+ g_value_init (&val, G_TYPE_DOUBLE);
+ g_value_set_double (&val, value);
+
+ ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
+}
+
+void
+ev_metadata_manager_set_string (const gchar *uri, const gchar *key, const gchar *value)
+{
+ GValue val = { 0, };
+
+ g_value_init (&val, G_TYPE_STRING);
+ g_value_set_string (&val, value);
+
+ ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
+}
+
+void
+ev_metadata_manager_set_boolean (const gchar *uri, const gchar *key, gboolean value)
+{
+ GValue val = { 0, };
+
+ g_value_init (&val, G_TYPE_BOOLEAN);
+ g_value_set_boolean (&val, value);
+
+ ev_metadata_manager_set (uri, key, &val);
+
+ g_value_unset (&val);
}