13
0

Add scrollbar to edit presets dialogue, and the ability to differentiate between built-in and user presets.

git-svn-id: svn://localhost/ardour2/branches/3.0@8215 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-12-07 20:12:40 +00:00
parent 5f9883813e
commit 95acc21c69
2 changed files with 20 additions and 2 deletions

View File

@ -20,6 +20,7 @@
#include <gtkmm/stock.h>
#include <gtkmm/listviewtext.h>
#include <gtkmm/scrolledwindow.h>
#include "gtkmm2ext/gui_thread.h"
#include "ardour/plugin.h"
#include "edit_plugin_presets_dialog.h"
@ -39,7 +40,9 @@ EditPluginPresetsDialog::EditPluginPresetsDialog (boost::shared_ptr<ARDOUR::Plug
HBox* hbox = manage (new HBox);
hbox->set_spacing (6);
hbox->pack_start (_list);
ScrolledWindow* scr = manage (new ScrolledWindow);
scr->add (_list);
hbox->pack_start (*scr);
VBox* vbox = manage (new VBox);
vbox->pack_start (_delete, false, false);
@ -65,7 +68,18 @@ EditPluginPresetsDialog::EditPluginPresetsDialog (boost::shared_ptr<ARDOUR::Plug
void
EditPluginPresetsDialog::update_sensitivity ()
{
_delete.set_sensitive (!_list.get_selected().empty());
ListViewText::SelectionList s = _list.get_selected ();
ListViewText::SelectionList::const_iterator i = s.begin();
while (i != s.end()) {
if (*i >= _plugin->first_user_preset_index()) {
break;
}
++i;
}
_delete.set_sensitive (i != s.end ());
}
void

View File

@ -148,6 +148,10 @@ class Plugin : public PBD::StatefulDestructible, public Latent
virtual std::vector<PresetRecord> get_presets () = 0;
virtual std::string current_preset () const { return std::string(); }
virtual int first_user_preset_index () const {
return 0;
}
/** Emitted when a preset is added or removed, respectively */
PBD::Signal0<void> PresetAdded;
PBD::Signal0<void> PresetRemoved;