mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-21 08:27:13 +01:00
Accessors to get the project window...
... as a preparation for splitting up class AudacityProject. Use ProjectWindow as an alias for AudacityProject, and fetch it from the project with a static member function, where certain of its services are used; pretending they are not the same class. Use global accessor functions to get wxFrame from the project where only wxFrame's member functions are needed, so there will be less dependency on ProjectWindow when it becomes a distinct class.
This commit is contained in:
@@ -43,6 +43,7 @@ void DoMixAndRender
|
||||
auto rate = project.GetRate();
|
||||
auto defaultFormat = project.GetDefaultFormat();
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
MissingAliasFilesDialog::SetShouldShow(true);
|
||||
|
||||
@@ -105,13 +106,14 @@ void DoMixAndRender
|
||||
trackPanel.SetFocus();
|
||||
trackPanel.SetFocusedTrack(pNewLeft);
|
||||
trackPanel.EnsureVisible(pNewLeft);
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
}
|
||||
}
|
||||
|
||||
void DoPanTracks(AudacityProject &project, float PanValue)
|
||||
{
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
// count selected wave tracks
|
||||
const auto range = tracks.Any< WaveTrack >();
|
||||
@@ -122,7 +124,7 @@ void DoPanTracks(AudacityProject &project, float PanValue)
|
||||
for (auto left : count == 0 ? range : selectedRange )
|
||||
left->SetPan( PanValue );
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
|
||||
auto flags = UndoPush::AUTOSAVE;
|
||||
/*i18n-hint: One or more audio tracks have been panned*/
|
||||
@@ -156,6 +158,7 @@ void DoAlign
|
||||
{
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &selectedRegion = ViewInfo::Get( project ).selectedRegion;
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
wxString action;
|
||||
wxString shortAction;
|
||||
@@ -288,7 +291,7 @@ void DoAlign
|
||||
|
||||
project.PushState(action, shortAction);
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
}
|
||||
|
||||
#ifdef EXPERIMENTAL_SCOREALIGN
|
||||
@@ -700,6 +703,7 @@ void DoRemoveTrack(AudacityProject &project, Track * toRemove)
|
||||
{
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
// If it was focused, then NEW focus is the next or, if
|
||||
// unavailable, the previous track. (The NEW focus is set
|
||||
@@ -730,8 +734,8 @@ void DoRemoveTrack(AudacityProject &project, Track * toRemove)
|
||||
name),
|
||||
_("Track Remove"));
|
||||
|
||||
project.FixScrollbars();
|
||||
project.HandleResize();
|
||||
window.FixScrollbars();
|
||||
window.HandleResize();
|
||||
trackPanel.Refresh(false);
|
||||
}
|
||||
|
||||
@@ -798,6 +802,8 @@ void OnNewWaveTrack(const CommandContext &context)
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &trackFactory = TrackFactory::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
auto defaultFormat = project.GetDefaultFormat();
|
||||
auto rate = project.GetRate();
|
||||
|
||||
@@ -808,7 +814,7 @@ void OnNewWaveTrack(const CommandContext &context)
|
||||
|
||||
project.PushState(_("Created new audio track"), _("New Track"));
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
trackPanel.EnsureVisible(t);
|
||||
}
|
||||
|
||||
@@ -818,6 +824,8 @@ void OnNewStereoTrack(const CommandContext &context)
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &trackFactory = TrackFactory::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
auto defaultFormat = project.GetDefaultFormat();
|
||||
auto rate = project.GetRate();
|
||||
|
||||
@@ -833,7 +841,7 @@ void OnNewStereoTrack(const CommandContext &context)
|
||||
|
||||
project.PushState(_("Created new stereo audio track"), _("New Track"));
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
trackPanel.EnsureVisible(left);
|
||||
}
|
||||
|
||||
@@ -843,6 +851,7 @@ void OnNewLabelTrack(const CommandContext &context)
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &trackFactory = TrackFactory::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
auto t = tracks.Add( trackFactory.NewLabelTrack() );
|
||||
|
||||
@@ -852,7 +861,7 @@ void OnNewLabelTrack(const CommandContext &context)
|
||||
|
||||
project.PushState(_("Created new label track"), _("New Track"));
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
trackPanel.EnsureVisible(t);
|
||||
}
|
||||
|
||||
@@ -862,6 +871,7 @@ void OnNewTimeTrack(const CommandContext &context)
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &trackFactory = TrackFactory::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
if (tracks.GetTimeTrack()) {
|
||||
AudacityMessageBox(_("This version of Audacity only allows one time track for each project window."));
|
||||
@@ -876,7 +886,7 @@ void OnNewTimeTrack(const CommandContext &context)
|
||||
|
||||
project.PushState(_("Created new time track"), _("New Track"));
|
||||
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
trackPanel.EnsureVisible(t);
|
||||
}
|
||||
|
||||
@@ -906,12 +916,13 @@ void OnResample(const CommandContext &context)
|
||||
auto projectRate = project.GetRate();
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &undoManager = UndoManager::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
int newRate;
|
||||
|
||||
while (true)
|
||||
{
|
||||
wxDialogWrapper dlg(&project, wxID_ANY, wxString(_("Resample")));
|
||||
wxDialogWrapper dlg(&window, wxID_ANY, wxString(_("Resample")));
|
||||
dlg.SetName(dlg.GetTitle());
|
||||
ShuttleGui S(&dlg, eIsCreating);
|
||||
wxString rate;
|
||||
@@ -970,7 +981,7 @@ void OnResample(const CommandContext &context)
|
||||
}
|
||||
|
||||
AudacityMessageBox(_("The entered value is invalid"), _("Error"),
|
||||
wxICON_ERROR, &project);
|
||||
wxICON_ERROR, &window);
|
||||
}
|
||||
|
||||
int ndx = 0;
|
||||
@@ -1000,10 +1011,10 @@ void OnResample(const CommandContext &context)
|
||||
}
|
||||
|
||||
undoManager.StopConsolidating();
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
|
||||
// Need to reset
|
||||
project.FinishAutoScroll();
|
||||
window.FinishAutoScroll();
|
||||
}
|
||||
|
||||
void OnRemoveTracks(const CommandContext &context)
|
||||
@@ -1015,6 +1026,8 @@ void OnMuteAllTracks(const CommandContext &context)
|
||||
{
|
||||
auto &project = context.project;
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
auto soloSimple = project.IsSoloSimple();
|
||||
auto soloNone = project.IsSoloNone();
|
||||
|
||||
@@ -1026,13 +1039,15 @@ void OnMuteAllTracks(const CommandContext &context)
|
||||
}
|
||||
|
||||
project.ModifyState(true);
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
}
|
||||
|
||||
void OnUnmuteAllTracks(const CommandContext &context)
|
||||
{
|
||||
auto &project = context.project;
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
auto soloSimple = project.IsSoloSimple();
|
||||
auto soloNone = project.IsSoloNone();
|
||||
|
||||
@@ -1044,7 +1059,7 @@ void OnUnmuteAllTracks(const CommandContext &context)
|
||||
}
|
||||
|
||||
project.ModifyState(true);
|
||||
project.RedrawProject();
|
||||
window.RedrawProject();
|
||||
}
|
||||
|
||||
void OnPanLeft(const CommandContext &context)
|
||||
|
||||
Reference in New Issue
Block a user