1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 08:29:27 +02:00

Simplify iterations over TrackPanelCells with range-for

This commit is contained in:
Paul Licameli 2017-06-16 22:57:08 -04:00
parent f94ac4dc43
commit ffbc4d5f90
6 changed files with 14 additions and 16 deletions

View File

@ -3166,6 +3166,14 @@ void TrackInfo::UpdatePrefs()
} while (textWidth >= allowableWidth);
}
IteratorRange< TrackPanelCellIterator > TrackPanel::Cells()
{
return {
TrackPanelCellIterator( this, true ),
TrackPanelCellIterator( this, false )
};
}
TrackPanelCellIterator::TrackPanelCellIterator(TrackPanel *trackPanel, bool begin)
: mPanel(trackPanel)
, mIter(trackPanel->GetProject())

View File

@ -44,6 +44,7 @@ class MixerBoard;
class AudacityProject;
class TrackPanelAx;
class TrackPanelCellIterator;
struct TrackPanelMouseEvent;
class ViewInfo;
@ -259,6 +260,8 @@ class AUDACITY_DLL_API TrackPanel final : public OverlayPanel {
virtual ~ TrackPanel();
IteratorRange< TrackPanelCellIterator > Cells();
void UpdatePrefs();
void ApplyUpdatedTheme();

View File

@ -102,13 +102,10 @@ void EditCursorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
if (auto tp = dynamic_cast<TrackPanel*>(&panel)) {
wxASSERT(mIsMaster);
AColor::CursorColor(&dc);
TrackPanelCellIterator begin(tp, true);
TrackPanelCellIterator end(tp, false);
// Draw cursor in all selected tracks
for (; begin != end; ++begin)
for ( const auto &data : tp->Cells() )
{
TrackPanelCellIterator::value_type data(*begin);
Track *const pTrack = dynamic_cast<Track*>(data.first);
if (!pTrack)
continue;

View File

@ -69,13 +69,9 @@ void PlayIndicatorOverlayBase::Draw(OverlayPanel &panel, wxDC &dc)
if(auto tp = dynamic_cast<TrackPanel*>(&panel)) {
wxASSERT(mIsMaster);
TrackPanelCellIterator begin(tp, true);
TrackPanelCellIterator end(tp, false);
// Draw indicator in all visible tracks
for (; begin != end; ++begin)
for ( const auto &data : tp->Cells() )
{
TrackPanelCellIterator::value_type data(*begin);
Track *const pTrack = dynamic_cast<Track*>(data.first);
if (!pTrack)
continue;

View File

@ -17,7 +17,6 @@ Paul Licameli split from TrackPanel.cpp
#include "../../Project.h"
#include "../../TrackPanel.h"
#include "../../TrackPanelCell.h"
#include "../../TrackPanelCellIterator.h"
#include "../../commands/CommandFunctors.h"
#include "../../prefs/TracksPrefs.h"
#include "../../toolbars/ControlToolBar.h"

View File

@ -1826,10 +1826,6 @@ std::pair<wxRect, bool> QuickPlayIndicatorOverlay::DoGetRectangle(wxSize size)
void QuickPlayIndicatorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
{
TrackPanel &tp = static_cast<TrackPanel&>(panel);
TrackPanelCellIterator begin(&tp, true);
TrackPanelCellIterator end(&tp, false);
mOldQPIndicatorPos = mNewQPIndicatorPos;
mOldQPIndicatorSnapped = mNewQPIndicatorSnapped;
mOldPreviewingScrub = mNewPreviewingScrub;
@ -1843,9 +1839,8 @@ void QuickPlayIndicatorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
;
// Draw indicator in all visible tracks
for (; begin != end; ++begin)
for ( const auto &data : static_cast<TrackPanel&>(panel).Cells() )
{
TrackPanelCellIterator::value_type data(*begin);
Track *const pTrack = dynamic_cast<Track*>(data.first);
if (!pTrack)
continue;