Mercurial > hg > svcore
comparison base/View.cpp @ 22:a1a6acb7cd37
* Some fixes to waveform layer greyscaling
* Tidying in panner class
author | Chris Cannam |
---|---|
date | Fri, 03 Feb 2006 17:30:47 +0000 |
parents | 5da86cc182bd |
children | bb9291d84810 |
comparison
equal
deleted
inserted
replaced
21:5da86cc182bd | 22:a1a6acb7cd37 |
---|---|
30 | 30 |
31 View::View(QWidget *w, bool showProgress) : | 31 View::View(QWidget *w, bool showProgress) : |
32 QFrame(w), | 32 QFrame(w), |
33 m_centreFrame(0), | 33 m_centreFrame(0), |
34 m_zoomLevel(1024), | 34 m_zoomLevel(1024), |
35 m_newModel(true), | |
36 m_followPan(true), | 35 m_followPan(true), |
37 m_followZoom(true), | 36 m_followZoom(true), |
38 m_followPlay(PlaybackScrollPage), | 37 m_followPlay(PlaybackScrollPage), |
39 m_lightBackground(true), | 38 m_lightBackground(true), |
40 m_showProgress(showProgress), | 39 m_showProgress(showProgress), |
242 | 241 |
243 long | 242 long |
244 View::getFrameForX(int x) const | 243 View::getFrameForX(int x) const |
245 { | 244 { |
246 return (long(x) * long(m_zoomLevel)) + getStartFrame(); | 245 return (long(x) * long(m_zoomLevel)) + getStartFrame(); |
246 } | |
247 | |
248 int | |
249 View::getZoomLevel() const | |
250 { | |
251 return m_zoomLevel; | |
247 } | 252 } |
248 | 253 |
249 void | 254 void |
250 View::setZoomLevel(size_t z) | 255 View::setZoomLevel(size_t z) |
251 { | 256 { |
289 connect(layer, SIGNAL(modelChanged(size_t, size_t)), | 294 connect(layer, SIGNAL(modelChanged(size_t, size_t)), |
290 this, SLOT(modelChanged(size_t, size_t))); | 295 this, SLOT(modelChanged(size_t, size_t))); |
291 connect(layer, SIGNAL(modelReplaced()), | 296 connect(layer, SIGNAL(modelReplaced()), |
292 this, SLOT(modelReplaced())); | 297 this, SLOT(modelReplaced())); |
293 | 298 |
294 m_newModel = true; | |
295 update(); | 299 update(); |
296 | 300 |
297 emit propertyContainerAdded(layer); | 301 emit propertyContainerAdded(layer); |
298 } | 302 } |
299 | 303 |
458 std::cerr << "View(" << this << ")::modelReplaced()" << std::endl; | 462 std::cerr << "View(" << this << ")::modelReplaced()" << std::endl; |
459 #endif | 463 #endif |
460 delete m_cache; | 464 delete m_cache; |
461 m_cache = 0; | 465 m_cache = 0; |
462 | 466 |
463 m_newModel = true; | |
464 update(); | 467 update(); |
465 } | 468 } |
466 | 469 |
467 void | 470 void |
468 View::layerParametersChanged() | 471 View::layerParametersChanged() |
843 ph -= i->second->height(); | 846 ph -= i->second->height(); |
844 } | 847 } |
845 } | 848 } |
846 } | 849 } |
847 } | 850 } |
848 /*!!! | |
849 void | |
850 View::identifyLocalFeatures(bool on, int x, int y) | |
851 { | |
852 for (LayerList::const_iterator i = m_layers.end(); i != m_layers.begin(); ) { | |
853 --i; | |
854 #ifdef DEBUG_VIEW_WIDGET_PAINT | |
855 std::cerr << "View::identifyLocalFeatures: calling on " << *i << std::endl; | |
856 #endif | |
857 if ((*i)->identifyLocalFeatures(on, x, y)) break; | |
858 } | |
859 } | |
860 */ | |
861 | 851 |
862 void | 852 void |
863 View::paintEvent(QPaintEvent *e) | 853 View::paintEvent(QPaintEvent *e) |
864 { | 854 { |
865 // Profiler prof("View::paintEvent", true); | 855 // Profiler prof("View::paintEvent", true); |
866 // std::cerr << "View::paintEvent" << std::endl; | 856 // std::cerr << "View::paintEvent" << std::endl; |
867 | 857 |
868 if (m_layers.empty()) { | 858 if (m_layers.empty()) { |
869 QFrame::paintEvent(e); | 859 QFrame::paintEvent(e); |
870 return; | 860 return; |
871 } | |
872 | |
873 if (m_newModel) { | |
874 m_newModel = false; | |
875 } | 861 } |
876 | 862 |
877 // ensure our constraints are met | 863 // ensure our constraints are met |
878 m_zoomLevel = getZoomConstraintBlockSize(m_zoomLevel, | 864 m_zoomLevel = getZoomConstraintBlockSize(m_zoomLevel, |
879 ZoomConstraint::RoundUp); | 865 ZoomConstraint::RoundUp); |