fix clear region cue markers operation to only apply to cue markers within the selected region(s)
This commit is contained in:
parent
193cebc912
commit
301b2be5e3
@ -8946,12 +8946,30 @@ Editor::clear_region_markers ()
|
|||||||
bool in_command = false;
|
bool in_command = false;
|
||||||
|
|
||||||
for (RegionSelection::iterator r = rs.begin(); r != rs.end(); ++r) {
|
for (RegionSelection::iterator r = rs.begin(); r != rs.end(); ++r) {
|
||||||
|
|
||||||
|
CueMarkers rcm;
|
||||||
|
|
||||||
|
(*r)->region()->get_cue_markers (rcm, true);
|
||||||
|
|
||||||
|
if (rcm.empty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
SourceList & sources = (*r)->region()->sources_for_edit ();
|
SourceList & sources = (*r)->region()->sources_for_edit ();
|
||||||
|
|
||||||
for (SourceList::iterator s = sources.begin(); s != sources.end(); ++s) {
|
for (SourceList::iterator s = sources.begin(); s != sources.end(); ++s) {
|
||||||
|
|
||||||
XMLNode* before_cues = (*s)->get_state().child (X_("Cues"));
|
XMLNode* before_cues = (*s)->get_state().child (X_("Cues"));
|
||||||
|
bool failed = false;
|
||||||
|
|
||||||
if (!(*s)->clear_cue_markers ()) {
|
for (CueMarkers::iterator c = rcm.begin(); c != rcm.end(); ++c) {
|
||||||
|
if (!(*s)->remove_cue_marker (*c)) {
|
||||||
|
failed = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (failed) {
|
||||||
delete before_cues;
|
delete before_cues;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user