[gimp: 7/27] app: Add GimpPlugInManager::export_procs member



commit 58eda135481167674c3d4a9a38da27519974bd90
Author: Martin Nordholts <martinn src gnome org>
Date:   Sun Apr 26 15:20:06 2009 +0200

    app: Add GimpPlugInManager::export_procs member
    
    Add GimpPlugInManager::export_procs member that will later contain all
    the export procedures.
---
 app/plug-in/gimppluginmanager-restore.c |    5 ++++-
 app/plug-in/gimppluginmanager.c         |   15 ++++++++++++---
 app/plug-in/gimppluginmanager.h         |    1 +
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/app/plug-in/gimppluginmanager-restore.c b/app/plug-in/gimppluginmanager-restore.c
index 07c36e9..9077698 100644
--- a/app/plug-in/gimppluginmanager-restore.c
+++ b/app/plug-in/gimppluginmanager-restore.c
@@ -177,13 +177,16 @@ gimp_plug_in_manager_restore (GimpPlugInManager  *manager,
       gimp_plug_in_manager_add_to_db (manager, context, list->data);
     }
 
-  /* sort the load and save procedures  */
+  /* sort the load, save and export procedures  */
   manager->load_procs =
     g_slist_sort_with_data (manager->load_procs,
                             gimp_plug_in_manager_file_proc_compare, manager);
   manager->save_procs =
     g_slist_sort_with_data (manager->save_procs,
                             gimp_plug_in_manager_file_proc_compare, manager);
+  manager->export_procs =
+    g_slist_sort_with_data (manager->export_procs,
+                            gimp_plug_in_manager_file_proc_compare, manager);
 
   gimp_plug_in_manager_run_extensions (manager, context, status_callback);
 }
diff --git a/app/plug-in/gimppluginmanager.c b/app/plug-in/gimppluginmanager.c
index 6b5ec4d..4121eb6 100644
--- a/app/plug-in/gimppluginmanager.c
+++ b/app/plug-in/gimppluginmanager.c
@@ -145,6 +145,7 @@ gimp_plug_in_manager_init (GimpPlugInManager *manager)
   manager->plug_in_procedures = NULL;
   manager->load_procs         = NULL;
   manager->save_procs         = NULL;
+  manager->export_procs       = NULL;
 
   manager->current_plug_in    = NULL;
   manager->open_plug_ins      = NULL;
@@ -185,6 +186,12 @@ gimp_plug_in_manager_finalize (GObject *object)
       manager->save_procs = NULL;
     }
 
+  if (manager->export_procs)
+    {
+      g_slist_free (manager->export_procs);
+      manager->export_procs = NULL;
+    }
+
   if (manager->plug_in_procedures)
     {
       g_slist_foreach (manager->plug_in_procedures,
@@ -247,6 +254,7 @@ gimp_plug_in_manager_get_memsize (GimpObject *object,
   memsize += gimp_g_slist_get_memsize (manager->plug_in_procedures, 0);
   memsize += gimp_g_slist_get_memsize (manager->load_procs, 0);
   memsize += gimp_g_slist_get_memsize (manager->save_procs, 0);
+  memsize += gimp_g_slist_get_memsize (manager->export_procs, 0);
 
   memsize += gimp_g_slist_get_memsize (manager->menu_branches,  0 /* FIXME */);
   memsize += gimp_g_slist_get_memsize (manager->locale_domains, 0 /* FIXME */);
@@ -361,9 +369,10 @@ gimp_plug_in_manager_add_procedure (GimpPlugInManager   *manager,
                 gimp_plug_in_def_remove_procedure (plug_in_def, tmp_proc);
             }
 
-          /* also remove it from the lists of load and save procs */
-          manager->load_procs = g_slist_remove (manager->load_procs, tmp_proc);
-          manager->save_procs = g_slist_remove (manager->save_procs, tmp_proc);
+          /* also remove it from the lists of load, save and export procs */
+          manager->load_procs   = g_slist_remove (manager->load_procs,   tmp_proc);
+          manager->save_procs   = g_slist_remove (manager->save_procs,   tmp_proc);
+          manager->export_procs = g_slist_remove (manager->export_procs, tmp_proc);
 
           /* and from the history */
           gimp_plug_in_manager_history_remove (manager, tmp_proc);
diff --git a/app/plug-in/gimppluginmanager.h b/app/plug-in/gimppluginmanager.h
index 9b61fd4..f74a805 100644
--- a/app/plug-in/gimppluginmanager.h
+++ b/app/plug-in/gimppluginmanager.h
@@ -46,6 +46,7 @@ struct _GimpPlugInManager
 
   GSList            *load_procs;
   GSList            *save_procs;
+  GSList            *export_procs;
 
   GSList            *menu_branches;
   GSList            *locale_domains;



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