more inconsistent menu item fiddling.
This commit is contained in:
parent
1cfa6bd69f
commit
52d3c2216d
@ -5743,22 +5743,17 @@ Editor::toggle_region_lock_style ()
|
||||
return;
|
||||
}
|
||||
|
||||
bool have_position_lock_style_audio = false;
|
||||
bool have_position_lock_style_music = false;
|
||||
for (list<RegionView*>::const_iterator i = rs.begin(); i != rs.end(); ++i) {
|
||||
if ((*i)->region()->position_lock_style() == MusicTime) {
|
||||
have_position_lock_style_music = true;
|
||||
} else {
|
||||
have_position_lock_style_audio = true;
|
||||
}
|
||||
}
|
||||
bool const inconsistent = have_position_lock_style_audio && have_position_lock_style_music;
|
||||
Glib::RefPtr<ToggleAction> a = Glib::RefPtr<ToggleAction>::cast_dynamic (_region_actions->get_action("toggle-region-lock-style"));
|
||||
vector<Widget*> proxies = a->get_proxies();
|
||||
CheckMenuItem* cmi = dynamic_cast<CheckMenuItem*> (proxies.front());
|
||||
|
||||
assert (cmi);
|
||||
|
||||
begin_reversible_command (_("toggle region lock style"));
|
||||
|
||||
for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) {
|
||||
(*i)->region()->clear_changes ();
|
||||
PositionLockStyle const ns = ((*i)->region()->position_lock_style() == AudioTime && !inconsistent) ? MusicTime : AudioTime;
|
||||
PositionLockStyle const ns = ((*i)->region()->position_lock_style() == AudioTime && !cmi->get_inconsistent()) ? MusicTime : AudioTime;
|
||||
(*i)->region()->set_position_lock_style (ns);
|
||||
_session->add_command (new StatefulDiffCommand ((*i)->region()));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user