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) {