[gedit] App: port to new Tepl metadata API



commit 3f84484d8795c3bf0680eafc2343d557517c9faf
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Sat Apr 18 18:20:40 2020 +0200

    App: port to new Tepl metadata API

 gedit/gedit-app.c | 51 +++++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 43 insertions(+), 8 deletions(-)
---
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index 105773301..cc7106960 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -637,18 +637,52 @@ show_menubar (void)
        return result;
 }
 
+static GFile *
+get_metadata_manager_file (void)
+{
+       return g_file_new_build_filename (gedit_dirs_get_user_data_dir (),
+                                         "gedit-metadata.xml",
+                                         NULL);
+}
+
 static void
-setup_metadata_manager (void)
+load_metadata_manager (void)
 {
-       const gchar *user_data_dir;
-       gchar *metadata_path;
+       TeplMetadataManager *manager;
+       GFile *file;
+       GError *error = NULL;
 
-       user_data_dir = gedit_dirs_get_user_data_dir ();
-       metadata_path = g_build_filename (user_data_dir, "gedit-metadata.xml", NULL);
+       manager = tepl_metadata_manager_get_singleton ();
+       file = get_metadata_manager_file ();
+       tepl_metadata_manager_load_from_disk (manager, file, &error);
 
-       tepl_metadata_manager_init (metadata_path);
+       if (error != NULL)
+       {
+               g_warning ("Failed to load metadata: %s", error->message);
+               g_clear_error (&error);
+       }
+
+       g_object_unref (file);
+}
+
+static void
+save_metadata_manager (void)
+{
+       TeplMetadataManager *manager;
+       GFile *file;
+       GError *error = NULL;
+
+       manager = tepl_metadata_manager_get_singleton ();
+       file = get_metadata_manager_file ();
+       tepl_metadata_manager_save_to_disk (manager, file, TRUE, &error);
+
+       if (error != NULL)
+       {
+               g_warning ("Failed to save metadata: %s", error->message);
+               g_clear_error (&error);
+       }
 
-       g_free (metadata_path);
+       g_object_unref (file);
 }
 
 static void
@@ -666,7 +700,7 @@ gedit_app_startup (GApplication *application)
        gedit_debug_init ();
        gedit_debug_message (DEBUG_APP, "Startup");
 
-       setup_metadata_manager ();
+       load_metadata_manager ();
 
        setup_theme_extensions (GEDIT_APP (application));
 
@@ -1129,6 +1163,7 @@ gedit_app_shutdown (GApplication *app)
        save_accels ();
        save_page_setup (GEDIT_APP (app));
        save_print_settings (GEDIT_APP (app));
+       save_metadata_manager ();
 
        G_APPLICATION_CLASS (gedit_app_parent_class)->shutdown (app);
 


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