Mercurial > hg > svgui
diff view/View.cpp @ 1506:60fe0d20df5d
Debug updates
author | Chris Cannam |
---|---|
date | Fri, 13 Sep 2019 17:27:14 +0100 |
parents | d09345e578a7 |
children | 996e971df9e7 |
line wrap: on
line diff
--- a/view/View.cpp Fri Sep 13 17:26:11 2019 +0100 +++ b/view/View.cpp Fri Sep 13 17:27:14 2019 +0100 @@ -76,12 +76,12 @@ m_manager(nullptr), m_propertyContainer(new ViewPropertyContainer(this)) { -// cerr << "View::View(" << getId() << ")" << endl; +// SVCERR << "View::View[" << getId() << "]" << endl; } View::~View() { -// cerr << "View::~View(" << getId() << ")" << endl; +// SVCERR << "View::~View[" << getId() << "]" << endl; m_deleting = true; delete m_propertyContainer; @@ -332,7 +332,7 @@ bool changeVisible = false; #ifdef DEBUG_VIEW - SVCERR << "View::setCentreFrame: from " << m_centreFrame + SVCERR << "View[" << getId() << "]::setCentreFrame: from " << m_centreFrame << " to " << f << endl; #endif @@ -344,7 +344,7 @@ if (m_zoomLevel.zone == ZoomLevel::PixelsPerFrame) { #ifdef DEBUG_VIEW - SVCERR << "View(" << getId() << ")::setCentreFrame: in PixelsPerFrame zone, so change must be visible" << endl; + SVCERR << "View[" << getId() << "]::setCentreFrame: in PixelsPerFrame zone, so change must be visible" << endl; #endif update(); changeVisible = true; @@ -357,14 +357,14 @@ if (newPixel != formerPixel) { #ifdef DEBUG_VIEW - SVCERR << "View(" << getId() << ")::setCentreFrame: newPixel " << newPixel << ", formerPixel " << formerPixel << endl; + SVCERR << "View[" << getId() << "]::setCentreFrame: newPixel " << newPixel << ", formerPixel " << formerPixel << endl; #endif // ensure the centre frame is a multiple of the zoom level m_centreFrame = sv_frame_t(newPixel) * m_zoomLevel.level; #ifdef DEBUG_VIEW - SVCERR << "View(" << this - << ")::setCentreFrame: centre frame rounded to " + SVCERR << "View[" << getId() + << "]::setCentreFrame: centre frame rounded to " << m_centreFrame << " (zoom level is " << m_zoomLevel.level << ")" << endl; #endif @@ -377,7 +377,7 @@ if (e) { sv_frame_t rf = alignToReference(m_centreFrame); #ifdef DEBUG_VIEW - cerr << "View[" << getId() << "]::setCentreFrame(" << f + SVCERR << "View[" << getId() << "]::setCentreFrame(" << f << "): m_centreFrame = " << m_centreFrame << ", emitting centreFrameChanged with aligned frame " << rf << endl; @@ -927,7 +927,7 @@ View::modelChanged(ModelId modelId) { #if defined(DEBUG_VIEW_WIDGET_PAINT) || defined(DEBUG_PROGRESS_STUFF) - cerr << "View[" << getId() << "]::modelChanged(" << modelId << ")" << endl; + SVCERR << "View[" << getId() << "]::modelChanged(" << modelId << ")" << endl; #endif // If the model that has changed is not used by any of the cached @@ -964,7 +964,7 @@ sv_frame_t myEndFrame = getEndFrame(); #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::modelChangedWithin(" << startFrame << "," << endFrame << ") [me " << myStartFrame << "," << myEndFrame << "]" << endl; + SVCERR << "View[" << getId() << "]::modelChangedWithin(" << startFrame << "," << endFrame << ") [me " << myStartFrame << "," << myEndFrame << "]" << endl; #endif if (myStartFrame > 0 && endFrame < myStartFrame) { @@ -1007,7 +1007,7 @@ View::modelCompletionChanged(ModelId modelId) { #ifdef DEBUG_PROGRESS_STUFF - cerr << "View[" << getId() << "]::modelCompletionChanged(" << modelId << ")" << endl; + SVCERR << "View[" << getId() << "]::modelCompletionChanged(" << modelId << ")" << endl; #endif checkProgress(modelId); } @@ -1016,7 +1016,7 @@ View::modelAlignmentCompletionChanged(ModelId modelId) { #ifdef DEBUG_PROGRESS_STUFF - cerr << "View[" << getId() << "]::modelAlignmentCompletionChanged(" << modelId << ")" << endl; + SVCERR << "View[" << getId() << "]::modelAlignmentCompletionChanged(" << modelId << ")" << endl; #endif checkAlignmentProgress(modelId); } @@ -1025,7 +1025,7 @@ View::modelReplaced() { #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::modelReplaced()" << endl; + SVCERR << "View[" << getId() << "]::modelReplaced()" << endl; #endif m_cacheValid = false; update(); @@ -1075,7 +1075,7 @@ if (m_followPan) { sv_frame_t f = alignFromReference(rf); #ifdef DEBUG_VIEW - cerr << "View[" << getId() << "]::globalCentreFrameChanged(" << rf + SVCERR << "View[" << getId() << "]::globalCentreFrameChanged(" << rf << "): setting centre frame to " << f << endl; #endif setCentreFrame(f, false); @@ -1096,13 +1096,13 @@ } #ifdef DEBUG_VIEW - cerr << "View::viewManagerPlaybackFrameChanged(" << f << ")" << endl; + SVCERR << "View[" << getId() << "]::viewManagerPlaybackFrameChanged(" << f << ")" << endl; #endif f = getAlignedPlaybackFrame(); #ifdef DEBUG_VIEW - cerr << " -> aligned frame = " << f << endl; + SVCERR << " -> aligned frame = " << f << endl; #endif movePlayPointer(f); @@ -1112,12 +1112,19 @@ View::movePlayPointer(sv_frame_t newFrame) { #ifdef DEBUG_VIEW - cerr << "View(" << getId() << ")::movePlayPointer(" << newFrame << ")" << endl; + SVCERR << "View[" << getId() << "]::movePlayPointer(" << newFrame << ")" << endl; #endif if (m_playPointerFrame == newFrame) return; bool visibleChange = (getXForFrame(m_playPointerFrame) != getXForFrame(newFrame)); + +#ifdef DEBUG_VIEW_WIDGET_PAINT + SVCERR << "View[" << getId() << "]::movePlayPointer: moving from " + << m_playPointerFrame << " to " << newFrame << ", visible = " + << visibleChange << endl; +#endif + sv_frame_t oldPlayPointerFrame = m_playPointerFrame; m_playPointerFrame = newFrame; if (!visibleChange) return; @@ -1176,7 +1183,7 @@ } #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "PlaybackScrollPage: f = " << m_playPointerFrame << ", sf = " << sf << ", start frame " + SVCERR << "PlaybackScrollPage: f = " << m_playPointerFrame << ", sf = " << sf << ", start frame " << getStartFrame() << endl; #endif @@ -1186,7 +1193,7 @@ int xnew = getXForFrame(m_playPointerFrame); #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "xnew = " << xnew << ", width = " << width() << endl; + SVCERR << "xnew = " << xnew << ", width = " << width() << endl; #endif bool shouldScroll = (xnew > (width() * 7) / 8); @@ -1228,7 +1235,7 @@ View::viewZoomLevelChanged(View *p, ZoomLevel z, bool locked) { #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View[" << getId() << "]: viewZoomLevelChanged(" << p << ", " << z << ", " << locked << ")" << endl; + SVCERR << "View[" << getId() << "]: viewZoomLevelChanged(" << p << ", " << z << ", " << locked << ")" << endl; #endif if (m_followZoom && p != this && locked) { setZoomLevel(z); @@ -1465,7 +1472,7 @@ for (LayerList::const_iterator i = m_layerStack.begin(); i != m_layerStack.end(); ++i) { // SVDEBUG << "View::getScrollableBackLayers: calling isLayerDormant on layer " << *i << endl; -// cerr << "(name is " << (*i)->objectName() << ")" +// SVCERR << "(name is " << (*i)->objectName() << ")" // << endl; // SVDEBUG << "View::getScrollableBackLayers: I am " << getId() << endl; if ((*i)->isLayerDormant(this)) continue; @@ -1565,7 +1572,7 @@ level = getZoomConstraintLevel (level.incremented(), ZoomConstraint::RoundUp); } -// cerr << "View::countZoomLevels: " << n << endl; +// SVCERR << "View::countZoomLevels: " << n << endl; return n; } @@ -1578,7 +1585,7 @@ ZoomLevel level = min; while (true) { if (n == ix) { -// cerr << "View::getZoomLevelByIndex: " << ix << " -> " << level +// SVCERR << "View::getZoomLevelByIndex: " << ix << " -> " << level // << endl; return level; } @@ -1589,7 +1596,7 @@ level = getZoomConstraintLevel (level.incremented(), ZoomConstraint::RoundUp); } -// cerr << "View::getZoomLevelByIndex: " << ix << " -> " << max << " (max)" +// SVCERR << "View::getZoomLevelByIndex: " << ix << " -> " << max << " (max)" // << endl; return max; } @@ -1603,7 +1610,7 @@ ZoomLevel level = min; while (true) { if (z == level) { -// cerr << "View::getZoomLevelIndex: " << z << " -> " << n +// SVCERR << "View::getZoomLevelIndex: " << z << " -> " << n // << endl; return n; } @@ -1614,7 +1621,7 @@ level = getZoomConstraintLevel (level.incremented(), ZoomConstraint::RoundUp); } -// cerr << "View::getZoomLevelIndex: " << z << " -> " << n << " (max)" +// SVCERR << "View::getZoomLevelIndex: " << z << " -> " << n << " (max)" // << endl; return n; } @@ -2030,7 +2037,13 @@ View::paintEvent(QPaintEvent *e) { // Profiler prof("View::paintEvent", false); -// cerr << "View::paintEvent: centre frame is " << m_centreFrame << endl; + +#ifdef DEBUG_VIEW_WIDGET_PAINT + { + sv_frame_t startFrame = getStartFrame(); + SVCERR << "View[" << getId() << "]::paintEvent: centre frame is " << m_centreFrame << " (start frame " << startFrame << ", height " << height() << ")" << endl; + } +#endif if (m_layerStack.empty()) { QFrame::paintEvent(e); @@ -2096,7 +2109,7 @@ LayerList nonScrollables = getNonScrollableFrontLayers(true, layersChanged); #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: have " << scrollables.size() + SVCERR << "View[" << getId() << "]::paintEvent: have " << scrollables.size() << " scrollable back layers and " << nonScrollables.size() << " non-scrollable front layers" << endl; #endif @@ -2126,7 +2139,7 @@ cacheAreaToRepaint = wholeArea; #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << "): cache " << m_cache << ", cache zoom " + SVCERR << "View[" << getId() << "]: cache " << m_cache << ", cache zoom " << m_cacheZoomLevel << ", zoom " << m_zoomLevel << endl; #endif @@ -2146,7 +2159,7 @@ shouldRepaintCache = false; #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: cache is invalid but only small area requested, will repaint directly instead" << endl; + SVCERR << "View[" << getId() << "]::paintEvent: cache is invalid but only small area requested, will repaint directly instead" << endl; #endif } else { @@ -2157,7 +2170,7 @@ } #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: cache is invalid, will repaint whole" << endl; + SVCERR << "View[" << getId() << "]::paintEvent: cache is invalid, will repaint whole" << endl; #endif } @@ -2165,6 +2178,10 @@ } else if (m_cacheCentreFrame != m_centreFrame) { +#ifdef DEBUG_VIEW_WIDGET_PAINT + SVCERR << "View[" << getId() << "]::paintEvent: cache centre frame is " << m_cacheCentreFrame << endl; +#endif + int dx = dpratio * (getXForFrame(m_cacheCentreFrame) - getXForFrame(m_centreFrame)); @@ -2183,18 +2200,18 @@ count.partial(); #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: scrolled cache by " << dx << endl; + SVCERR << "View[" << getId() << "]::paintEvent: scrolled cache by " << dx << endl; #endif } else { count.miss(); #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: scrolling too far" << endl; + SVCERR << "View[" << getId() << "]::paintEvent: scrolling too far" << endl; #endif } } else { #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: cache is good" << endl; + SVCERR << "View[" << getId() << "]::paintEvent: cache is good" << endl; #endif count.hit(); shouldRepaintCache = false; @@ -2202,7 +2219,7 @@ } #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "View(" << getId() << ")::paintEvent: m_cacheValid = " << m_cacheValid << ", shouldUseCache = " << shouldUseCache << ", shouldRepaintCache = " << shouldRepaintCache << ", cacheAreaToRepaint = " << cacheAreaToRepaint.x() << "," << cacheAreaToRepaint.y() << " " << cacheAreaToRepaint.width() << "x" << cacheAreaToRepaint.height() << endl; + SVCERR << "View[" << getId() << "]::paintEvent: m_cacheValid = " << m_cacheValid << ", shouldUseCache = " << shouldUseCache << ", shouldRepaintCache = " << shouldRepaintCache << ", cacheAreaToRepaint = " << cacheAreaToRepaint.x() << "," << cacheAreaToRepaint.y() << " " << cacheAreaToRepaint.width() << "x" << cacheAreaToRepaint.height() << endl; #endif if (shouldRepaintCache && !shouldUseCache) { @@ -2281,7 +2298,7 @@ } #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "Painting scrollable layer " << layer << " (model " << layer->getModel() << ", source model " << layer->getSourceModel() << ") with shouldRepaintCache = " << shouldRepaintCache << ", useAligningProxy = " << useAligningProxy << ", dpratio = " << dpratio << ", areaToPaint = " << areaToPaint.x() << "," << areaToPaint.y() << " " << areaToPaint.width() << "x" << areaToPaint.height() << endl; + SVCERR << "Painting scrollable layer " << layer << " (model " << layer->getModel() << ", source model " << layer->getSourceModel() << ") with shouldRepaintCache = " << shouldRepaintCache << ", useAligningProxy = " << useAligningProxy << ", dpratio = " << dpratio << ", areaToPaint = " << areaToPaint.x() << "," << areaToPaint.y() << " " << areaToPaint.width() << "x" << areaToPaint.height() << endl; #endif layer->paint(useAligningProxy ? &aligningProxy : &proxy, @@ -2333,7 +2350,7 @@ } #ifdef DEBUG_VIEW_WIDGET_PAINT - cerr << "Painting non-scrollable layer " << layer << " (model " << layer->getModel() << ", source model " << layer->getSourceModel() << ") with shouldRepaintCache = " << shouldRepaintCache << ", useAligningProxy = " << useAligningProxy << ", dpratio = " << dpratio << ", requestedPaintArea = " << requestedPaintArea.x() << "," << requestedPaintArea.y() << " " << requestedPaintArea.width() << "x" << requestedPaintArea.height() << endl; + SVCERR << "Painting non-scrollable layer " << layer << " (model " << layer->getModel() << ", source model " << layer->getSourceModel() << ") with shouldRepaintCache = " << shouldRepaintCache << ", useAligningProxy = " << useAligningProxy << ", dpratio = " << dpratio << ", requestedPaintArea = " << requestedPaintArea.x() << "," << requestedPaintArea.y() << " " << requestedPaintArea.width() << "x" << requestedPaintArea.height() << endl; #endif layer->paint(useAligningProxy ? &aligningProxy : &proxy, @@ -2884,7 +2901,7 @@ paint.save(); paint.translate(xorigin + x, 0); - cerr << "Centre frame now: " << m_centreFrame << " drawing to " << chunk.x() + x + xorigin << ", " << chunk.width() << endl; + SVCERR << "Centre frame now: " << m_centreFrame << " drawing to " << chunk.x() + x + xorigin << ", " << chunk.width() << endl; (*i)->setSynchronousPainting(true); @@ -3025,7 +3042,7 @@ ViewPropertyContainer::ViewPropertyContainer(View *v) : m_v(v) { -// cerr << "ViewPropertyContainer: " << getId() << " is owned by View " << v << endl; +// SVCERR << "ViewPropertyContainer: " << getId() << " is owned by View " << v << endl; connect(m_v, SIGNAL(propertyChanged(PropertyContainer::PropertyName)), this, SIGNAL(propertyChanged(PropertyContainer::PropertyName))); }