comparison 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
comparison
equal deleted inserted replaced
239:858a1121ebf7 240:e006f4a57f86
24 { 24 {
25 //m_curveMask = new int[m_signalWidth]; 25 //m_curveMask = new int[m_signalWidth];
26 for(int i = 0 ; i < m_signalWidth ; i++){ 26 for(int i = 0 ; i < m_signalWidth ; i++){
27 m_curveMask.push_back(0); 27 m_curveMask.push_back(0);
28 } 28 }
29 29 m_oldCurveMask = m_curveMask;
30 setMinimumSize(QSize(m_signalWidth + 10, m_signalHeight + 10)); 30
31 setMinimumSize(QSize(m_signalWidth + 2*m_margin, m_signalHeight + 2*m_margin + 10));
31 32
32 refreshPixmap(); 33 refreshPixmap();
33 34
34 } 35 }
35 36
139 } 140 }
140 m_curveMask[x] = y; 141 m_curveMask[x] = y;
141 m_lastPoint.setX(x); 142 m_lastPoint.setX(x);
142 m_lastPoint.setY(y); 143 m_lastPoint.setY(y);
143 refreshPixmap(); 144 refreshPixmap();
145 emit filterChanged(m_curveMask);
144 } 146 }
145 } 147 }
146 } 148 }
147 149
148 void Plotter::mouseReleaseEvent(QMouseEvent *event){ 150 void Plotter::mouseReleaseEvent(QMouseEvent *event){
149 if (m_enableDrawCurve) 151 if (m_enableDrawCurve)
150 { 152 {
151 if ((event->button() == Qt::LeftButton) && m_curveMaskActive) { 153 if ((event->button() == Qt::LeftButton) && m_curveMaskActive) {
152 m_curveMaskActive = false; 154 m_curveMaskActive = false;
153 unsetCursor(); 155 unsetCursor();
154 emit filterChanged(m_curveMask); 156 //emit filterChanged(m_curveMask);
155 } 157 }
156 } 158 }
157 } 159 }
158 160
159 void Plotter::drawGrid(QPainter *painter){ 161 void Plotter::drawGrid(QPainter *painter){
160 QPixmap pm(":icons/grid.png"); 162 QPixmap pm(":icons/grid.png");
163 painter->setPen(Qt::white);
161 painter->drawPixmap(0,0,pm); 164 painter->drawPixmap(0,0,pm);
165
166
167 /**VLines **************/
168
169 // middle line
170 painter->drawLine(m_signalWidth/2+m_margin, m_margin, m_signalWidth/2+m_margin , m_signalHeight + m_margin);
171 //quater lines
172 painter->drawLine(m_signalWidth/4+m_margin, m_margin, m_signalWidth/4+m_margin , m_signalHeight + m_margin);
173 painter->drawLine(3*m_signalWidth/4+m_margin, m_margin, 3*m_signalWidth/4+m_margin , m_signalHeight + m_margin);
174
175 // border lines
176 painter->drawLine(m_margin, m_margin, m_margin , m_signalHeight + m_margin);
177 painter->drawLine(m_signalWidth+m_margin, m_margin, m_signalWidth+m_margin , m_signalHeight + m_margin);
178
179 /** HLines *************/
180
181
182 /** Labels *************/
183 painter->setPen(Qt::darkGray);
184 painter->drawText(0, m_signalHeight+2*m_margin+10, "10Hz");
185 painter->drawText(m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "100Hz");
186 painter->drawText(m_signalWidth/2 -10, m_signalHeight+2*m_margin+10, "1000Hz");
187 painter->drawText(3*m_signalWidth/4 -10, m_signalHeight+2*m_margin+10, "10000Hz");
188 painter->drawText(m_signalWidth -22, m_signalHeight+2*m_margin+10, "22KHz");
189
190
162 } 191 }
163 192
164 void Plotter::drawCurve(QPainter *painter){ 193 void Plotter::drawCurve(QPainter *painter){
165 //painter->setRenderHint (QPainter::Antialiasing, true ); 194 //painter->setRenderHint (QPainter::Antialiasing, true );
166 QPolygonF polyline(m_signalWidth); 195 QPolygonF polyline(m_signalWidth);
207 m_margin = margin; 236 m_margin = margin;
208 } 237 }
209 238
210 void Plotter::setFilter(float* filter) 239 void Plotter::setFilter(float* filter)
211 { 240 {
241
212 m_curveMask.clear(); 242 m_curveMask.clear();
213 for (int i=0; i<m_signalWidth; i++) 243 for (int i=0; i<m_signalWidth; i++)
214 { 244 {
215 m_curveMask.push_back((int) (m_signalHeight - filter[i]*(m_signalHeight/2-1))); 245 m_curveMask.push_back((int) (m_signalHeight - filter[i]*(m_signalHeight/2-1)));
216 } 246 }
217 refreshPixmap(); 247 refreshPixmap();
218 } 248 }
219 249
220 void Plotter::enableDrawCurve(bool enable) 250 void Plotter::enableDrawCurve(bool enable)
221 { 251 {
252 if(enable!=m_enableDrawCurve){
253 QVector<float> aux = m_curveMask;
254 m_curveMask = m_oldCurveMask;
255 m_oldCurveMask = aux;
256 refreshPixmap();
257 if(enable){
258 emit filterChanged(m_curveMask);
259 }
260 }
222 m_enableDrawCurve = enable; 261 m_enableDrawCurve = enable;
223 } 262 }