diff layer/TimeValueLayer.cpp @ 3:7af44e8578c8

* Add "curve" plot style to TimeValueLayer * Update copyrights to 2006
author Chris Cannam
date Thu, 12 Jan 2006 13:42:30 +0000
parents 2a4f26e85b4c
children 02aaea1ffaf7
line wrap: on
line diff
--- a/layer/TimeValueLayer.cpp	Tue Jan 10 17:37:43 2006 +0000
+++ b/layer/TimeValueLayer.cpp	Thu Jan 12 13:42:30 2006 +0000
@@ -2,7 +2,7 @@
 
 /*
     A waveform viewer and audio annotation editor.
-    Chris Cannam, Queen Mary University of London, 2005
+    Chris Cannam, Queen Mary University of London, 2005-2006
     
     This is experimental software.  Not for distribution.
 */
@@ -86,7 +86,7 @@
     } else if (name == tr("Plot Type")) {
 	
 	*min = 0;
-	*max = 2;
+	*max = 3;
 	
 	deft = int(m_plotStyle);
 
@@ -118,6 +118,7 @@
 	case 0: return tr("Points");
 	case 1: return tr("Stems");
 	case 2: return tr("Lines");
+	case 3: return tr("Curve");
 	}
     }
     return tr("<unknown>");
@@ -317,7 +318,11 @@
 
 	if (w < 1) w = 1;
 
-	paint.setPen(m_colour);
+	if (m_plotStyle == PlotCurve) {
+	    paint.setPen(QPen(QBrush(m_colour), 2));
+	} else {
+	    paint.setPen(m_colour);
+	}	    
 	paint.setBrush(brushColour);
 
 	if (m_plotStyle == PlotStems) {
@@ -338,27 +343,29 @@
 	    paint.setBrush(Qt::black);//!!!
 	}
 
-	paint.drawRect(x, y - 1, w, 2);
+	if (m_plotStyle != PlotCurve) {
+	    paint.drawRect(x, y - 1, w, 2);
+	}
 
-//	if (w > 1) {
-//	    paint.setPen(brushColour);
-//	    paint.drawRect(x, y - 1, w - 1, 2);
-//	    paint.setPen(m_colour);
-//	}
-//	paint.drawLine(x, 0, x, m_view->height());
+	if (m_plotStyle == PlotLines || m_plotStyle == PlotCurve) {
 
-	if (m_plotStyle == PlotLines) {
-
-	    paint.setPen(brushColour);
 	    SparseTimeValueModel::PointList::const_iterator j = i;
 	    ++j;
+
 	    if (j != points.end()) {
+
 		const SparseTimeValueModel::Point &q(*j);
 		int nx = (q.frame - startFrame) / zoomLevel;
 		int ny = int(nearbyint(m_view->height() -
 				       ((q.value - min) * m_view->height()) /
 				       (max - min)));
-		paint.drawLine(x + w, y, nx, ny);
+
+		if (m_plotStyle == PlotLines) {
+		    paint.setPen(brushColour);
+		    paint.drawLine(x + w, y, nx, ny);
+		} else {
+		    paint.drawLine(x, y, nx, ny);
+		}
 	    }
 	}