Use an action's tooltip in the key editor if its label is empty; add some tooltips so that Solo / Monitor actions are not blank in the key editor.
git-svn-id: svn://localhost/ardour2/branches/3.0@8909 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
150734ac61
commit
2304a51b85
@ -422,10 +422,11 @@ ARDOUR_UI::post_engine ()
|
||||
if (ARDOUR_COMMAND_LINE::show_key_actions) {
|
||||
vector<string> names;
|
||||
vector<string> paths;
|
||||
vector<string> tooltips;
|
||||
vector<string> keys;
|
||||
vector<AccelKey> bindings;
|
||||
|
||||
ActionManager::get_all_actions (names, paths, keys, bindings);
|
||||
ActionManager::get_all_actions (names, paths, tooltips, keys, bindings);
|
||||
|
||||
vector<string>::iterator n;
|
||||
vector<string>::iterator k;
|
||||
|
@ -225,21 +225,23 @@ KeyEditor::populate ()
|
||||
{
|
||||
vector<string> paths;
|
||||
vector<string> labels;
|
||||
vector<string> tooltips;
|
||||
vector<string> keys;
|
||||
vector<AccelKey> bindings;
|
||||
typedef std::map<string,TreeIter> NodeMap;
|
||||
NodeMap nodes;
|
||||
NodeMap::iterator r;
|
||||
|
||||
ActionManager::get_all_actions (labels, paths, keys, bindings);
|
||||
ActionManager::get_all_actions (labels, paths, tooltips, keys, bindings);
|
||||
|
||||
vector<string>::iterator k;
|
||||
vector<string>::iterator p;
|
||||
vector<string>::iterator t;
|
||||
vector<string>::iterator l;
|
||||
|
||||
model->clear ();
|
||||
|
||||
for (l = labels.begin(), k = keys.begin(), p = paths.begin(); l != labels.end(); ++k, ++p, ++l) {
|
||||
for (l = labels.begin(), k = keys.begin(), p = paths.begin(), t = tooltips.begin(); l != labels.end(); ++k, ++p, ++t, ++l) {
|
||||
|
||||
TreeModel::Row row;
|
||||
vector<string> parts;
|
||||
@ -274,7 +276,11 @@ KeyEditor::populate ()
|
||||
|
||||
/* add this action */
|
||||
|
||||
row[columns.action] = (*l);
|
||||
if (l->empty ()) {
|
||||
row[columns.action] = *t;
|
||||
} else {
|
||||
row[columns.action] = *l;
|
||||
}
|
||||
row[columns.path] = (*p);
|
||||
row[columns.bindable] = true;
|
||||
|
||||
|
@ -608,22 +608,22 @@ MonitorSection::register_actions ()
|
||||
monitor_actions = ActionGroup::create (X_("Monitor"));
|
||||
ActionManager::add_action_group (monitor_actions);
|
||||
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-mono", "",
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-mono", "", "Switch monitor to mono",
|
||||
sigc::mem_fun (*this, &MonitorSection::mono));
|
||||
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-cut-all", "",
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-cut-all", "", "Cut monitor",
|
||||
sigc::mem_fun (*this, &MonitorSection::cut_all));
|
||||
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-dim-all", "",
|
||||
ActionManager::register_toggle_action (monitor_actions, "monitor-dim-all", "", "Dim monitor",
|
||||
sigc::mem_fun (*this, &MonitorSection::dim_all));
|
||||
|
||||
act = ActionManager::register_toggle_action (monitor_actions, "toggle-exclusive-solo", "",
|
||||
act = ActionManager::register_toggle_action (monitor_actions, "toggle-exclusive-solo", "", "Toggle exclusive solo mode",
|
||||
sigc::mem_fun (*this, &MonitorSection::toggle_exclusive_solo));
|
||||
|
||||
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
|
||||
tact->set_active (Config->get_exclusive_solo());
|
||||
|
||||
act = ActionManager::register_toggle_action (monitor_actions, "toggle-mute-overrides-solo", "",
|
||||
act = ActionManager::register_toggle_action (monitor_actions, "toggle-mute-overrides-solo", "", "Toggle mute overrides solo mode",
|
||||
sigc::mem_fun (*this, &MonitorSection::toggle_mute_overrides_solo));
|
||||
|
||||
tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
|
||||
@ -634,28 +634,24 @@ MonitorSection::register_actions ()
|
||||
|
||||
for (uint32_t chn = 1; chn <= 16; ++chn) {
|
||||
|
||||
/* for the time being, do not use the action description because it always
|
||||
shows up in the buttons, which is undesirable.
|
||||
*/
|
||||
|
||||
action_name = string_compose (X_("monitor-cut-%1"), chn);
|
||||
action_descr = string_compose (_("Cut Monitor Chn %1"), chn);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "",
|
||||
action_descr = string_compose (_("Cut monitor channel %1"), chn);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "", action_descr.c_str(),
|
||||
sigc::bind (sigc::mem_fun (*this, &MonitorSection::cut_channel), chn));
|
||||
|
||||
action_name = string_compose (X_("monitor-dim-%1"), chn);
|
||||
action_descr = string_compose (_("Dim Monitor Chn %1"), chn+1);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "",
|
||||
action_descr = string_compose (_("Dim monitor channel %1"), chn+1);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "", action_descr.c_str(),
|
||||
sigc::bind (sigc::mem_fun (*this, &MonitorSection::dim_channel), chn));
|
||||
|
||||
action_name = string_compose (X_("monitor-solo-%1"), chn);
|
||||
action_descr = string_compose (_("Solo Monitor Chn %1"), chn);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "",
|
||||
action_descr = string_compose (_("Solo monitor channel %1"), chn+1);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "", action_descr.c_str(),
|
||||
sigc::bind (sigc::mem_fun (*this, &MonitorSection::solo_channel), chn));
|
||||
|
||||
action_name = string_compose (X_("monitor-invert-%1"), chn);
|
||||
action_descr = string_compose (_("Invert Monitor Chn %1"), chn);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "",
|
||||
action_descr = string_compose (_("Invert monitor channel %1"), chn+1);
|
||||
ActionManager::register_toggle_action (monitor_actions, action_name.c_str(), "", action_descr.c_str(),
|
||||
sigc::bind (sigc::mem_fun (*this, &MonitorSection::invert_channel), chn));
|
||||
|
||||
}
|
||||
@ -664,11 +660,11 @@ MonitorSection::register_actions ()
|
||||
Glib::RefPtr<ActionGroup> solo_actions = ActionGroup::create (X_("Solo"));
|
||||
RadioAction::Group solo_group;
|
||||
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-in-place", "",
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-in-place", "", "In-place solo",
|
||||
sigc::mem_fun (*this, &MonitorSection::solo_use_in_place));
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-afl", "",
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-afl", "", "After Fade Listen (AFL) solo",
|
||||
sigc::mem_fun (*this, &MonitorSection::solo_use_afl));
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-pfl", "",
|
||||
ActionManager::register_radio_action (solo_actions, solo_group, "solo-use-pfl", "", "Pre Fade Listen (PFL) solo",
|
||||
sigc::mem_fun (*this, &MonitorSection::solo_use_pfl));
|
||||
|
||||
ActionManager::add_action_group (solo_actions);
|
||||
|
@ -82,6 +82,19 @@ ActionManager::register_radio_action (RefPtr<ActionGroup> group, RadioAction::Gr
|
||||
return act;
|
||||
}
|
||||
|
||||
RefPtr<Action>
|
||||
ActionManager::register_radio_action (
|
||||
RefPtr<ActionGroup> group, RadioAction::Group& rgroup, string const & name, string const & label, string const & tooltip, slot<void> sl
|
||||
)
|
||||
{
|
||||
RefPtr<Action> act;
|
||||
|
||||
act = RadioAction::create (rgroup, name, label, tooltip);
|
||||
group->add (act, sl);
|
||||
|
||||
return act;
|
||||
}
|
||||
|
||||
RefPtr<Action>
|
||||
ActionManager::register_toggle_action (RefPtr<ActionGroup> group, const char * name, const char * label, slot<void> sl)
|
||||
{
|
||||
@ -93,6 +106,17 @@ ActionManager::register_toggle_action (RefPtr<ActionGroup> group, const char * n
|
||||
return act;
|
||||
}
|
||||
|
||||
RefPtr<Action>
|
||||
ActionManager::register_toggle_action (RefPtr<ActionGroup> group, string const & name, string const & label, string const & tooltip, slot<void> sl)
|
||||
{
|
||||
RefPtr<Action> act;
|
||||
|
||||
act = ToggleAction::create (name, label, tooltip);
|
||||
group->add (act, sl);
|
||||
|
||||
return act;
|
||||
}
|
||||
|
||||
bool
|
||||
ActionManager::lookup_entry (const ustring accel_path, Gtk::AccelKey& key)
|
||||
{
|
||||
@ -117,7 +141,7 @@ struct SortActionsByLabel {
|
||||
};
|
||||
|
||||
void
|
||||
ActionManager::get_all_actions (vector<string>& groups, vector<string>& names, vector<AccelKey>& bindings)
|
||||
ActionManager::get_all_actions (vector<string>& groups, vector<string>& names, vector<string>& tooltips, vector<AccelKey>& bindings)
|
||||
{
|
||||
/* the C++ API for functions used here appears to be broken in
|
||||
gtkmm2.6, so we fall back to the C level.
|
||||
@ -152,6 +176,7 @@ ActionManager::get_all_actions (vector<string>& groups, vector<string>& names, v
|
||||
|
||||
groups.push_back (gtk_action_group_get_name(group));
|
||||
names.push_back (accel_path.substr (accel_path.find_last_of ('/') + 1));
|
||||
tooltips.push_back ((*a)->get_tooltip ());
|
||||
|
||||
AccelKey key;
|
||||
lookup_entry (accel_path, key);
|
||||
@ -161,7 +186,7 @@ ActionManager::get_all_actions (vector<string>& groups, vector<string>& names, v
|
||||
}
|
||||
|
||||
void
|
||||
ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& keys, vector<AccelKey>& bindings)
|
||||
ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& tooltips, vector<string>& keys, vector<AccelKey>& bindings)
|
||||
{
|
||||
/* the C++ API for functions used here appears to be broken in
|
||||
gtkmm2.6, so we fall back to the C level.
|
||||
@ -192,11 +217,12 @@ ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, ve
|
||||
|
||||
for (action_list::iterator a = the_acts.begin(); a != the_acts.end(); ++a) {
|
||||
|
||||
string accel_path = (*a)->get_accel_path ();
|
||||
ustring label = (*a)->property_label();
|
||||
ustring const label = (*a)->property_label ();
|
||||
string const accel_path = (*a)->get_accel_path ();
|
||||
|
||||
names.push_back (label);
|
||||
paths.push_back (accel_path);
|
||||
tooltips.push_back ((*a)->get_tooltip ());
|
||||
|
||||
AccelKey key;
|
||||
keys.push_back (get_key_representation (accel_path, key));
|
||||
|
@ -58,23 +58,29 @@ namespace ActionManager {
|
||||
const char * name, const char * label, sigc::slot<void> sl,
|
||||
guint key, Gdk::ModifierType mods);
|
||||
extern Glib::RefPtr<Gtk::Action> register_radio_action (Glib::RefPtr<Gtk::ActionGroup> group, Gtk::RadioAction::Group&,
|
||||
const char * name, const char * label, sigc::slot<void> sl);
|
||||
const char * name, const char * label, sigc::slot<void> sl);
|
||||
extern Glib::RefPtr<Gtk::Action> register_radio_action (Glib::RefPtr<Gtk::ActionGroup> group, Gtk::RadioAction::Group&,
|
||||
std::string const &, std::string const &, std::string const &, sigc::slot<void> sl);
|
||||
|
||||
extern Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group,
|
||||
const char * name, const char * label, sigc::slot<void> sl,
|
||||
guint key, Gdk::ModifierType mods);
|
||||
extern Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group,
|
||||
const char * name, const char * label, sigc::slot<void> sl);
|
||||
std::string const &, std::string const &, std::string const &, sigc::slot<void> sl);
|
||||
extern Glib::RefPtr<Gtk::Action> register_toggle_action (Glib::RefPtr<Gtk::ActionGroup> group,
|
||||
const char * name, const char * label, sigc::slot<void> sl);
|
||||
|
||||
extern bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key);
|
||||
|
||||
extern void get_all_actions (std::vector<std::string>& names,
|
||||
std::vector<std::string>& paths,
|
||||
std::vector<std::string>& tooltips,
|
||||
std::vector<std::string>& keys,
|
||||
std::vector<Gtk::AccelKey>& bindings);
|
||||
|
||||
extern void get_all_actions (std::vector<std::string>& groups,
|
||||
std::vector<std::string>& paths,
|
||||
std::vector<std::string>& tooltips,
|
||||
std::vector<Gtk::AccelKey>& bindings);
|
||||
|
||||
extern void uncheck_toggleaction (std::string);
|
||||
|
@ -535,9 +535,10 @@ Keyboard::load_keybindings (string path)
|
||||
|
||||
vector<string> groups;
|
||||
vector<string> names;
|
||||
vector<string> tooltips;
|
||||
vector<AccelKey> bindings;
|
||||
|
||||
ActionManager::get_all_actions (groups, names, bindings);
|
||||
ActionManager::get_all_actions (groups, names, tooltips, bindings);
|
||||
|
||||
vector<string>::iterator g;
|
||||
vector<AccelKey>::iterator b;
|
||||
|
Loading…
Reference in New Issue
Block a user