don't allow to delete factory presets
authorRobin Gareus <robin@gareus.org>
Fri, 8 Jan 2016 23:51:24 +0000 (00:51 +0100)
committerRobin Gareus <robin@gareus.org>
Fri, 8 Jan 2016 23:51:24 +0000 (00:51 +0100)
libs/ardour/plugin.cc

index d6c9a488052a3f6df392ee1f68a46885cd6fbdb6..047e1517105ec156fc4f8a7d32df8371838fa763 100644 (file)
@@ -120,6 +120,12 @@ Plugin::~Plugin ()
 void
 Plugin::remove_preset (string name)
 {
+       Plugin::PresetRecord const * p = preset_by_label (name);
+       if (!p->user) {
+               PBD::error << _("Cannot remove plugin factory preset.") << PBD::endmsg;
+               return;
+       }
+
        do_remove_preset (name);
        _presets.erase (preset_by_label (name)->uri);
 
@@ -133,6 +139,11 @@ Plugin::remove_preset (string name)
 Plugin::PresetRecord
 Plugin::save_preset (string name)
 {
+       if (preset_by_label (name)) {
+               PBD::error << _("Preset with given name already exists.") << PBD::endmsg;
+               return Plugin::PresetRecord ();
+       }
+
        string const uri = do_save_preset (name);
 
        if (!uri.empty()) {