Mercurial > hg > svcore
comparison base/View.cpp @ 16:cc98d496d52b
* Add command history class, and basic undo/redo menus. No actual commands
to undo/redo yet. Selecting the placeholders sometimes seems to cause
a crash, so this looks a little uncertain so far.
* Add Rename Layer
* Remove models from playback when their layers are removed (and ref counts
hit zero)
* Don't hang around waiting so much when there's work to be done in the audio
buffer fill thread
* Put more sensible names on layers generated from transforms
* Add basic editing to time-value layer like existing editing in time-instants
layer, and make both of them snap to the appropriate resolution during drag
author | Chris Cannam |
---|---|
date | Mon, 30 Jan 2006 17:51:56 +0000 |
parents | 47500c27ac26 |
children | 4563a72c1d8b |
comparison
equal
deleted
inserted
replaced
15:47500c27ac26 | 16:cc98d496d52b |
---|---|
19 #include <QPaintEvent> | 19 #include <QPaintEvent> |
20 #include <QRect> | 20 #include <QRect> |
21 #include <QApplication> | 21 #include <QApplication> |
22 | 22 |
23 #include <iostream> | 23 #include <iostream> |
24 | 24 #include <cassert> |
25 //#define DEBUG_VIEW_WIDGET_PAINT 1 | 25 |
26 #define DEBUG_VIEW_WIDGET_PAINT 1 | |
26 | 27 |
27 using std::cerr; | 28 using std::cerr; |
28 using std::endl; | 29 using std::endl; |
29 | 30 |
30 View::View(QWidget *w, bool showProgress) : | 31 View::View(QWidget *w, bool showProgress) : |
193 } | 194 } |
194 | 195 |
195 size_t | 196 size_t |
196 View::getEndFrame() const | 197 View::getEndFrame() const |
197 { | 198 { |
198 return getStartFrame() + (width() * m_zoomLevel) - 1; | 199 return getFrameForX(width()) - 1; |
199 } | 200 } |
200 | 201 |
201 void | 202 void |
202 View::setStartFrame(long f) | 203 View::setStartFrame(long f) |
203 { | 204 { |
251 if (m_zoomLevel != int(z)) { | 252 if (m_zoomLevel != int(z)) { |
252 m_zoomLevel = z; | 253 m_zoomLevel = z; |
253 emit zoomLevelChanged(this, z, m_followZoom); | 254 emit zoomLevelChanged(this, z, m_followZoom); |
254 update(); | 255 update(); |
255 } | 256 } |
257 } | |
258 | |
259 View::LayerProgressBar::LayerProgressBar(QWidget *parent) : | |
260 QProgressBar(parent) | |
261 { | |
262 QFont f(font()); | |
263 f.setPointSize(f.pointSize() * 8 / 10); | |
264 setFont(f); | |
256 } | 265 } |
257 | 266 |
258 void | 267 void |
259 View::addLayer(Layer *layer) | 268 View::addLayer(Layer *layer) |
260 { | 269 { |
266 m_progressBars[layer] = new LayerProgressBar(this); | 275 m_progressBars[layer] = new LayerProgressBar(this); |
267 m_progressBars[layer]->setMinimum(0); | 276 m_progressBars[layer]->setMinimum(0); |
268 m_progressBars[layer]->setMaximum(100); | 277 m_progressBars[layer]->setMaximum(100); |
269 m_progressBars[layer]->setMinimumWidth(80); | 278 m_progressBars[layer]->setMinimumWidth(80); |
270 m_progressBars[layer]->hide(); | 279 m_progressBars[layer]->hide(); |
271 | 280 |
272 connect(layer, SIGNAL(layerParametersChanged()), | 281 connect(layer, SIGNAL(layerParametersChanged()), |
273 this, SLOT(layerParametersChanged())); | 282 this, SLOT(layerParametersChanged())); |
274 connect(layer, SIGNAL(layerNameChanged()), | 283 connect(layer, SIGNAL(layerNameChanged()), |
275 this, SLOT(layerNameChanged())); | 284 this, SLOT(layerNameChanged())); |
276 connect(layer, SIGNAL(modelChanged()), | 285 connect(layer, SIGNAL(modelChanged()), |
501 if (sender() != m_manager) return; | 510 if (sender() != m_manager) return; |
502 } | 511 } |
503 | 512 |
504 if (m_playPointerFrame == f) return; | 513 if (m_playPointerFrame == f) return; |
505 bool visible = (getXForFrame(m_playPointerFrame) != getXForFrame(f)); | 514 bool visible = (getXForFrame(m_playPointerFrame) != getXForFrame(f)); |
515 std::cerr << "old x = " << getXForFrame(m_playPointerFrame) | |
516 << ", new x = " << getXForFrame(f) | |
517 << ", visible = " << visible << std::endl; | |
506 size_t oldPlayPointerFrame = m_playPointerFrame; | 518 size_t oldPlayPointerFrame = m_playPointerFrame; |
507 m_playPointerFrame = f; | 519 m_playPointerFrame = f; |
508 if (!visible) return; | 520 if (!visible) return; |
509 | 521 |
510 switch (m_followPlay) { | 522 switch (m_followPlay) { |