[gedit] Make the metadata-manager reusable for other apps



commit 4fc4c5d72a233e38aa96ce1e2e073c7f7b5240e6
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Apr 29 13:34:35 2015 +0200

    Make the metadata-manager reusable for other apps
    
    By giving the metadata_filename as a parameter to the init() function.

 gedit/gedit-app.c              |    9 ++++++++-
 gedit/gedit-metadata-manager.c |   14 +++++---------
 gedit/gedit-metadata-manager.h |    2 +-
 3 files changed, 14 insertions(+), 11 deletions(-)
---
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index ed292ce..c95a507 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -736,6 +736,10 @@ gedit_app_startup (GApplication *application)
        GtkSourceStyleSchemeManager *manager;
        const gchar *dir;
        gchar *icon_dir;
+#ifndef ENABLE_GVFS_METADATA
+       const gchar *cache_dir;
+       gchar *metadata_filename;
+#endif
 
        priv = gedit_app_get_instance_private (GEDIT_APP (application));
 
@@ -756,7 +760,10 @@ gedit_app_startup (GApplication *application)
        setup_theme_extensions (GEDIT_APP (application));
 
 #ifndef ENABLE_GVFS_METADATA
-       gedit_metadata_manager_init ();
+       cache_dir = gedit_dirs_get_user_cache_dir ();
+       metadata_filename = g_build_filename (cache_dir, "gedit-metadata.xml", NULL);
+       gedit_metadata_manager_init (metadata_filename);
+       g_free (metadata_filename);
 #endif
 
        /* Load settings */
diff --git a/gedit/gedit-metadata-manager.c b/gedit/gedit-metadata-manager.c
index 9316ad4..199a9a9 100644
--- a/gedit/gedit-metadata-manager.c
+++ b/gedit/gedit-metadata-manager.c
@@ -20,18 +20,14 @@
  */
 
 #include "gedit-metadata-manager.h"
-
 #include <libxml/xmlreader.h>
-
 #include "gedit-debug.h"
-#include "gedit-dirs.h"
 
 /*
 #define GEDIT_METADATA_VERBOSE_DEBUG   1
 */
 
 #define MAX_ITEMS 50
-#define METADATA_FILE "gedit-metadata.xml"
 
 typedef struct _GeditMetadataManager GeditMetadataManager;
 
@@ -96,19 +92,20 @@ gedit_metadata_manager_arm_timeout (void)
 
 /**
  * gedit_metadata_manager_init:
+ * @metadata_filename: the filename where the metadata is stored.
  *
  * This function initializes the metadata manager.
  * See also gedit_metadata_manager_shutdown().
  */
 void
-gedit_metadata_manager_init (void)
+gedit_metadata_manager_init (const gchar *metadata_filename)
 {
-       const gchar *cache_dir;
-
        gedit_debug (DEBUG_METADATA);
 
        if (gedit_metadata_manager != NULL)
+       {
                return;
+       }
 
        gedit_metadata_manager = g_new0 (GeditMetadataManager, 1);
 
@@ -120,8 +117,7 @@ gedit_metadata_manager_init (void)
                                       g_free,
                                       item_free);
 
-       cache_dir = gedit_dirs_get_user_cache_dir ();
-       gedit_metadata_manager->metadata_filename = g_build_filename (cache_dir, METADATA_FILE, NULL);
+       gedit_metadata_manager->metadata_filename = g_strdup (metadata_filename);
 }
 
 /**
diff --git a/gedit/gedit-metadata-manager.h b/gedit/gedit-metadata-manager.h
index 455c77c..07eac78 100644
--- a/gedit/gedit-metadata-manager.h
+++ b/gedit/gedit-metadata-manager.h
@@ -26,7 +26,7 @@
 
 G_BEGIN_DECLS
 
-void            gedit_metadata_manager_init            (void);
+void            gedit_metadata_manager_init            (const gchar *metadata_filename);
 
 void            gedit_metadata_manager_shutdown        (void);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]