Mercurial > hg > easaier-soundaccess
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