mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 08:36:32 +01:00
fix up apparent design thinkos in US2400 key binding handler
This commit is contained in:
parent
444ef73c7d
commit
2398f6127f
2 changed files with 15 additions and 12 deletions
|
|
@ -353,7 +353,7 @@ US2400ProtocolGUI::make_action_renderer (Glib::RefPtr<TreeStore> model, Gtk::Tre
|
||||||
renderer->property_editable() = true;
|
renderer->property_editable() = true;
|
||||||
renderer->property_text_column() = 0;
|
renderer->property_text_column() = 0;
|
||||||
renderer->property_has_entry() = false;
|
renderer->property_has_entry() = false;
|
||||||
renderer->signal_edited().connect (sigc::bind (sigc::mem_fun(*this, &US2400ProtocolGUI::action_changed), column));
|
renderer->signal_changed().connect (sigc::bind (sigc::mem_fun(*this, &US2400ProtocolGUI::action_changed), column));
|
||||||
|
|
||||||
return renderer;
|
return renderer;
|
||||||
}
|
}
|
||||||
|
|
@ -437,26 +437,31 @@ US2400ProtocolGUI::refresh_function_key_editor ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
US2400ProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib::ustring &text, TreeModelColumnBase col)
|
US2400ProtocolGUI::action_changed (const Glib::ustring &sPath, const TreeModel::iterator & iter, TreeModelColumnBase col)
|
||||||
{
|
{
|
||||||
|
string action_path = (*iter)[action_model.columns().path];
|
||||||
|
|
||||||
// Remove Binding is not in the action map but still valid
|
// Remove Binding is not in the action map but still valid
|
||||||
bool remove (false);
|
|
||||||
if (text == "Remove Binding") {
|
bool remove = false;
|
||||||
|
|
||||||
|
if (action_path == "Remove Binding") {
|
||||||
remove = true;
|
remove = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Gtk::TreePath path(sPath);
|
Gtk::TreePath path(sPath);
|
||||||
Gtk::TreeModel::iterator row = function_key_model->get_iter(path);
|
Gtk::TreeModel::iterator row = function_key_model->get_iter(path);
|
||||||
|
|
||||||
if (row) {
|
if (row) {
|
||||||
|
|
||||||
std::map<std::string,std::string>::iterator i = action_map.find (text);
|
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (action_path, false);
|
||||||
|
|
||||||
if (i == action_map.end()) {
|
if (!act) {
|
||||||
|
cerr << action_path << " not found in action map\n";
|
||||||
if (!remove) {
|
if (!remove) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (i->second, false);
|
|
||||||
|
|
||||||
if (act || remove) {
|
if (act || remove) {
|
||||||
/* update visible text, using string supplied by
|
/* update visible text, using string supplied by
|
||||||
|
|
@ -467,7 +472,7 @@ US2400ProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib::ustri
|
||||||
Glib::ustring dot = "\u2022";
|
Glib::ustring dot = "\u2022";
|
||||||
(*row).set_value (col.index(), dot);
|
(*row).set_value (col.index(), dot);
|
||||||
} else {
|
} else {
|
||||||
(*row).set_value (col.index(), text);
|
(*row).set_value (col.index(), act->get_label());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* update the current DeviceProfile, using the full
|
/* update the current DeviceProfile, using the full
|
||||||
|
|
@ -499,7 +504,7 @@ US2400ProtocolGUI::action_changed (const Glib::ustring &sPath, const Glib::ustri
|
||||||
if (remove) {
|
if (remove) {
|
||||||
_cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, "");
|
_cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, "");
|
||||||
} else {
|
} else {
|
||||||
_cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, i->second);
|
_cp.device_profile().set_button_action ((*row)[function_key_columns.id], modifier, action_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
_ignore_profile_changed = true;
|
_ignore_profile_changed = true;
|
||||||
|
|
|
||||||
|
|
@ -106,13 +106,11 @@ class US2400ProtocolGUI : public Gtk::Notebook
|
||||||
|
|
||||||
void refresh_function_key_editor ();
|
void refresh_function_key_editor ();
|
||||||
void build_function_key_editor ();
|
void build_function_key_editor ();
|
||||||
void action_changed (const Glib::ustring &sPath, const Glib::ustring &text, Gtk::TreeModelColumnBase);
|
void action_changed (const Glib::ustring &sPath, const Gtk::TreeModel::iterator &, Gtk::TreeModelColumnBase);
|
||||||
Gtk::CellRendererCombo* make_action_renderer (Glib::RefPtr<Gtk::TreeStore> model, Gtk::TreeModelColumnBase);
|
Gtk::CellRendererCombo* make_action_renderer (Glib::RefPtr<Gtk::TreeStore> model, Gtk::TreeModelColumnBase);
|
||||||
|
|
||||||
void profile_combo_changed ();
|
void profile_combo_changed ();
|
||||||
|
|
||||||
std::map<std::string,std::string> action_map; // map from action names to paths
|
|
||||||
|
|
||||||
Gtk::Widget* device_dependent_widget ();
|
Gtk::Widget* device_dependent_widget ();
|
||||||
Gtk::Widget* _device_dependent_widget;
|
Gtk::Widget* _device_dependent_widget;
|
||||||
int device_dependent_row;
|
int device_dependent_row;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue