+GisPlugin *gis_plugins_enable(GisPlugins *self, const char *name,
+ GisViewer *viewer, GisPrefs *prefs)
+{
+ GisPlugin *plugin = gis_plugins_load(self, name, viewer, prefs);
+ gis_prefs_set_boolean_v(self->prefs, "plugins", name, TRUE);
+ return plugin;
+}
+
+GList *gis_plugins_load_enabled(GisPlugins *self,
+ GisViewer *viewer, GisPrefs *prefs)
+{
+ GList *loaded = NULL;
+ for (GList *cur = gis_plugins_available(self); cur; cur = cur->next) {
+ gchar *name = cur->data;
+ if (gis_prefs_get_boolean_v(self->prefs, "plugins", name, NULL)) {
+ GisPlugin *plugin = gis_plugins_load(self, name, viewer, prefs);
+ loaded = g_list_prepend(loaded, plugin);
+ }
+ }
+ return loaded;
+}
+