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:
parent
5f9883813e
commit
95acc21c69
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user