## GimpModuleDB

GimpModuleDB — Keeps a list of GimpModule's found in a given searchpath.

## Synopsis

                        GimpModuleDB;
    GimpModuleDB *      gimp_module_db_new                  (gboolean verbose);
    void                gimp_module_db_set_load_inhibit     (GimpModuleDB *db,
                                                             const gchar *load_inhibit);
    const gchar *       gimp_module_db_get_load_inhibit     (GimpModuleDB *db);
    void                gimp_module_db_load                 (GimpModuleDB *db,
                                                             const gchar *module_path);
    void                gimp_module_db_refresh              (GimpModuleDB *db,
                                                             const gchar *module_path);

## Object Hierarchy

      GObject
       +----GimpModuleDB

## Signals

      "add"                                            : Run First
      "module-modified"                                : Run First
      "remove"                                         : Run First

## Description

Keeps a list of GimpModule's found in a given searchpath.

## Details

### GimpModuleDB

    typedef struct _GimpModuleDB GimpModuleDB;

The GimpModuleDB struct contains no public members.

### gimp_module_db_new ()

    GimpModuleDB *      gimp_module_db_new                  (gboolean verbose);

Creates a new GimpModuleDB instance. The `verbose` parameter will be passed to the created GimpModule instances using `gimp_module_new()`.

`verbose` : | Pass `TRUE` to enable debugging output.
Returns : | The new GimpModuleDB instance.

### gimp_module_db_set_load_inhibit ()

    void                gimp_module_db_set_load_inhibit     (GimpModuleDB *db,
                                                             const gchar *load_inhibit);

Sets the `load_inhibit` flag for all GimpModule's which are kept by `db` (using `gimp_module_set_load_inhibit()`).

`db` : | A GimpModuleDB.
`load_inhibit` : | A G_SEARCHPATH_SEPARATOR delimited list of module filenames to exclude from auto-loading.

### gimp_module_db_get_load_inhibit ()

    const gchar *       gimp_module_db_get_load_inhibit     (GimpModuleDB *db);

Return the G_SEARCHPATH_SEPARATOR selimited list of module filenames which are excluded from auto-loading.

`db` : | A GimpModuleDB.
Returns : | the `db`'s `load_inhibit` string.

### gimp_module_db_load ()

    void                gimp_module_db_load                 (GimpModuleDB *db,
                                                             const gchar *module_path);

Scans the directories contained in `module_path` using `gimp_datafiles_read_directories()` and creates a GimpModule instance for every loadable module contained in the directories.

`db` : | A GimpModuleDB.
`module_path` : | A G_SEARCHPATH_SEPARATOR delimited list of directories to load modules from.

### gimp_module_db_refresh ()

    void                gimp_module_db_refresh              (GimpModuleDB *db,
                                                             const gchar *module_path);

Does the same as `gimp_module_db_load()`, plus removes all GimpModule instances whose modules have been deleted from disk.

Note that the GimpModule's will just be removed from the internal list and not freed as this is not possible with GTypeModule instances which actually implement types.

`db` : | A GimpModuleDB.
`module_path` : | A G_SEARCHPATH_SEPARATOR delimited list of directories to load modules from.

## Signal Details

### The `"add"` signal

    void                user_function                      (GimpModuleDB *gimpmoduledb,
                                                            GimpModule   *arg1,
                                                            gpointer      user_data)         : Run First

`gimpmoduledb` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"module-modified"` signal

    void                user_function                      (GimpModuleDB *gimpmoduledb,
                                                            GimpModule   *arg1,
                                                            gpointer      user_data)         : Run First

`gimpmoduledb` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.

### The `"remove"` signal

    void                user_function                      (GimpModuleDB *gimpmoduledb,
                                                            GimpModule   *arg1,
                                                            gpointer      user_data)         : Run First

`gimpmoduledb` : | the object which received the signal.
`arg1` : |
`user_data` : | user data set when the signal handler was connected.