From c816d2562d2c27f749fce415f5b623bf3dfa3de6 Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Fri, 29 May 2015 11:32:55 -0500 Subject: [PATCH] Fix for bug #985 Was not able to reproduce the assert mentioned in the report though. --- src/effects/Equalization.cpp | 36 ++++++++++++++++++++++++------------ src/effects/Equalization.h | 1 + 2 files changed, 25 insertions(+), 12 deletions(-) mode change 100644 => 100755 src/effects/Equalization.cpp mode change 100644 => 100755 src/effects/Equalization.h diff --git a/src/effects/Equalization.cpp b/src/effects/Equalization.cpp old mode 100644 new mode 100755 index bbba783af..97ac092e1 --- a/src/effects/Equalization.cpp +++ b/src/effects/Equalization.cpp @@ -880,18 +880,7 @@ bool EffectEqualization::TransferDataToWindow() mdBMax = 0; // force refresh in TransferDataFromWindow() // Reload the curve names - mCurve->Clear(); - for (size_t i = 0, cnt = mCurves.GetCount(); i < cnt; i++) - { - mCurve->Append(mCurves[ i ].Name); - } - mCurve->SetStringSelection(mCurveName); - - // Allow the control to resize - mCurve->SetSizeHints(-1, -1); - - // Set initial curve - setCurve( mCurveName ); + UpdateCurves(); // Set graphic interpolation mode mInterpChoice->SetSelection(mInterp); @@ -1847,6 +1836,23 @@ void EffectEqualization::LayoutEQSliders() mUIParent->RefreshRect(wxRect(szrG->GetPosition(), szrGSize)); } +void EffectEqualization::UpdateCurves() +{ + // Reload the curve names + mCurve->Clear(); + for (size_t i = 0, cnt = mCurves.GetCount(); i < cnt; i++) + { + mCurve->Append(mCurves[ i ].Name); + } + mCurve->SetStringSelection(mCurveName); + + // Allow the control to resize + mCurve->SetSizeHints(-1, -1); + + // Set initial curve + setCurve( mCurveName ); +} + void EffectEqualization::UpdateDraw() { int numPoints = mLogEnvelope->GetNumberOfPoints(); @@ -2416,6 +2422,12 @@ void EffectEqualization::OnManage(wxCommandEvent & WXUNUSED(event)) { EditCurvesDialog d(mUIParent, this, mCurve->GetSelection()); d.ShowModal(); + + // Reload the curve names + UpdateCurves(); + + // Allow control to resize + mUIParent->Layout(); } void EffectEqualization::OnClear(wxCommandEvent & WXUNUSED(event)) diff --git a/src/effects/Equalization.h b/src/effects/Equalization.h old mode 100644 new mode 100755 index 4e51d2ebe..b07f58f28 --- a/src/effects/Equalization.h +++ b/src/effects/Equalization.h @@ -150,6 +150,7 @@ private: XMLTagHandler *HandleXMLChild(const wxChar *tag); void WriteXML(XMLWriter &xmlFile); + void UpdateCurves(); void UpdateDraw(); void LayoutEQSliders();