actually connect Editor to config state change system

git-svn-id: svn://localhost/ardour2/trunk@937 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2006-10-01 13:06:43 +00:00
parent ca7d9b4016
commit 0b6139304b
4 changed files with 92 additions and 82 deletions

View file

@ -850,6 +850,8 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
map_meter_hold (); map_meter_hold ();
} else if (PARAM_IS ("meter-falloff")) { } else if (PARAM_IS ("meter-falloff")) {
map_meter_falloff (); map_meter_falloff ();
} else if (PARAM_IS ("verify-remove-last-capture")) {
ActionManager::map_some_state ("options", "VerifyRemoveLastCapture", &Configuration::get_verify_remove_last_capture);
} }
#undef PARAM_IS #undef PARAM_IS

View file

@ -692,9 +692,10 @@ Editor::Editor (AudioEngine& eng)
ControlProtocol::ZoomOut.connect (bind (mem_fun (*this, &Editor::temporal_zoom_step), true)); ControlProtocol::ZoomOut.connect (bind (mem_fun (*this, &Editor::temporal_zoom_step), true));
ControlProtocol::ScrollTimeline.connect (mem_fun (*this, &Editor::control_scroll)); ControlProtocol::ScrollTimeline.connect (mem_fun (*this, &Editor::control_scroll));
Config->ParameterChanged.connect (mem_fun (*this, &Editor::parameter_changed));
constructed = true; constructed = true;
instant_save (); instant_save ();
} }
Editor::~Editor() Editor::~Editor()
@ -1175,8 +1176,7 @@ Editor::connect_to_session (Session *t)
loc->set_name (_("Punch")); loc->set_name (_("Punch"));
} }
update_loop_range_view (true); Config->map_parameters (mem_fun (*this, &Editor::parameter_changed));
update_punch_range_view (true);
session->StateSaved.connect (mem_fun(*this, &Editor::session_state_saved)); session->StateSaved.connect (mem_fun(*this, &Editor::session_state_saved));

View file

