mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-24 17:41:13 +01:00
Simplify TemporaryClipRemover
This commit is contained in:
committed by
James Crook
parent
2b542bf734
commit
cc554350aa
@@ -693,18 +693,13 @@ namespace {
|
|||||||
detached[pair.first] = pair.second->Detach();
|
detached[pair.first] = pair.second->Detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Fail()
|
|
||||||
{
|
|
||||||
failed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reinsert(
|
void Reinsert(
|
||||||
std::unordered_map< Track*, Track* > &correspondence )
|
std::unordered_map< Track*, Track* > *pCorrespondence )
|
||||||
{
|
{
|
||||||
for (auto &pair : detached) {
|
for (auto &pair : detached) {
|
||||||
auto pTrack = pair.first;
|
auto pTrack = pair.first;
|
||||||
if (!failed && correspondence.count(pTrack))
|
if (pCorrespondence && pCorrespondence->count(pTrack))
|
||||||
pTrack = correspondence[pTrack];
|
pTrack = (*pCorrespondence)[pTrack];
|
||||||
auto &pShifter = state.shifters[pTrack];
|
auto &pShifter = state.shifters[pTrack];
|
||||||
if (!pShifter->Attach( std::move( pair.second ) ))
|
if (!pShifter->Attach( std::move( pair.second ) ))
|
||||||
MigrationFailure();
|
MigrationFailure();
|
||||||
@@ -713,7 +708,6 @@ namespace {
|
|||||||
|
|
||||||
ClipMoveState &state;
|
ClipMoveState &state;
|
||||||
DetachedIntervals detached;
|
DetachedIntervals detached;
|
||||||
bool failed = false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -743,14 +737,13 @@ bool TimeShiftHandle::DoSlideVertical
|
|||||||
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
// Failure, even with using tolerance.
|
// Failure, even with using tolerance.
|
||||||
remover.Fail();
|
remover.Reinsert( nullptr );
|
||||||
remover.Reinsert( correspondence );
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the offset permanent; start from a "clean slate"
|
// Make the offset permanent; start from a "clean slate"
|
||||||
state.mMouseClickX = xx;
|
state.mMouseClickX = xx;
|
||||||
remover.Reinsert( correspondence );
|
remover.Reinsert( &correspondence );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user