From ebb6e5de1c814fffabeec867a57c15c103488217 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Wed, 25 Nov 2020 13:31:04 -0500 Subject: [PATCH] Bug2600: Should rename current undo state after compacting --- src/ProjectFileManager.cpp | 4 ++++ src/UndoManager.cpp | 11 +++++++++++ src/UndoManager.h | 3 +++ 3 files changed, 18 insertions(+) diff --git a/src/ProjectFileManager.cpp b/src/ProjectFileManager.cpp index adba52ccc..b3266b65f 100644 --- a/src/ProjectFileManager.cpp +++ b/src/ProjectFileManager.cpp @@ -1272,5 +1272,9 @@ void ProjectFileManager::Compact() .Format(Internat::FormatSize((before - after).GetValue())), XO("Compact Project")); } + + undoManager.RenameState( undoManager.GetCurrentState(), + XO("Compacted project file"), + XO("Compact") ); } } diff --git a/src/UndoManager.cpp b/src/UndoManager.cpp index 27ba07c7e..5d17ccae6 100644 --- a/src/UndoManager.cpp +++ b/src/UndoManager.cpp @@ -308,6 +308,17 @@ void UndoManager::ModifyState(const TrackList * l, mProject.QueueEvent( safenew wxCommandEvent{ EVT_UNDO_MODIFIED } ); } +void UndoManager::RenameState( int state, + const TranslatableString &longDescription, + const TranslatableString &shortDescription) +{ + if (state >= 0 && state < stack.size() ) { + auto &theState = *stack[state]; + theState.description = longDescription; + theState.shortDescription = shortDescription; + } +} + void UndoManager::PushState(const TrackList * l, const SelectedRegion &selectedRegion, const std::shared_ptr &tags, diff --git a/src/UndoManager.h b/src/UndoManager.h index 4da773c7d..f6eae46fb 100644 --- a/src/UndoManager.h +++ b/src/UndoManager.h @@ -151,6 +151,9 @@ class AUDACITY_DLL_API UndoManager final UndoPush flags = UndoPush::NONE); void ModifyState(const TrackList * l, const SelectedRegion &selectedRegion, const std::shared_ptr &tags); + void RenameState( int state, + const TranslatableString &longDescription, + const TranslatableString &shortDescription); void AbandonRedo(); void ClearStates(); void RemoveStates(