From 500ccb60b338db9cf7ca778544b8285ddce6f8b7 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Wed, 3 Jul 2019 21:38:06 -0400 Subject: [PATCH] Free ControlToolBar from cycles. That's all the toolbars now! --- src/AdornedRulerPanel.cpp | 6 +++--- src/toolbars/ControlToolBar.cpp | 14 +------------- src/toolbars/ControlToolBar.h | 2 -- src/tracks/ui/Scrubbing.cpp | 10 ++++++++++ src/tracks/ui/Scrubbing.h | 2 ++ 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/AdornedRulerPanel.cpp b/src/AdornedRulerPanel.cpp index 900a7fcb1..4b1e2846d 100644 --- a/src/AdornedRulerPanel.cpp +++ b/src/AdornedRulerPanel.cpp @@ -45,7 +45,7 @@ #include "ViewInfo.h" #include "prefs/TracksBehaviorsPrefs.h" #include "prefs/TracksPrefs.h" -#include "toolbars/ControlToolBar.h" +#include "toolbars/ToolBar.h" #include "tracks/ui/Scrubbing.h" #include "tracks/ui/TrackView.h" #include "widgets/AButton.h" @@ -572,7 +572,7 @@ public: static std::shared_ptr HitTest( const AudacityProject *pProject, wxCoord xx ) { - if( ControlToolBar::Get( *pProject ) + if( Scrubber::Get( *pProject ) .IsTransportingPinned() && ProjectAudioIO::Get( *pProject ).IsAudioActive() ) { @@ -2068,7 +2068,7 @@ void AdornedRulerPanel::DoDrawIndicator dc->DrawPolygon( 3, tri ); } else { - bool pinned = ControlToolBar::Get( *mProject ).IsTransportingPinned(); + bool pinned = Scrubber::Get( *mProject ).IsTransportingPinned(); wxBitmap & bmp = theTheme.Bitmap( pinned ? (playing ? bmpPlayPointerPinned : bmpRecordPointerPinned) : (playing ? bmpPlayPointer : bmpRecordPointer) diff --git a/src/toolbars/ControlToolBar.cpp b/src/toolbars/ControlToolBar.cpp index 7a3cd31d9..a6ed86b01 100644 --- a/src/toolbars/ControlToolBar.cpp +++ b/src/toolbars/ControlToolBar.cpp @@ -74,7 +74,6 @@ #include "../FileNames.h" #include "../tracks/ui/Scrubbing.h" -#include "../prefs/TracksPrefs.h" #include "../toolbars/ToolManager.h" IMPLEMENT_CLASS(ControlToolBar, ToolBar); @@ -745,20 +744,9 @@ void ControlToolBar::UpdateStatusBar() ); } -bool ControlToolBar::IsTransportingPinned() const -{ - if (!TracksPrefs::GetPinnedHeadPreference()) - return false; - const auto &scrubber = Scrubber::Get( mProject ); - return - !(scrubber.HasMark() && - !scrubber.WasSpeedPlaying() && - !Scrubber::ShouldScrubPinned()); -} - void ControlToolBar::StartScrollingIfPreferred() { - if ( IsTransportingPinned() ) + if ( Scrubber::Get( mProject ).IsTransportingPinned() ) StartScrolling(); #ifdef __WXMAC__ else if (Scrubber::Get( mProject ).HasMark()) { diff --git a/src/toolbars/ControlToolBar.h b/src/toolbars/ControlToolBar.h index 3d6299e5f..1e8004694 100644 --- a/src/toolbars/ControlToolBar.h +++ b/src/toolbars/ControlToolBar.h @@ -36,8 +36,6 @@ class ControlToolBar final : public ToolBar { ControlToolBar( AudacityProject &project ); virtual ~ControlToolBar(); - bool IsTransportingPinned() const; - static ControlToolBar *Find( AudacityProject &project ); static ControlToolBar &Get( AudacityProject &project ); static const ControlToolBar &Get( const AudacityProject &project ); diff --git a/src/tracks/ui/Scrubbing.cpp b/src/tracks/ui/Scrubbing.cpp index 6d236b3e7..6e7dd1470 100644 --- a/src/tracks/ui/Scrubbing.cpp +++ b/src/tracks/ui/Scrubbing.cpp @@ -687,6 +687,16 @@ void Scrubber::ContinueScrubbingUI() } } +bool Scrubber::IsTransportingPinned() const +{ + if (!TracksPrefs::GetPinnedHeadPreference()) + return false; + return + !(HasMark() && + !WasSpeedPlaying() && + !ShouldScrubPinned()); +} + void Scrubber::StartPolling() { mPaused = false; diff --git a/src/tracks/ui/Scrubbing.h b/src/tracks/ui/Scrubbing.h index 8beb62ac9..0cfa1a26c 100644 --- a/src/tracks/ui/Scrubbing.h +++ b/src/tracks/ui/Scrubbing.h @@ -127,6 +127,8 @@ public: bool IsPaused() const; void CheckMenuItems(); + bool IsTransportingPinned() const; + private: void StartPolling(); void StopPolling();