+ GisPlugin *plugin = gis_plugins_load(plugins, name, viewer, prefs);
+ gis_prefs_set_boolean_v(plugins->prefs, "plugins", name, TRUE);
+ return plugin;
+}
+
+GList *gis_plugins_load_enabled(GisPlugins *plugins,
+ GisViewer *viewer, GisPrefs *prefs)
+{
+ GList *loaded = NULL;
+ for (GList *cur = gis_plugins_available(plugins); cur; cur = cur->next) {
+ gchar *name = cur->data;
+ if (gis_prefs_get_boolean_v(plugins->prefs, "plugins", name, NULL)) {
+ GisPlugin *plugin = gis_plugins_load(plugins, name, viewer, prefs);
+ loaded = g_list_prepend(loaded, plugin);
+ }
+ }
+ return loaded;
+}
+
+gboolean gis_plugins_unload(GisPlugins *plugins, const char *name)
+{
+ g_debug("GisPlugins: unload %s", name);
+ for (GList *cur = plugins->plugins; cur; cur = cur->next) {
+ GisPluginStore *store = cur->data;