@ -489,33 +489,38 @@ Editor::update_smpte_mode ()
ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_smpte_mode)); ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_smpte_mode));
RefPtr<Action> act; RefPtr<Action> act;
const char* action = 0;
float frames = Config->get_smpte_frames_per_second(); float frames = Config->get_smpte_frames_per_second();
bool drop = Config->get_smpte_drop_frames(); bool drop = Config->get_smpte_drop_frames();
if ((frames < 23.976 * 1.0005) && !drop) if ((frames < 23.976 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte23976")); action = X_("Smpte23976");
else if ((frames < 24 * 1.0005) && !drop) else if ((frames < 24 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte24")); action = X_("Smpte24");
else if ((frames < 24.976 * 1.0005) && !drop) else if ((frames < 24.976 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte24976")); action = X_("Smpte24976");
else if ((frames < 25 * 1.0005) && !drop) else if ((frames < 25 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte25")); action = X_("Smpte25");
else if ((frames < 29.97 * 1.0005) && !drop) else if ((frames < 29.97 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997")); action = X_("Smpte2997");
else if ((frames < 29.97 * 1.0005) && drop) else if ((frames < 29.97 * 1.0005) && drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997drop")); action = X_("Smpte2997drop");
else if ((frames < 30 * 1.0005) && !drop) else if ((frames < 30 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte30")); action = X_("Smpte30");
else if ((frames < 30 * 1.0005) && drop) else if ((frames < 30 * 1.0005) && drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte30drop")); action = X_("Smpte30drop");
else if ((frames < 59.94 * 1.0005) && !drop) else if ((frames < 59.94 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte5994")); action = X_("Smpte5994");
else if ((frames < 60 * 1.0005) && !drop) else if ((frames < 60 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte60")); action = X_("Smpte60");
else else {
cerr << "Unexpected SMPTE value (" << frames << (drop ? "drop" : "") << ") in update_smpte_mode. Menu is probably wrong\n" << endl; fatal << string_compose (_("programming error: Unexpected SMPTE value (%1, drop = %2) in update_smpte_mode. Menu is probably wrong."),
frames, drop) << endmsg;
/*NOTREACHED*/
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) { if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act); RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
@ -531,28 +536,31 @@ Editor::update_video_pullup ()
ENSURE_GUI_THREAD (mem_fun(*this, &Editor::update_video_pullup)); ENSURE_GUI_THREAD (mem_fun(*this, &Editor::update_video_pullup));
RefPtr<Action> act; RefPtr<Action> act;
const char* action = 0;
float pullup = Config->get_video_pullup(); float pullup = Config->get_video_pullup();
if ( pullup < (-4.1667 - 0.1) * 0.99) { if ( pullup < (-4.1667 - 0.1) * 0.99) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1")); action = X_("PullupMinus4Minus1");
} else if ( pullup < (-4.1667) * 0.99 ) { } else if ( pullup < (-4.1667) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4")); action = X_("PullupMinus4");
} else if ( pullup < (-4.1667 + 0.1) * 0.99 ) { } else if ( pullup < (-4.1667 + 0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1")); action = X_("PullupMinus4Plus1");
} else if ( pullup < (-0.1) * 0.99 ) { } else if ( pullup < (-0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1")); action = X_("PullupMinus1");
} else if (pullup > (4.1667 + 0.1) * 0.99 ) { } else if (pullup > (4.1667 + 0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1")); action = X_("PullupPlus4Plus1");
} else if ( pullup > (4.1667) * 0.99 ) { } else if ( pullup > (4.1667) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4")); action = X_("PullupPlus4");
} else if ( pullup > (4.1667 - 0.1) * 0.99) { } else if ( pullup > (4.1667 - 0.1) * 0.99) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1")); action = X_("PullupPlus4Minus1");
} else if ( pullup > (0.1) * 0.99 ) { } else if ( pullup > (0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1")); action = X_("PullupPlus1");
} else } else {
act = ActionManager::get_action (X_("Editor"), X_("PullupNone")); action = X_("PullupNone");
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) { if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act); RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
@ -560,7 +568,6 @@ Editor::update_video_pullup ()
ract->set_active (true); ract->set_active (true);
} }
} }
} }
void void
@ -705,59 +712,64 @@ Editor::video_pullup_chosen (Session::PullupFormat pullup)
active. active.
*/ */
if (session) { const char* action = 0;
RefPtr<Action> act; RefPtr<Action> act;
float pull = 0.0; float pull = 0.0;
switch (pullup) { switch (pullup) {
case Session::pullup_Plus4Plus1:{ case Session::pullup_Plus4Plus1:
pull = 4.1667 + 0.1; pull = 4.1667 + 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1")); action = X_("PullupPlus4Plus1");
} break; break;
case Session::pullup_Plus4:{ case Session::pullup_Plus4:
pull = 4.1667; pull = 4.1667;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4")); action = X_("PullupPlus4");
} break; break;
case Session::pullup_Plus4Minus1:{ case Session::pullup_Plus4Minus1:
pull = 4.1667 - 0.1; pull = 4.1667 - 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1")); action = X_("PullupPlus4Minus1");
} break; break;
case Session::pullup_Plus1:{ case Session::pullup_Plus1:
pull = 0.1; pull = 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1")); action = X_("PullupPlus1");
} break; break;
case Session::pullup_None:{ case Session::pullup_None:
pull = 0.0; pull = 0.0;
act = ActionManager::get_action (X_("Editor"), X_("PullupNone")); action = X_("PullupNone");
} break; break;
case Session::pullup_Minus1:{ case Session::pullup_Minus1:
pull = -0.1; pull = -0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1")); action = X_("PullupMinus1");
} break; break;
case Session::pullup_Minus4Plus1:{ case Session::pullup_Minus4Plus1:
pull = -4.1667 + 0.1; pull = -4.1667 + 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1")); action = X_("PullupMinus4Plus1");
} break; break;
case Session::pullup_Minus4:{ case Session::pullup_Minus4:
pull = -4.1667; pull = -4.1667;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4")); action = X_("PullupMinus4");
} break; break;
case Session::pullup_Minus4Minus1:{ case Session::pullup_Minus4Minus1:
pull = -4.1667 - 0.1; pull = -4.1667 - 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1")); action = X_("PullupMinus4Minus1");
} break; break;
default: default:
cerr << "Session received unexpected pullup type" << endl; fatal << string_compose (_("programming error: %1"), "Session received unexpected pullup type") << endmsg;
/*NOTREACHED*/
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
Config->set_video_pullup ( pull );
} }
if (act) { } else {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act); error << string_compose (_("programming error: %1"), "Editor::video_pullup_chosen could not find action to match pullup.") << endmsg;
if (ract && ract->get_active()) {
Config->set_video_pullup ( pull );
}
} else cerr << "Editor::video_pullup_chosen could not find action to match pullup." << endl;
} }
} }
@ -807,10 +819,7 @@ Editor::parameter_changed (const char* parameter_name)
ActionManager::map_some_state ("Editor", "toggle-auto-xfade", &Configuration::get_auto_xfade); ActionManager::map_some_state ("Editor", "toggle-auto-xfade", &Configuration::get_auto_xfade);
} else if (PARAM_IS ("edit-mode")) { } else if (PARAM_IS ("edit-mode")) {
edit_mode_selector.set_active_text (edit_mode_to_string (Config->get_edit_mode())); edit_mode_selector.set_active_text (edit_mode_to_string (Config->get_edit_mode()));
} else if (PARAM_IS ("native-file-data-format")) {
} }
#undef PARAM_IS #undef PARAM_IS
} }

View file

@ -71,8 +71,7 @@ fit_to_pixels (const ustring& str, int pixel_width, Pango::FontDescription& font
break; break;
} }
ustr.erase (last); ustr.erase (last--);
--last;
} }
return ustr; return ustr;