comparison view/Overview.cpp @ 642:2c35737cd3f8

Debug -- overview centre frame relocation is not currently working with qt5
author Chris Cannam
date Wed, 15 May 2013 22:15:49 +0100
parents 4806715f7a19
children 77fa3fdbfc7e
comparison
equal deleted inserted replaced
641:28973ecd4a55 642:2c35737cd3f8
19 #include "base/ZoomConstraint.h" 19 #include "base/ZoomConstraint.h"
20 20
21 #include <QPaintEvent> 21 #include <QPaintEvent>
22 #include <QPainter> 22 #include <QPainter>
23 #include <iostream> 23 #include <iostream>
24
25 #define DEBUG_OVERVIEW 1
24 26
25 using std::cerr; 27 using std::cerr;
26 using std::endl; 28 using std::endl;
27 29
28 Overview::Overview(QWidget *w) : 30 Overview::Overview(QWidget *w) :
88 m_views.erase(view); 90 m_views.erase(view);
89 update(); 91 update();
90 } 92 }
91 93
92 void 94 void
93 Overview::globalCentreFrameChanged(unsigned long) 95 Overview::globalCentreFrameChanged(unsigned long f)
94 { 96 {
97 #ifdef DEBUG_OVERVIEW
98 std::cerr << "Overview::globalCentreFrameChanged: " << f << std::endl;
99 #endif
95 update(); 100 update();
96 } 101 }
97 102
98 void 103 void
99 Overview::viewCentreFrameChanged(View *v, unsigned long) 104 Overview::viewCentreFrameChanged(View *v, unsigned long f)
100 { 105 {
106 #ifdef DEBUG_OVERVIEW
107 std::cerr << "Overview[" << this << "]::viewCentreFrameChanged(" << v << "): " << f << std::endl;
108 #endif
101 if (m_views.find(v) != m_views.end()) { 109 if (m_views.find(v) != m_views.end()) {
102 update(); 110 update();
103 } 111 }
104 } 112 }
105 113
113 } 121 }
114 122
115 void 123 void
116 Overview::viewManagerPlaybackFrameChanged(unsigned long f) 124 Overview::viewManagerPlaybackFrameChanged(unsigned long f)
117 { 125 {
126 #ifdef DEBUG_OVERVIEW
127 std::cerr << "Overview[" << this << "]::viewManagerPlaybackFrameChanged(" << f << "): " << f << std::endl;
128 #endif
129
118 bool changed = false; 130 bool changed = false;
119 131
120 f = getAlignedPlaybackFrame(); 132 f = getAlignedPlaybackFrame();
121 133
122 if (getXForFrame(m_playPointerFrame) != getXForFrame(f)) changed = true; 134 if (getXForFrame(m_playPointerFrame) != getXForFrame(f)) changed = true;
128 void 140 void
129 Overview::paintEvent(QPaintEvent *e) 141 Overview::paintEvent(QPaintEvent *e)
130 { 142 {
131 // Recalculate zoom in case the size of the widget has changed. 143 // Recalculate zoom in case the size of the widget has changed.
132 144
133 // SVDEBUG << "Overview::paintEvent: width is " << width() << ", centre frame " << m_centreFrame << endl; 145 #ifdef DEBUG_OVERVIEW
146 std::cerr << "Overview::paintEvent: width is " << width() << ", centre frame " << m_centreFrame << std::endl;
147 #endif
134 148
135 size_t startFrame = getModelsStartFrame(); 149 size_t startFrame = getModelsStartFrame();
136 size_t frameCount = getModelsEndFrame() - getModelsStartFrame(); 150 size_t frameCount = getModelsEndFrame() - getModelsStartFrame();
137 int zoomLevel = frameCount / width(); 151 int zoomLevel = frameCount / width();
138 if (zoomLevel < 1) zoomLevel = 1; 152 if (zoomLevel < 1) zoomLevel = 1;
146 size_t centreFrame = startFrame + m_zoomLevel * (width() / 2); 160 size_t centreFrame = startFrame + m_zoomLevel * (width() / 2);
147 if (centreFrame > (startFrame + getModelsEndFrame())/2) { 161 if (centreFrame > (startFrame + getModelsEndFrame())/2) {
148 centreFrame = (startFrame + getModelsEndFrame())/2; 162 centreFrame = (startFrame + getModelsEndFrame())/2;
149 } 163 }
150 if (centreFrame != m_centreFrame) { 164 if (centreFrame != m_centreFrame) {
151 // SVDEBUG << "Overview::paintEvent: Centre frame changed from " 165 #ifdef DEBUG_OVERVIEW
152 // << m_centreFrame << " to " << centreFrame << " and thus start frame from " << getStartFrame(); 166 std::cerr << "Overview::paintEvent: Centre frame changed from "
167 << m_centreFrame << " to " << centreFrame << " and thus start frame from " << getStartFrame();
168 #endif
153 m_centreFrame = centreFrame; 169 m_centreFrame = centreFrame;
154 // SVDEBUG << " to " << getStartFrame() << endl; 170 #ifdef DEBUG_OVERVIEW
171 std::cerr << " to " << getStartFrame() << std::endl;
172 #endif
155 emit centreFrameChanged(m_centreFrame, false, PlaybackIgnore); 173 emit centreFrameChanged(m_centreFrame, false, PlaybackIgnore);
156 } 174 }
157 175
158 View::paintEvent(e); 176 View::paintEvent(e);
159 177