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); }
static void gimp_module_db_module_initialize (const GimpDatafileData *file_data, gpointer user_data) { GimpModuleDB *db = GIMP_MODULE_DB (user_data); GimpModule *module; gboolean load_inhibit; if (! gimp_datafiles_check_extension (file_data->filename, "." G_MODULE_SUFFIX)) return; /* don't load if we already know about it */ if (gimp_module_db_module_find_by_path (db, file_data->filename)) return; load_inhibit = is_in_inhibit_list (file_data->filename, db->load_inhibit); module = gimp_module_new (file_data->filename, load_inhibit, db->verbose); g_signal_connect (module, "modified", G_CALLBACK (gimp_module_db_module_modified), db); db->modules = g_list_append (db->modules, module); g_signal_emit (db, db_signals[ADD], 0, module); }
/** * gegl_module_db_set_load_inhibit: * @db: A #GeglModuleDB. * @load_inhibit: A #G_SEARCHPATH_SEPARATOR delimited list of module * filenames to exclude from auto-loading. * * Sets the @load_inhibit flag for all #GeglModule's which are kept * by @db (using gegl_module_set_load_inhibit()). **/ void gegl_module_db_set_load_inhibit (GeglModuleDB *db, const gchar *load_inhibit) { GList *list; g_return_if_fail (GEGL_IS_MODULE_DB (db)); g_free (db->load_inhibit); db->load_inhibit = g_strdup (load_inhibit); for (list = db->modules; list; list = g_list_next (list)) { GeglModule *module = list->data; gegl_module_set_load_inhibit (module, is_in_inhibit_list (module->filename, load_inhibit)); } }
static void gimp_module_db_load_module (GimpModuleDB *db, GFile *file) { GimpModule *module; gchar *path; gboolean load_inhibit; if (! gimp_file_has_extension (file, "." G_MODULE_SUFFIX)) return; path = g_file_get_path (file); /* don't load if we already know about it */ if (gimp_module_db_module_find_by_path (db, path)) { g_free (path); return; } load_inhibit = is_in_inhibit_list (path, db->load_inhibit); module = gimp_module_new (path, load_inhibit, db->verbose); g_free (path); g_signal_connect (module, "modified", G_CALLBACK (gimp_module_db_module_modified), db); db->modules = g_list_append (db->modules, module); g_signal_emit (db, db_signals[ADD], 0, module); }