diff layer/WaveformLayer.cpp @ 216:34bbbcb3c01f sv1-1.0pre1

* Make getPropertyRangeAndValue return the default separately from the current value. Previously some contexts were incorrectly treating the current value as a default.
author Chris Cannam
date Fri, 02 Mar 2007 14:00:12 +0000
parents 8520b7918104
children 28c8e8e3c537
line wrap: on
line diff
--- a/layer/WaveformLayer.cpp	Fri Mar 02 13:01:41 2007 +0000
+++ b/layer/WaveformLayer.cpp	Fri Mar 02 14:00:12 2007 +0000
@@ -137,60 +137,66 @@
 
 int
 WaveformLayer::getPropertyRangeAndValue(const PropertyName &name,
-                                        int *min, int *max) const
+                                        int *min, int *max, int *deflt) const
 {
-    int deft = 0;
+    int val = 0;
 
-    int garbage0, garbage1;
+    int garbage0, garbage1, garbage2;
     if (!min) min = &garbage0;
     if (!max) max = &garbage1;
+    if (!deflt) deflt = &garbage2;
 
     if (name == "Gain") {
 
 	*min = -50;
 	*max = 50;
+        *deflt = 0;
 
-	deft = lrint(log10(m_gain) * 20.0);
-	if (deft < *min) deft = *min;
-	if (deft > *max) deft = *max;
+	val = lrint(log10(m_gain) * 20.0);
+	if (val < *min) val = *min;
+	if (val > *max) val = *max;
 
     } else if (name == "Normalize Visible Area") {
 
-        deft = (m_autoNormalize ? 1 : 0);
+        val = (m_autoNormalize ? 1 : 0);
+        *deflt = 0;
 
     } else if (name == "Colour") {
 
 	*min = 0;
 	*max = 5;
+        *deflt = 0;
 
-	if (m_colour == Qt::black) deft = 0;
-	else if (m_colour == Qt::darkRed) deft = 1;
+	if (m_colour == Qt::black) val = 0;
+	else if (m_colour == Qt::darkRed) val = 1;
 	else if (m_colour == Qt::darkBlue ||
-                 m_colour == QColor(84, 177, 248)) deft = 2;
-	else if (m_colour == Qt::darkGreen) deft = 3;
-	else if (m_colour == QColor(200, 50, 255)) deft = 4;
-	else if (m_colour == QColor(255, 150, 50)) deft = 5;
+                 m_colour == QColor(84, 177, 248)) val = 2;
+	else if (m_colour == Qt::darkGreen) val = 3;
+	else if (m_colour == QColor(200, 50, 255)) val = 4;
+	else if (m_colour == QColor(255, 150, 50)) val = 5;
 
     } else if (name == "Channels") {
 
         *min = 0;
         *max = 2;
-        if (m_channelMode == MixChannels) deft = 1;
-        else if (m_channelMode == MergeChannels) deft = 2;
-        else deft = 0;
+        *deflt = 0;
+        if (m_channelMode == MixChannels) val = 1;
+        else if (m_channelMode == MergeChannels) val = 2;
+        else val = 0;
 
     } else if (name == "Scale") {
 
 	*min = 0;
 	*max = 2;
+        *deflt = 0;
 
-	deft = (int)m_scale;
+	val = (int)m_scale;
 
     } else {
-	deft = Layer::getPropertyRangeAndValue(name, min, max);
+	val = Layer::getPropertyRangeAndValue(name, min, max, deflt);
     }
 
-    return deft;
+    return val;
 }
 
 QString