Bug1239: Correct time rulers after importing files (with File>Open) ...
... The fisheye stuff was to blame.
This commit is contained in:
parent
8ce18979c8
commit
17c9369286
|
@ -342,8 +342,9 @@ void BenchmarkDialog::OnRun( wxCommandEvent & WXUNUSED(event))
|
|||
|
||||
HoldPrint(true);
|
||||
|
||||
ZoomInfo zoomInfo(0.0, ZoomInfo::GetDefaultZoom());
|
||||
DirManager *d = new DirManager();
|
||||
TrackFactory *fact = new TrackFactory(d);
|
||||
TrackFactory *fact = new TrackFactory(d, &zoomInfo);
|
||||
WaveTrack *t = fact->NewWaveTrack(int16Sample);
|
||||
Track *tmp = NULL;
|
||||
|
||||
|
|
|
@ -6258,7 +6258,7 @@ void AudacityProject::OnNewTimeTrack()
|
|||
return;
|
||||
}
|
||||
|
||||
TimeTrack *t = new TimeTrack(mDirManager);
|
||||
TimeTrack *t = mTrackFactory->NewTimeTrack();
|
||||
|
||||
SelectNone();
|
||||
|
||||
|
|
|
@ -1043,7 +1043,7 @@ AudacityProject::AudacityProject(wxWindow * parent, wxWindowID id,
|
|||
// Create tags object
|
||||
mTags = new Tags();
|
||||
|
||||
mTrackFactory = new TrackFactory(mDirManager);
|
||||
mTrackFactory = new TrackFactory(mDirManager, &mViewInfo);
|
||||
|
||||
int widths[] = {0, GetControlToolBar()->WidthForStatusBar(mStatusBar), -1, 150};
|
||||
mStatusBar->SetStatusWidths(4, widths);
|
||||
|
|
|
@ -31,11 +31,12 @@
|
|||
|
||||
TimeTrack *TrackFactory::NewTimeTrack()
|
||||
{
|
||||
return new TimeTrack(mDirManager);
|
||||
return new TimeTrack(mDirManager, mZoomInfo);
|
||||
}
|
||||
|
||||
TimeTrack::TimeTrack(DirManager *projDirManager):
|
||||
TimeTrack::TimeTrack(DirManager *projDirManager, const ZoomInfo *zoomInfo):
|
||||
Track(projDirManager)
|
||||
, mZoomInfo(zoomInfo)
|
||||
{
|
||||
mHeight = 100;
|
||||
|
||||
|
@ -55,7 +56,7 @@ TimeTrack::TimeTrack(DirManager *projDirManager):
|
|||
SetName(GetDefaultName());
|
||||
|
||||
mRuler = new Ruler;
|
||||
mRuler->SetUseZoomInfo(0);
|
||||
mRuler->SetUseZoomInfo(0, mZoomInfo);
|
||||
mRuler->SetLabelEdges(false);
|
||||
mRuler->SetFormat(Ruler::TimeFormat);
|
||||
|
||||
|
@ -65,6 +66,7 @@ TimeTrack::TimeTrack(DirManager *projDirManager):
|
|||
|
||||
TimeTrack::TimeTrack(TimeTrack &orig):
|
||||
Track(orig)
|
||||
, mZoomInfo(orig.mZoomInfo)
|
||||
{
|
||||
Init(orig); // this copies the TimeTrack metadata (name, range, etc)
|
||||
|
||||
|
@ -80,7 +82,7 @@ TimeTrack::TimeTrack(TimeTrack &orig):
|
|||
|
||||
///@TODO: Give Ruler:: a copy-constructor instead of this?
|
||||
mRuler = new Ruler;
|
||||
mRuler->SetUseZoomInfo(0);
|
||||
mRuler->SetUseZoomInfo(0, mZoomInfo);
|
||||
mRuler->SetLabelEdges(false);
|
||||
mRuler->SetFormat(Ruler::TimeFormat);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ class TimeTrack: public Track {
|
|||
|
||||
public:
|
||||
|
||||
TimeTrack(DirManager * projDirManager);
|
||||
TimeTrack(DirManager * projDirManager, const ZoomInfo *zoomInfo);
|
||||
/** @brief Copy-Constructor - create a new TimeTrack:: which is an independent copy of the original
|
||||
*
|
||||
* Calls TimeTrack::Init() to copy the track metadata, then does a bunch of manipulations on the
|
||||
|
@ -117,6 +117,7 @@ class TimeTrack: public Track {
|
|||
void testMe();
|
||||
|
||||
private:
|
||||
const ZoomInfo *const mZoomInfo;
|
||||
Envelope *mEnvelope;
|
||||
Ruler *mRuler;
|
||||
double mRangeLower;
|
||||
|
|
|
@ -35,6 +35,7 @@ class LabelTrack;
|
|||
class TimeTrack;
|
||||
class WaveTrack;
|
||||
class AudacityProject;
|
||||
class ZoomInfo;
|
||||
|
||||
WX_DEFINE_USER_EXPORTED_ARRAY(Track*, TrackArray, class AUDACITY_DLL_API);
|
||||
WX_DEFINE_USER_EXPORTED_ARRAY(WaveTrack*, WaveTrackArray, class AUDACITY_DLL_API);
|
||||
|
@ -446,12 +447,14 @@ class AUDACITY_DLL_API TrackList:public wxEvtHandler
|
|||
class AUDACITY_DLL_API TrackFactory
|
||||
{
|
||||
private:
|
||||
TrackFactory(DirManager *dirManager):
|
||||
TrackFactory(DirManager *dirManager, const ZoomInfo *zoomInfo):
|
||||
mDirManager(dirManager)
|
||||
, mZoomInfo(zoomInfo)
|
||||
{
|
||||
}
|
||||
|
||||
DirManager *mDirManager;
|
||||
DirManager *const mDirManager;
|
||||
const ZoomInfo *const mZoomInfo;
|
||||
friend class AudacityProject;
|
||||
friend class BenchmarkDialog;
|
||||
|
||||
|
|
|
@ -432,7 +432,7 @@ void TranscriptionToolBar::PlayAtSpeed(bool looped, bool cutPreview)
|
|||
|
||||
// Create a TimeTrack if we haven't done so already
|
||||
if (!mTimeTrack) {
|
||||
mTimeTrack = new TimeTrack(p->GetDirManager());
|
||||
mTimeTrack = p->GetTrackFactory()->NewTimeTrack();
|
||||
if (!mTimeTrack) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -155,7 +155,7 @@ Ruler::Ruler()
|
|||
|
||||
mTwoTone = false;
|
||||
|
||||
mUseZoomInfo = false;
|
||||
mUseZoomInfo = NULL;
|
||||
}
|
||||
|
||||
Ruler::~Ruler()
|
||||
|
@ -973,8 +973,8 @@ void Ruler::Update()
|
|||
void Ruler::Update(TimeTrack* timetrack)// Envelope *speedEnv, long minSpeed, long maxSpeed )
|
||||
{
|
||||
const ZoomInfo *zoomInfo = NULL;
|
||||
if (mUseZoomInfo && !mLog && mOrientation == wxHORIZONTAL)
|
||||
zoomInfo = &GetActiveProject()->GetZoomInfo();
|
||||
if (!mLog && mOrientation == wxHORIZONTAL)
|
||||
zoomInfo = mUseZoomInfo;
|
||||
|
||||
// This gets called when something has been changed
|
||||
// (i.e. we've been invalidated). Recompute all
|
||||
|
@ -1577,10 +1577,10 @@ void Ruler::Label::Draw(wxDC&dc, bool twoTone) const
|
|||
}
|
||||
}
|
||||
|
||||
void Ruler::SetUseZoomInfo(int leftOffset)
|
||||
void Ruler::SetUseZoomInfo(int leftOffset, const ZoomInfo *zoomInfo)
|
||||
{
|
||||
mLeftOffset = leftOffset;
|
||||
mUseZoomInfo = true;
|
||||
mUseZoomInfo = zoomInfo;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -1680,6 +1680,7 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* parent,
|
|||
const wxSize& size,
|
||||
ViewInfo *viewinfo)
|
||||
: wxPanel(parent, id, pos, size)
|
||||
, mViewInfo(viewinfo)
|
||||
{
|
||||
SetLabel( _("Timeline") );
|
||||
SetName(GetLabel());
|
||||
|
@ -1707,8 +1708,6 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* parent,
|
|||
mMouseEventState = mesNone;
|
||||
mIsDragging = false;
|
||||
|
||||
mViewInfo = viewinfo;
|
||||
|
||||
mOuter = GetClientRect();
|
||||
|
||||
mInner = mOuter;
|
||||
|
@ -1717,7 +1716,7 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* parent,
|
|||
mInner.width -= 2; // -2 for left and right bevels
|
||||
mInner.height -= 3; // -3 for top and bottom bevels and bottom line
|
||||
|
||||
mRuler.SetUseZoomInfo(mLeftOffset);
|
||||
mRuler.SetUseZoomInfo(mLeftOffset, mViewInfo);
|
||||
mRuler.SetBounds(mInner.GetLeft(),
|
||||
mInner.GetTop(),
|
||||
mInner.GetRight(),
|
||||
|
@ -2457,7 +2456,7 @@ void AdornedRulerPanel::DoDrawSelection(wxDC * dc)
|
|||
void AdornedRulerPanel::SetLeftOffset(int offset)
|
||||
{
|
||||
mLeftOffset = offset;
|
||||
mRuler.SetUseZoomInfo(offset);
|
||||
mRuler.SetUseZoomInfo(offset, mViewInfo);
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::DrawCursor(double time)
|
||||
|
|
|
@ -26,6 +26,7 @@ class TimeTrack;
|
|||
class SnapManager;
|
||||
class NumberScale;
|
||||
class TrackList;
|
||||
class ZoomInfo;
|
||||
|
||||
class AUDACITY_DLL_API Ruler {
|
||||
public:
|
||||
|
@ -127,7 +128,7 @@ class AUDACITY_DLL_API Ruler {
|
|||
void SetCustomMajorLabels(wxArrayString *label, int numLabel, int start, int step);
|
||||
void SetCustomMinorLabels(wxArrayString *label, int numLabel, int start, int step);
|
||||
|
||||
void SetUseZoomInfo(int leftOffset);
|
||||
void SetUseZoomInfo(int leftOffset, const ZoomInfo *zoomInfo);
|
||||
|
||||
//
|
||||
// Drawing
|
||||
|
@ -231,7 +232,7 @@ private:
|
|||
int mGridLineLength; // end
|
||||
wxString mUnits;
|
||||
bool mTwoTone;
|
||||
bool mUseZoomInfo;
|
||||
const ZoomInfo *mUseZoomInfo;
|
||||
int mLeftOffset;
|
||||
|
||||
NumberScale *mpNumberScale;
|
||||
|
@ -335,7 +336,7 @@ private:
|
|||
bool mIsWE;
|
||||
|
||||
Ruler mRuler;
|
||||
ViewInfo *mViewInfo;
|
||||
ViewInfo *const mViewInfo;
|
||||
AudacityProject *mProject;
|
||||
TrackList *mTracks;
|
||||
|
||||
|
|
Loading…
Reference in New Issue