Simplify TemporaryClipRemover

This commit is contained in:
Paul Licameli 2020-09-20 18:51:58 -04:00 committed by James Crook
parent 2b542bf734
commit cc554350aa
1 changed files with 5 additions and 12 deletions

View File

@ -693,18 +693,13 @@ namespace {
detached[pair.first] = pair.second->Detach();
}
void Fail()
{
failed = true;
}
void Reinsert(
std::unordered_map< Track*, Track* > &correspondence )
std::unordered_map< Track*, Track* > *pCorrespondence )
{
for (auto &pair : detached) {
auto pTrack = pair.first;
if (!failed && correspondence.count(pTrack))
pTrack = correspondence[pTrack];
if (pCorrespondence && pCorrespondence->count(pTrack))
pTrack = (*pCorrespondence)[pTrack];
auto &pShifter = state.shifters[pTrack];
if (!pShifter->Attach( std::move( pair.second ) ))
MigrationFailure();
@ -713,7 +708,6 @@ namespace {
ClipMoveState &state;
DetachedIntervals detached;
bool failed = false;
};
}
@ -743,14 +737,13 @@ bool TimeShiftHandle::DoSlideVertical
if (!ok) {
// Failure, even with using tolerance.
remover.Fail();
remover.Reinsert( correspondence );
remover.Reinsert( nullptr );
return false;
}
// Make the offset permanent; start from a "clean slate"
state.mMouseClickX = xx;
remover.Reinsert( correspondence );
remover.Reinsert( &correspondence );
return true;
}