From 439fdc66ff1556a1904955a78108d33a4c3471a0 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Sun, 23 Aug 2015 19:02:06 -0400 Subject: [PATCH] weaken dependency of TrackPanel.cpp on LabelTrack.h, a bit --- src/LabelTrack.cpp | 11 +++++++++++ src/LabelTrack.h | 4 +++- src/Track.cpp | 5 +++++ src/Track.h | 2 +- src/TrackPanel.cpp | 2 -- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/LabelTrack.cpp b/src/LabelTrack.cpp index 1b850d090..fc3a7de78 100644 --- a/src/LabelTrack.cpp +++ b/src/LabelTrack.cpp @@ -1130,6 +1130,17 @@ double LabelTrack::GetEndTime() const return end; } +Track *LabelTrack::Duplicate() +{ + return new LabelTrack(*this); +} + +void LabelTrack::SetSelected(bool s) +{ + Track::SetSelected(s); + if (!s) + Unselect(); +} /// OverGlyph returns 0 if not over a glyph, /// 1 if over the left-hand glyph, and diff --git a/src/LabelTrack.h b/src/LabelTrack.h index 1cb8b6cdd..aead7b223 100644 --- a/src/LabelTrack.h +++ b/src/LabelTrack.h @@ -139,7 +139,9 @@ class AUDACITY_DLL_API LabelTrack : public Track virtual double GetStartTime() const; virtual double GetEndTime() const; - virtual Track *Duplicate() { return new LabelTrack(*this); } + virtual Track *Duplicate(); + + virtual void SetSelected(bool s); virtual bool HandleXMLTag(const wxChar *tag, const wxChar **attrs); virtual XMLTagHandler *HandleXMLChild(const wxChar *tag); diff --git a/src/Track.cpp b/src/Track.cpp index 07fc7a0aa..10cda80bf 100644 --- a/src/Track.cpp +++ b/src/Track.cpp @@ -112,6 +112,11 @@ void Track::Init(const Track &orig) #endif } +void Track::SetSelected(bool s) +{ + mSelected = s; +} + void Track::Merge(const Track &orig) { mSelected = orig.mSelected; diff --git a/src/Track.h b/src/Track.h index 47dc5dd50..00dd5faf8 100644 --- a/src/Track.h +++ b/src/Track.h @@ -159,7 +159,7 @@ class AUDACITY_DLL_API Track: public XMLTagHandler bool GetLinked () const { return mLinked; } bool GetSolo () const { return mSolo; } - void SetSelected(bool s) { mSelected = s; } + virtual void SetSelected(bool s); void SetMute (bool m) { mMute = m; } void SetLinked (bool l); void SetSolo (bool s) { mSolo = s; } diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index c5e2a9165..5cb533d87 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -996,8 +996,6 @@ void TrackPanel::SelectNone() Track *t = iter.First(); while (t) { t->SetSelected(false); - if (t->GetKind() == Track::Label) - ((LabelTrack *) t)->Unselect(); t = iter.Next(); } }