diff widgets/Plotter.cpp @ 240:e006f4a57f86

add labels in plotter widget fix some bugs in the graphical equalizer
author benoitrigolleau
date Tue, 11 Mar 2008 13:53:59 +0000
parents 858a1121ebf7
children
line wrap: on
line diff
--- a/widgets/Plotter.cpp	Fri Mar 07 15:56:26 2008 +0000
+++ b/widgets/Plotter.cpp	Tue Mar 11 13:53:59 2008 +0000
@@ -26,8 +26,9 @@
 	for(int i = 0 ; i < m_signalWidth ; i++){
 		m_curveMask.push_back(0);
 	}
+	m_oldCurveMask = m_curveMask;
 
-	setMinimumSize(QSize(m_signalWidth + 10, m_signalHeight + 10));
+	setMinimumSize(QSize(m_signalWidth + 2*m_margin, m_signalHeight + 2*m_margin + 10));
 
 	refreshPixmap();
 
@@ -141,6 +142,7 @@
 			m_lastPoint.setX(x);
 			m_lastPoint.setY(y);
 			refreshPixmap();
+			emit filterChanged(m_curveMask);
 		}
 	}
 }
@@ -151,14 +153,41 @@
 		if ((event->button() == Qt::LeftButton) && m_curveMaskActive) {
 			m_curveMaskActive = false;
 			unsetCursor();
-			emit filterChanged(m_curveMask);
+			//emit filterChanged(m_curveMask);
 		}
 	}
 }
 
 void Plotter::drawGrid(QPainter *painter){
 	QPixmap pm(":icons/grid.png");
+	painter->setPen(Qt::white);
 	painter->drawPixmap(0,0,pm);
+	
+
+	/**VLines **************/ 
+
+	// middle line
+	painter->drawLine(m_signalWidth/2+m_margin, m_margin, m_signalWidth/2+m_margin , m_signalHeight + m_margin);
+	//quater lines
+	painter->drawLine(m_signalWidth/4+m_margin, m_margin, m_signalWidth/4+m_margin , m_signalHeight + m_margin);
+	painter->drawLine(3*m_signalWidth/4+m_margin, m_margin, 3*m_signalWidth/4+m_margin , m_signalHeight + m_margin);
+	
+	// border lines
+	painter->drawLine(m_margin, m_margin, m_margin , m_signalHeight + m_margin);
+	painter->drawLine(m_signalWidth+m_margin, m_margin, m_signalWidth+m_margin , m_signalHeight + m_margin);
+
+	/** HLines *************/
+
+
+	/** Labels *************/
+	painter->setPen(Qt::darkGray);
+	painter->drawText(0, m_signalHeight+2*m_margin+10, "10Hz");
+	painter->drawText(m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "100Hz");
+	painter->drawText(m_signalWidth/2 -10, m_signalHeight+2*m_margin+10, "1000Hz");
+	painter->drawText(3*m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "10000Hz");
+	painter->drawText(m_signalWidth -22, m_signalHeight+2*m_margin+10, "22KHz");
+
+
 }
 
 void Plotter::drawCurve(QPainter *painter){
@@ -209,6 +238,7 @@
 
 void Plotter::setFilter(float* filter)
 {
+
 	m_curveMask.clear();
 	for (int i=0; i<m_signalWidth; i++)
 	{
@@ -219,5 +249,14 @@
 
 void Plotter::enableDrawCurve(bool enable)
 {
+	if(enable!=m_enableDrawCurve){
+		QVector<float> aux = m_curveMask;
+		m_curveMask = m_oldCurveMask;
+		m_oldCurveMask = aux;
+		refreshPixmap();
+		if(enable){
+			emit filterChanged(m_curveMask);
+		}
+	}
 	m_enableDrawCurve = enable;
 }
\ No newline at end of file