예제 #1
0
static void
gegl_module_db_module_initialize (const GeglDatafileData *file_data,
                                  gpointer                user_data)
{
  GeglModuleDB *db = GEGL_MODULE_DB (user_data);
  GeglModule   *module;
  gboolean      load_inhibit;

  if (! valid_module_name (file_data->filename))
    return;

  /* don't load if we already know about it */
  if (gegl_module_db_module_find_by_path (db, file_data->filename))
    return;

  load_inhibit = is_in_inhibit_list (file_data->filename,
                                     db->load_inhibit);

  module = gegl_module_new (file_data->filename,
                            load_inhibit,
                            db->verbose);

  g_signal_connect (module, "modified",
                    G_CALLBACK (gegl_module_db_module_modified),
                    db);

  db->modules = g_list_append (db->modules, module);
  g_signal_emit (db, db_signals[ADD], 0, module);
}
예제 #2
0
static void
gegl_module_db_finalize (GObject *object)
{
  GeglModuleDB *db = GEGL_MODULE_DB (object);

  g_list_free (db->modules);
  g_free (db->load_inhibit);

  G_OBJECT_CLASS (parent_class)->finalize (object);
}