Lower ViewActions as member functions of ProjectWindow
This commit is contained in:
parent
b6077fd3cd
commit
c6478f43af
|
@ -104,12 +104,6 @@ public:
|
|||
// Exported helper functions from various menu handling source files
|
||||
|
||||
|
||||
/// Namespace for functions for View menu
|
||||
namespace ViewActions {
|
||||
double GetZoomOfToFit( const AudacityProject &project );
|
||||
void DoZoomFit( AudacityProject &project );
|
||||
}
|
||||
|
||||
/// Namespace for functions for Transport menu
|
||||
namespace TransportActions {
|
||||
void StopIfPaused( AudacityProject &project );
|
||||
|
|
|
@ -722,9 +722,10 @@ AudacityProject *ProjectManager::OpenProject(
|
|||
ProjectFileManager::Get( *pProject ).OpenFile( fileNameArg, addtohistory );
|
||||
pNewProject = nullptr;
|
||||
auto &projectFileIO = ProjectFileIO::Get( *pProject );
|
||||
if( projectFileIO.IsRecovered() )
|
||||
ProjectWindow::Get( *pProject ).Zoom(
|
||||
ViewActions::GetZoomOfToFit( *pProject ) );
|
||||
if( projectFileIO.IsRecovered() ) {
|
||||
auto &window = ProjectWindow::Get( *pProject );
|
||||
window.Zoom( window.GetZoomOfToFit() );
|
||||
}
|
||||
|
||||
return pProject;
|
||||
}
|
||||
|
|
|
@ -1606,7 +1606,7 @@ void ProjectWindow::ZoomAfterImport(Track *pTrack)
|
|||
auto &project = mProject;
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
|
||||
ViewActions::DoZoomFit( project );
|
||||
DoZoomFit();
|
||||
|
||||
trackPanel.SetFocus();
|
||||
RedrawProject();
|
||||
|
@ -1888,6 +1888,43 @@ void ProjectWindow::ZoomOutByFactor( double ZoomFactor )
|
|||
TP_ScrollWindow(newh);
|
||||
}
|
||||
|
||||
double ProjectWindow::GetZoomOfToFit() const
|
||||
{
|
||||
auto &project = mProject;
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &viewInfo = ViewInfo::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
|
||||
const double end = tracks.GetEndTime();
|
||||
const double start = viewInfo.bScrollBeyondZero
|
||||
? std::min( tracks.GetStartTime(), 0.0)
|
||||
: 0;
|
||||
const double len = end - start;
|
||||
|
||||
if (len <= 0.0)
|
||||
return viewInfo.GetZoom();
|
||||
|
||||
int w;
|
||||
trackPanel.GetTracksUsableArea(&w, NULL);
|
||||
w -= 10;
|
||||
return w/len;
|
||||
}
|
||||
|
||||
void ProjectWindow::DoZoomFit()
|
||||
{
|
||||
auto &project = mProject;
|
||||
auto &viewInfo = ViewInfo::Get( project );
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &window = *this;
|
||||
|
||||
const double start = viewInfo.bScrollBeyondZero
|
||||
? std::min(tracks.GetStartTime(), 0.0)
|
||||
: 0;
|
||||
|
||||
window.Zoom( window.GetZoomOfToFit() );
|
||||
window.TP_ScrollWindow(start);
|
||||
}
|
||||
|
||||
static struct InstallTopPanelHook{ InstallTopPanelHook() {
|
||||
ToolManager::SetGetTopPanelHook(
|
||||
[]( wxWindow &window ){
|
||||
|
|
|
@ -89,6 +89,8 @@ public:
|
|||
void ZoomOutByFactor( double ZoomFactor );
|
||||
void ZoomBy(double multiplier);
|
||||
void ZoomAfterImport(Track *pTrack);
|
||||
double GetZoomOfToFit() const;
|
||||
void DoZoomFit();
|
||||
|
||||
void ApplyUpdatedTheme();
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ void EffectManager::UnregisterEffect(const PluginID & ID)
|
|||
if (type == EffectTypeGenerate)
|
||||
{
|
||||
if (count == 0 || (clean && selectedRegion.t0() == 0.0))
|
||||
ViewActions::DoZoomFit(project);
|
||||
window.DoZoomFit();
|
||||
// trackPanel->Refresh(false);
|
||||
}
|
||||
window.RedrawProject();
|
||||
|
|
|
@ -285,9 +285,8 @@ void DoAlign
|
|||
if (index == kAlignEndToEnd)
|
||||
newPos += (trackEnd - trackStart);
|
||||
}
|
||||
if (index == kAlignEndToEnd) {
|
||||
ViewActions::DoZoomFit(project);
|
||||
}
|
||||
if (index == kAlignEndToEnd)
|
||||
window.DoZoomFit();
|
||||
}
|
||||
|
||||
if (delta != 0.0) {
|
||||
|
|
|
@ -88,7 +88,8 @@ double GetZoomOfPreset( const AudacityProject &project, int preset )
|
|||
const double pixelsPerUnit = 5.0;
|
||||
|
||||
double result = 1.0;
|
||||
double zoomToFit = ViewActions::GetZoomOfToFit( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
double zoomToFit = window.GetZoomOfToFit();
|
||||
using namespace WaveTrackViewConstants;
|
||||
switch( preset ){
|
||||
default:
|
||||
|
@ -145,47 +146,6 @@ double GetZoomOfPreset( const AudacityProject &project, int preset )
|
|||
|
||||
}
|
||||
|
||||
namespace ViewActions {
|
||||
|
||||
// exported helper functions
|
||||
|
||||
double GetZoomOfToFit( const AudacityProject &project )
|
||||
{
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &viewInfo = ViewInfo::Get( project );
|
||||
auto &trackPanel = TrackPanel::Get( project );
|
||||
|
||||
const double end = tracks.GetEndTime();
|
||||
const double start = viewInfo.bScrollBeyondZero
|
||||
? std::min( tracks.GetStartTime(), 0.0)
|
||||
: 0;
|
||||
const double len = end - start;
|
||||
|
||||
if (len <= 0.0)
|
||||
return viewInfo.GetZoom();
|
||||
|
||||
int w;
|
||||
trackPanel.GetTracksUsableArea(&w, NULL);
|
||||
w -= 10;
|
||||
return w/len;
|
||||
}
|
||||
|
||||
void DoZoomFit(AudacityProject &project)
|
||||
{
|
||||
auto &viewInfo = ViewInfo::Get( project );
|
||||
auto &tracks = TrackList::Get( project );
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
|
||||
const double start = viewInfo.bScrollBeyondZero
|
||||
? std::min(tracks.GetStartTime(), 0.0)
|
||||
: 0;
|
||||
|
||||
window.Zoom( GetZoomOfToFit( project ) );
|
||||
window.TP_ScrollWindow(start);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace {
|
||||
void DoZoomFitV(AudacityProject &project)
|
||||
{
|
||||
|
@ -288,7 +248,9 @@ void OnZoomToggle(const CommandContext &context)
|
|||
|
||||
void OnZoomFit(const CommandContext &context)
|
||||
{
|
||||
DoZoomFit( context.project );
|
||||
auto &project = context.project;
|
||||
auto &window = ProjectWindow::Get( project );
|
||||
window.DoZoomFit();
|
||||
}
|
||||
|
||||
void OnZoomFitV(const CommandContext &context)
|
||||
|
|
Loading…
Reference in New Issue