summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/luainstance.cc2
-rw-r--r--gtk2_ardour/rc_option_editor.cc2
-rw-r--r--gtk2_ardour/script_selector.cc80
-rw-r--r--gtk2_ardour/script_selector.h5
-rw-r--r--scripts/access_action.lua (renamed from scripts/_access_action.lua)2
5 files changed, 67 insertions, 24 deletions
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc
index a0f247179e..8f9572b98e 100644
--- a/gtk2_ardour/luainstance.cc
+++ b/gtk2_ardour/luainstance.cc
@@ -1358,7 +1358,7 @@ LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
switch (type) {
case LuaScriptInfo::EditorAction:
reg = lua_action_names ();
- title = _("Add Lua Action");
+ title = _("Add Shortcut or Lua Script");
break;
case LuaScriptInfo::EditorHook:
reg = lua_slot_names ();
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 0f33de33ce..f5dfcab0a1 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -3814,7 +3814,7 @@ RCOptionEditor::RCOptionEditor ()
add_option (_("Appearance/Toolbar"),
new ColumVisibilityOption (
- "action-table-columns", _("Lua Action Script Button Visibility"), 4,
+ "action-table-columns", _("Display Action-Buttons"), 4,
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_action_table_columns),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_action_table_columns)
)
diff --git a/gtk2_ardour/script_selector.cc b/gtk2_ardour/script_selector.cc
index 94d6e67671..ea28c414b6 100644
--- a/gtk2_ardour/script_selector.cc
+++ b/gtk2_ardour/script_selector.cc
@@ -31,28 +31,26 @@ using namespace ARDOUR;
ScriptSelector::ScriptSelector (std::string title, LuaScriptInfo::ScriptType type)
: ArdourDialog (title)
+ , _type_label ("<b>Type:</b>", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)
, _type ("", Gtk::ALIGN_START, Gtk::ALIGN_CENTER)
+ , _author_label ("<b>Author:</b>", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)
, _author ("", Gtk::ALIGN_START, Gtk::ALIGN_CENTER)
, _description ("", Gtk::ALIGN_START, Gtk::ALIGN_START)
, _scripts (LuaScripting::instance ().scripts (type))
, _script_type (type)
{
- Gtk::Label* l;
-
Table* t = manage (new Table (3, 2));
t->set_spacings (6);
int ty = 0;
- l = manage (new Label (_("<b>Type:</b>"), Gtk::ALIGN_END, Gtk::ALIGN_CENTER, false));
- l->set_use_markup ();
- t->attach (*l, 0, 1, ty, ty+1, FILL|EXPAND, SHRINK);
+ _type_label.set_use_markup ();
+ t->attach (_type_label, 0, 1, ty, ty+1, FILL|EXPAND, SHRINK);
t->attach (_type, 1, 2, ty, ty+1, FILL|EXPAND, SHRINK);
++ty;
- l = manage (new Label (_("<b>Author:</b>"), Gtk::ALIGN_END, Gtk::ALIGN_CENTER, false));
- l->set_use_markup ();
- t->attach (*l, 0, 1, ty, ty+1, FILL|EXPAND, SHRINK);
+ _author_label.set_use_markup ();
+ t->attach (_author_label, 0, 1, ty, ty+1, FILL|EXPAND, SHRINK);
t->attach (_author, 1, 2, ty, ty+1, FILL|EXPAND, SHRINK);
++ty;
@@ -81,36 +79,78 @@ ScriptSelector::ScriptSelector (std::string title, LuaScriptInfo::ScriptType typ
setup_list ();
show_all ();
+
+ script_combo_changed();
+}
+
+bool
+ScriptSelector::script_separator (const Glib::RefPtr<Gtk::TreeModel> &, const Gtk::TreeModel::iterator &i)
+{
+ _script_combo.set_active (i);
+
+ return _script_combo.get_active_text () == "separator";
}
void
ScriptSelector::setup_list ()
{
_combocon.block();
+
vector<string> script_names;
for (LuaScriptList::const_iterator s = _scripts.begin(); s != _scripts.end(); ++s) {
- script_names.push_back ((*s)->name);
+ if ( (*s)->name != "Shortcut" ) {
+ script_names.push_back ((*s)->name);
+ }
}
-
- Gtkmm2ext::set_popdown_strings (_script_combo, script_names);
- if (script_names.size() > 0) {
- _script_combo.set_active(0);
- script_combo_changed ();
+
+ _script_combo.clear();
+ _script_combo.set_row_separator_func ( sigc::mem_fun (*this, &ScriptSelector::script_separator) );
+
+ _script_combo.append_text ("Shortcut");
+ _script_combo.append_text ("separator");
+
+ vector<string>::const_iterator i;
+ for (i = script_names.begin(); i != script_names.end(); ++i) {
+ _script_combo.append_text (*i);
}
+
+ _script_combo.set_active(0);
+ script_combo_changed ();
+
_combocon.unblock();
}
void
ScriptSelector::script_combo_changed ()
{
- int i = _script_combo.get_active_row_number();
- _script = _scripts[i];
+ std::string nm = _script_combo.get_active_text();
+
+ for (LuaScriptList::const_iterator s = _scripts.begin(); s != _scripts.end(); ++s) {
+ if ( (*s)->name == nm ) {
+ _script = (*s);
+ }
+ }
- _type.set_text(LuaScriptInfo::type2str (_script->type));
- _author.set_text (_script->author);
- _description.set_text (_script->description);
+ if (_script) {
+
+ if (_script->name == "Shortcut" ) {
+ _type.hide();
+ _type_label.hide();
+ _author.hide();
+ _author_label.hide();
+ _description.set_text (_script->description);
+ } else {
+ _type.show();
+ _type_label.show();
+ _author.show();
+ _author_label.show();
+ _type.set_text(LuaScriptInfo::type2str (_script->type));
+ _author.set_text (_script->author);
+ _description.set_text (_script->description);
+ }
- _add->set_sensitive (Glib::file_test(_script->path, Glib::FILE_TEST_EXISTS));
+ _add->set_sensitive (Glib::file_test(_script->path, Glib::FILE_TEST_EXISTS));
+ }
}
void
diff --git a/gtk2_ardour/script_selector.h b/gtk2_ardour/script_selector.h
index 54c26ee227..f8f17f5c02 100644
--- a/gtk2_ardour/script_selector.h
+++ b/gtk2_ardour/script_selector.h
@@ -34,11 +34,14 @@ private:
void setup_list ();
void refresh ();
void script_combo_changed ();
-
+ bool script_separator (const Glib::RefPtr<Gtk::TreeModel> &, const Gtk::TreeModel::iterator &i);
+
Gtk::Button* _add;
Gtk::ComboBoxText _script_combo;
+ Gtk::Label _type_label;
Gtk::Label _type;
+ Gtk::Label _author_label;
Gtk::Label _author;
Gtk::Label _description;
diff --git a/scripts/_access_action.lua b/scripts/access_action.lua
index 11b7ec716e..b50c6386d8 100644
--- a/scripts/_access_action.lua
+++ b/scripts/access_action.lua
@@ -3,7 +3,7 @@ ardour {
name = "Shortcut",
license = "MIT",
author = "me",
- description = [[Shortcut call any action]]
+ description = [[Trigger a keyboard shortcut. You will be prompted for the shortcut's action in the next step.]]
}
function action_params ()