Plugin selector useability changes, fix mouse grab bug in plugin barcontroller, prevent alpah key entry in tempo/meter dialogs
git-svn-id: svn://localhost/trunk/ardour2@483 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
56f0a56805
commit
1855ed57fd
|
@ -93,9 +93,11 @@ PluginSelector::PluginSelector (PluginManager *mgr)
|
|||
ascroller.set_border_width(10);
|
||||
ascroller.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
|
||||
ascroller.add(added_list);
|
||||
Gtk::Button *btn_add = manage(new Gtk::Button(Stock::ADD));
|
||||
btn_add = manage(new Gtk::Button(Stock::ADD));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(*btn_add, _("Add a plugin to the effect list"));
|
||||
Gtk::Button *btn_remove = manage(new Gtk::Button(Stock::REMOVE));
|
||||
btn_add->set_sensitive (false);
|
||||
btn_remove = manage(new Gtk::Button(Stock::REMOVE));
|
||||
btn_remove->set_sensitive (false);
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(*btn_remove, _("Remove a plugin from the effect list"));
|
||||
Gtk::Button *btn_update = manage(new Gtk::Button(Stock::REFRESH));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip(*btn_update, _("Update available plugins"));
|
||||
|
@ -116,7 +118,7 @@ PluginSelector::PluginSelector (PluginManager *mgr)
|
|||
add_button (Stock::CANCEL, RESPONSE_CANCEL);
|
||||
add_button (Stock::CONNECT, RESPONSE_APPLY);
|
||||
set_default_response (RESPONSE_APPLY);
|
||||
|
||||
set_response_sensitive (RESPONSE_APPLY, false);
|
||||
get_vbox()->pack_start (*table);
|
||||
|
||||
using namespace Gtk::Notebook_Helpers;
|
||||
|
@ -136,12 +138,15 @@ PluginSelector::PluginSelector (PluginManager *mgr)
|
|||
#ifdef VST_SUPPORT
|
||||
if (Config->get_use_vst()) {
|
||||
vst_display.signal_button_press_event().connect_notify (mem_fun(*this, &PluginSelector::row_clicked));
|
||||
vst_display.get_selection()->signal_changed().connect (mem_fun(*this, &PluginSelector::vst_display_selection_changed));
|
||||
}
|
||||
#endif
|
||||
|
||||
btn_update->signal_clicked().connect (mem_fun(*this, &PluginSelector::btn_update_clicked));
|
||||
btn_add->signal_clicked().connect(mem_fun(*this, &PluginSelector::btn_add_clicked));
|
||||
btn_remove->signal_clicked().connect(mem_fun(*this, &PluginSelector::btn_remove_clicked));
|
||||
ladspa_display.get_selection()->signal_changed().connect (mem_fun(*this, &PluginSelector::ladspa_display_selection_changed));
|
||||
added_list.get_selection()->signal_changed().connect (mem_fun(*this, &PluginSelector::added_list_selection_changed));
|
||||
|
||||
input_refiller ();
|
||||
}
|
||||
|
@ -274,6 +279,10 @@ PluginSelector::btn_add_clicked()
|
|||
}
|
||||
newrow[acols.text] = name;
|
||||
newrow[acols.plugin] = pi;
|
||||
|
||||
if (!amodel->children().empty()) {
|
||||
set_response_sensitive (RESPONSE_APPLY, true);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -285,6 +294,11 @@ PluginSelector::btn_remove_clicked()
|
|||
|
||||
added_plugins.erase(i);
|
||||
amodel->erase(iter);
|
||||
if (amodel->children().empty()) {
|
||||
set_response_sensitive (RESPONSE_APPLY, false);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -294,6 +308,38 @@ PluginSelector::btn_update_clicked()
|
|||
input_refiller ();
|
||||
}
|
||||
|
||||
#ifdef VST_SUPPORT
|
||||
void
|
||||
PluginSelector::vst_display_selection_changed()
|
||||
{
|
||||
if (vst_display.get_selection()->count_selected_rows() != 0) {
|
||||
btn_add->set_sensitive (true);
|
||||
} else {
|
||||
btn_add->set_sensitive (false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
PluginSelector::ladspa_display_selection_changed()
|
||||
{
|
||||
if (ladspa_display.get_selection()->count_selected_rows() != 0) {
|
||||
btn_add->set_sensitive (true);
|
||||
} else {
|
||||
btn_add->set_sensitive (false);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
PluginSelector::added_list_selection_changed()
|
||||
{
|
||||
if (added_list.get_selection()->count_selected_rows() != 0) {
|
||||
btn_remove->set_sensitive (true);
|
||||
} else {
|
||||
btn_remove->set_sensitive (false);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
PluginSelector::run ()
|
||||
{
|
||||
|
|
|
@ -67,6 +67,8 @@ class PluginSelector : public ArdourDialog
|
|||
Glib::RefPtr<Gtk::ListStore> lmodel;
|
||||
Glib::RefPtr<Gtk::TreeSelection> lselection;
|
||||
Gtk::TreeView ladspa_display;
|
||||
Gtk::Button* btn_add;
|
||||
Gtk::Button* btn_remove;
|
||||
|
||||
struct AddedColumns : public Gtk::TreeModel::ColumnRecord {
|
||||
AddedColumns () {
|
||||
|
@ -101,6 +103,7 @@ class PluginSelector : public ArdourDialog
|
|||
Gtk::TreeView vst_display;
|
||||
static void _vst_refiller (void *);
|
||||
void vst_refiller ();
|
||||
void vst_dispaly_selection_changed();
|
||||
#endif
|
||||
|
||||
ARDOUR::PluginInfo* i_selected_plug;
|
||||
|
@ -119,6 +122,8 @@ class PluginSelector : public ArdourDialog
|
|||
void btn_add_clicked();
|
||||
void btn_remove_clicked();
|
||||
void btn_update_clicked();
|
||||
void added_list_selection_changed();
|
||||
void ladspa_display_selection_changed();
|
||||
void btn_apply_clicked();
|
||||
void use_plugin (ARDOUR::PluginInfo*);
|
||||
void cleanup ();
|
||||
|
|
|
@ -100,7 +100,7 @@ PluginUIWindow::PluginUIWindow (AudioEngine &engine, PluginInsert& insert, bool
|
|||
|
||||
set_position (Gtk::WIN_POS_MOUSE);
|
||||
set_name ("PluginEditor");
|
||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
|
||||
add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
|
||||
|
||||
signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window*> (this)));
|
||||
insert.GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away));
|
||||
|
|
|
@ -102,10 +102,59 @@ TempoDialog::init (const BBT_Time& when, double bpm, bool movable)
|
|||
bpm_entry.show();
|
||||
|
||||
set_name ("MetricDialog");
|
||||
bpm_entry.signal_key_press_event().connect (mem_fun (*this, &TempoDialog::bpm_key_press), false);
|
||||
bpm_entry.signal_activate().connect (bind (mem_fun (*this, &TempoDialog::response), RESPONSE_ACCEPT));
|
||||
bpm_entry.signal_key_release_event().connect (mem_fun (*this, &TempoDialog::bpm_key_release));
|
||||
}
|
||||
|
||||
bool
|
||||
TempoDialog::bpm_key_press (GdkEventKey* ev)
|
||||
{
|
||||
|
||||
switch (ev->keyval) {
|
||||
|
||||
case GDK_0:
|
||||
case GDK_1:
|
||||
case GDK_2:
|
||||
case GDK_3:
|
||||
case GDK_4:
|
||||
case GDK_5:
|
||||
case GDK_6:
|
||||
case GDK_7:
|
||||
case GDK_8:
|
||||
case GDK_9:
|
||||
case GDK_KP_0:
|
||||
case GDK_KP_1:
|
||||
case GDK_KP_2:
|
||||
case GDK_KP_3:
|
||||
case GDK_KP_4:
|
||||
case GDK_KP_5:
|
||||
case GDK_KP_6:
|
||||
case GDK_KP_7:
|
||||
case GDK_KP_8:
|
||||
case GDK_KP_9:
|
||||
case GDK_period:
|
||||
case GDK_comma:
|
||||
case GDK_KP_Delete:
|
||||
case GDK_KP_Enter:
|
||||
case GDK_Delete:
|
||||
case GDK_BackSpace:
|
||||
case GDK_Escape:
|
||||
case GDK_Return:
|
||||
case GDK_Home:
|
||||
case GDK_End:
|
||||
case GDK_Left:
|
||||
case GDK_Right:
|
||||
case GDK_Num_Lock:
|
||||
case GDK_Tab:
|
||||
return FALSE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool
|
||||
TempoDialog::bpm_key_release (GdkEventKey* ev)
|
||||
{
|
||||
|
@ -279,6 +328,54 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
|
|||
note_types.signal_changed().connect (mem_fun (*this, &MeterDialog::note_types_change));
|
||||
}
|
||||
|
||||
bool
|
||||
MeterDialog::bpb_key_press (GdkEventKey* ev)
|
||||
{
|
||||
|
||||
switch (ev->keyval) {
|
||||
|
||||
case GDK_0:
|
||||
case GDK_1:
|
||||
case GDK_2:
|
||||
case GDK_3:
|
||||
case GDK_4:
|
||||
case GDK_5:
|
||||
case GDK_6:
|
||||
case GDK_7:
|
||||
case GDK_8:
|
||||
case GDK_9:
|
||||
case GDK_KP_0:
|
||||
case GDK_KP_1:
|
||||
case GDK_KP_2:
|
||||
case GDK_KP_3:
|
||||
case GDK_KP_4:
|
||||
case GDK_KP_5:
|
||||
case GDK_KP_6:
|
||||
case GDK_KP_7:
|
||||
case GDK_KP_8:
|
||||
case GDK_KP_9:
|
||||
case GDK_period:
|
||||
case GDK_comma:
|
||||
case GDK_KP_Delete:
|
||||
case GDK_KP_Enter:
|
||||
case GDK_Delete:
|
||||
case GDK_BackSpace:
|
||||
case GDK_Escape:
|
||||
case GDK_Return:
|
||||
case GDK_Home:
|
||||
case GDK_End:
|
||||
case GDK_Left:
|
||||
case GDK_Right:
|
||||
case GDK_Num_Lock:
|
||||
case GDK_Tab:
|
||||
return FALSE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool
|
||||
MeterDialog::bpb_key_release (GdkEventKey* ev)
|
||||
{
|
||||
|
|
|
@ -41,6 +41,7 @@ struct TempoDialog : public ArdourDialog
|
|||
|
||||
private:
|
||||
void init (const ARDOUR::BBT_Time& start, double, bool);
|
||||
bool bpm_key_press (GdkEventKey* );
|
||||
bool bpm_key_release (GdkEventKey* );
|
||||
};
|
||||
|
||||
|
@ -74,6 +75,7 @@ struct MeterDialog : public ArdourDialog
|
|||
|
||||
private:
|
||||
void init (const ARDOUR::BBT_Time&, double, double, bool);
|
||||
bool bpb_key_press (GdkEventKey* );
|
||||
bool bpb_key_release (GdkEventKey* );
|
||||
void note_types_change ();
|
||||
};
|
||||
|
|
|
@ -170,6 +170,7 @@ BarController::button_release (GdkEventButton* ev)
|
|||
darea.remove_modal_grab();
|
||||
grabbed = false;
|
||||
StopGesture ();
|
||||
grabbed = false;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
|
Loading…
Reference in New Issue