TrackPanel listens for Undo events, doesn't intrude in ProjectHistory
This commit is contained in:
parent
d1a1b112ba
commit
d85b297ca5
|
@ -15,7 +15,6 @@ Paul Licameli split from ProjectManager.cpp
|
|||
#include "ProjectFileIO.h"
|
||||
#include "Tags.h"
|
||||
#include "Track.h"
|
||||
#include "TrackPanel.h"
|
||||
#include "UndoManager.h"
|
||||
#include "ViewInfo.h"
|
||||
#include "ondemand/ODComputeSummaryTask.h"
|
||||
|
@ -183,12 +182,8 @@ void ProjectHistory::PopState(const UndoState &state)
|
|||
void ProjectHistory::SetStateTo(unsigned int n)
|
||||
{
|
||||
auto &project = mProject;
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &undoManager = UndoManager::Get( project );
|
||||
|
||||
undoManager.SetStateTo(n,
|
||||
[this]( const UndoState &state ){ PopState(state); } );
|
||||
|
||||
trackPanel.SetFocusedTrack(NULL);
|
||||
trackPanel.Refresh(false);
|
||||
}
|
||||
|
|
|
@ -78,6 +78,8 @@ is time to refresh some aspect of the screen.
|
|||
#include "TrackPanelResizeHandle.h"
|
||||
//#define DEBUG_DRAW_TIMING 1
|
||||
|
||||
#include "UndoManager.h"
|
||||
|
||||
#include "AColor.h"
|
||||
#include "AllThemeResources.h"
|
||||
#include "AudioIO.h"
|
||||
|
@ -320,6 +322,8 @@ TrackPanel::TrackPanel(wxWindow * parent, wxWindowID id,
|
|||
theProject->Bind(
|
||||
EVT_PROJECT_SETTINGS_CHANGE, &TrackPanel::OnProjectSettingsChange, this);
|
||||
|
||||
theProject->Bind(EVT_UNDO_RESET, &TrackPanel::OnUndoReset, this);
|
||||
|
||||
UpdatePrefs();
|
||||
}
|
||||
|
||||
|
@ -554,6 +558,13 @@ double TrackPanel::GetScreenEndTime() const
|
|||
return mViewInfo->PositionToTime(width, 0, true);
|
||||
}
|
||||
|
||||
void TrackPanel::OnUndoReset( wxCommandEvent &event )
|
||||
{
|
||||
event.Skip();
|
||||
SetFocusedTrack( nullptr );
|
||||
Refresh( false );
|
||||
}
|
||||
|
||||
/// AS: OnPaint( ) is called during the normal course of
|
||||
/// completing a repaint operation.
|
||||
void TrackPanel::OnPaint(wxPaintEvent & /* event */)
|
||||
|
|
|
@ -295,6 +295,8 @@ class AUDACITY_DLL_API TrackPanel final
|
|||
// Either argument may be NULL
|
||||
void GetTracksUsableArea(int *width, int *height) const;
|
||||
|
||||
void OnUndoReset( wxCommandEvent &event );
|
||||
|
||||
void Refresh
|
||||
(bool eraseBackground = true, const wxRect *rect = (const wxRect *) NULL)
|
||||
override;
|
||||
|
|
Loading…
Reference in New Issue