Tidy up equalization curve renaming logic so it is clearer what is going on.

This commit is contained in:
james.k.crook@gmail.com 2012-02-09 18:22:43 +00:00
parent 1d07edb89b
commit 2d96e01b3f
1 changed files with 41 additions and 55 deletions

View File

@ -2056,9 +2056,8 @@ void EqualizationDialog::LayoutEQSliders()
void EqualizationDialog::GraphicEQ(Envelope *env)
{
// Vigilant Sentry noted this "value" var had not previously been initialized,
// so there must be some path to lines 2133 and 2179 that do not get a setting.
// ANSWER-ME: Is this a good default value?
// JKC: 'value' is for height of curve.
// The 0.0 initial value would only get used if NUM_PTS were 0.
double value = 0.0;
double dist, span, s;
@ -2083,11 +2082,10 @@ void EqualizationDialog::GraphicEQ(Envelope *env)
s = dist/span;
if( s < -1.5 )
value = 0.;
else if( s < -.5 )
value = m_EQVals[0]*(s + 1.5)*(s + 1.5)/2.;
else
if( s < -.5 )
value = m_EQVals[0]*(s + 1.5)*(s + 1.5)/2.;
else
value = m_EQVals[0]*(.75 - s*s) + m_EQVals[1]*(s + .5)*(s + .5)/2.;
value = m_EQVals[0]*(.75 - s*s) + m_EQVals[1]*(s + .5)*(s + .5)/2.;
}
else
{
@ -2098,12 +2096,11 @@ void EqualizationDialog::GraphicEQ(Envelope *env)
s = dist/span;
if( s > 1.5 )
value = 0.;
else if( s > .5 )
value = m_EQVals[bandsInUse-1]*(s - 1.5)*(s - 1.5)/2.;
else
if( s > .5 )
value = m_EQVals[bandsInUse-1]*(s - 1.5)*(s - 1.5)/2.;
else
value = m_EQVals[bandsInUse-1]*(.75 - s*s) +
m_EQVals[bandsInUse-2]*(s - .5)*(s - .5)/2.;
value = m_EQVals[bandsInUse-1]*(.75 - s*s) +
m_EQVals[bandsInUse-2]*(s - .5)*(s - .5)/2.;
}
else //normal case
{
@ -3028,10 +3025,10 @@ void EditCurvesDialog::OnRename(wxCommandEvent &event)
wxString temp = mEditCurves[ curve ].Name;
if( name.IsSameAs( mEditCurves[ curve ].Name )) // case sensitive
{
bad = true;
if( curve == item ) // trying to rename a curve with the same name
{
wxMessageBox( _("Name is the same as the original one"), _("Same name"), wxOK );
bad = true;
break;
}
int answer = wxMessageBox( _("Overwrite existing curve '") + name +_("'?"),
@ -3042,55 +3039,44 @@ void EditCurvesDialog::OnRename(wxCommandEvent &event)
overwrite = true; // we are going to overwrite the one with this name
break;
}
else
bad = true;
}
}
if( name == wxT("") || name == wxT("unnamed") )
bad = true;
}
if( bad != true ) // user didn't cancel this one
// if bad, we cancelled the rename dialog, so nothing to do.
if( bad == true )
;
else if(overwrite){
// Overwrite another curve.
// JKC: because 'overwrite' is true, 'curve' is the number of the curve that
// we are about to overwrite.
mEditCurves[ curve ].Name = name;
mEditCurves[ curve ].points = mEditCurves[ item ].points;
// if renaming the unnamed item, then select it,
// otherwise get rid of the item we've renamed.
if( item == (numCurves-1) )
mList->SetItem(curve, 0, name);
else
{
mEditCurves.RemoveAt( item );
numCurves--;
}
}
else if( item == (numCurves-1) ) // renaming 'unnamed'
{ // Create a new entry
mEditCurves.Add( EQCurve( wxT("unnamed") ) );
// Copy over the points
mEditCurves[ numCurves ].points = mEditCurves[ numCurves - 1 ].points;
// Give the original unnamed entry the new name
mEditCurves[ numCurves - 1 ].Name = name;
numCurves++;
}
else // just rename (the 'normal' case)
{
if( item == numCurves-1 ) // renaming 'unnamed'
{
if(overwrite)
{ // Overwrite another curve with 'unnamed'
// ANSWER-ME: What is the expected value of "curve" here?
// It was not previously initialized at declaration.
// And if we expect it to have been through the above loop,
// it will be numCurves, which is a bad index, right?
// I've initialized it to zero, so we at least know what value it has.
mEditCurves[ curve ].Name = name;
mList->SetItem(curve, 0, name);
mEditCurves[ curve ].points = mEditCurves[ item ].points;
}
else
{ // Create a new entry
mEditCurves.Add( EQCurve( wxT("unnamed") ) );
// Copy over the points
mEditCurves[ numCurves ].points = mEditCurves[ numCurves - 1 ].points;
// Give the original unnamed entry the new name
mEditCurves[ numCurves - 1 ].Name = name;
numCurves++;
}
}
else // renaming a curve other than 'unnamed'
{
if(overwrite)
{ // Overwrite another curve with this one, then delete this one
// ANSWER-ME: Same question as above, i.e., what's the expected value of "curve" here?
mEditCurves[ curve ].Name = name;
mEditCurves[ curve ].points = mEditCurves[ item ].points;
mEditCurves.RemoveAt( item );
numCurves--;
}
else // just rename (the 'normal' case)
{
mEditCurves[ item ].Name = name;
mList->SetItem(item, 0, name);
}
}
mEditCurves[ item ].Name = name;
mList->SetItem(item, 0, name);
}
// get next selected item
item = mList->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);