X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-metadata-manager.c;h=7acf6a14c456a9a89f12a84a8976601abf53f3bf;hb=b0083a8f9bb4ef2d2fd9bed4106ce61e042f7c5c;hp=053ef9477508e5648d510c2ca043dd1ca543f88f;hpb=9c4285f1754fba201f7355df46dcf589910e15bb;p=evince.git diff --git a/shell/ev-metadata-manager.c b/shell/ev-metadata-manager.c index 053ef947..7acf6a14 100644 --- a/shell/ev-metadata-manager.c +++ b/shell/ev-metadata-manager.c @@ -43,7 +43,7 @@ #define MAX_ITEMS 50 -typedef struct _GeditMetadataManager GeditMetadataManager; +typedef struct _EvMetadataManager EvMetadataManager; typedef struct _Item Item; @@ -54,7 +54,7 @@ struct _Item GHashTable *values; }; -struct _GeditMetadataManager +struct _EvMetadataManager { gboolean values_loaded; /* It is true if the file has been read */ @@ -67,10 +67,10 @@ struct _GeditMetadataManager 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) @@ -87,13 +87,10 @@ 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; @@ -110,8 +107,6 @@ ev_metadata_manager_init (void) (GSourceFunc)ev_metadata_manager_save, NULL, NULL); - - return TRUE; } /* This function must be called before exiting ev */ @@ -303,7 +298,7 @@ ev_metadata_manager_get (const gchar *uri, 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) { @@ -358,7 +353,7 @@ ev_metadata_manager_set (const gchar *uri, g_return_if_fail (key != NULL); if (ev_metadata_manager == NULL) - ev_metadata_manager_init (); + return; if (!ev_metadata_manager->values_loaded) { @@ -516,7 +511,7 @@ resize_items () } } -static void +static gboolean ev_metadata_manager_save (gpointer data) { xmlDocPtr doc; @@ -524,7 +519,7 @@ ev_metadata_manager_save (gpointer data) gchar *file_name; if (!ev_metadata_manager->modified) - return; + return TRUE; resize_items (); @@ -532,7 +527,7 @@ ev_metadata_manager_save (gpointer data) doc = xmlNewDoc ((const xmlChar *)"1.0"); if (doc == NULL) - return; + return TRUE; /* Create metadata root */ root = xmlNewDocNode (doc, NULL, (const xmlChar *)"metadata", NULL); @@ -549,6 +544,8 @@ ev_metadata_manager_save (gpointer data) xmlFreeDoc (doc); ev_metadata_manager->modified = FALSE; + + return TRUE; } void @@ -561,7 +558,7 @@ ev_metadata_manager_set_int (const gchar *uri, const gchar *key, int value) ev_metadata_manager_set (uri, key, &val); - g_value_unset (&value); + g_value_unset (&val); } void @@ -574,7 +571,7 @@ ev_metadata_manager_set_double (const gchar *uri, const gchar *key, double value ev_metadata_manager_set (uri, key, &val); - g_value_unset (&value); + g_value_unset (&val); } void @@ -587,7 +584,7 @@ ev_metadata_manager_set_string (const gchar *uri, const gchar *key, const gchar ev_metadata_manager_set (uri, key, &val); - g_value_unset (&value); + g_value_unset (&val); } void @@ -600,5 +597,5 @@ ev_metadata_manager_set_boolean (const gchar *uri, const gchar *key, gboolean va ev_metadata_manager_set (uri, key, &val); - g_value_unset (&value); + g_value_unset (&val); }