Summary: | Crash when printing plot with legend | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Andrew Walker <arwalker> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | 1.x | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Proposed patch |
Description
Andrew Walker
2006-05-09 00:10:44 UTC
Can't reproduce. Created attachment 15995 [details]
Proposed patch
The problem was that updateSelf() in Kst2dPlot was being called from
revertForPrint(). This was causing a negatively sized plot region. Once this
propagated through to KstViewLegend the resulting null bitmap resulted in a
crash.
The revertForPrint() is no longer necessary as the various bugs in the clip
region and buffering have since been addressed.
SVN commit 539423 by arwalker: BUG:126992 A narrower fix than the proposed patch, as we may wish to later change the printing resize functions M +10 -8 kstviewlegend.cpp M +0 -3 kstviewobject.cpp --- trunk/extragear/graphics/kst/src/libkstapp/kstviewlegend.cpp #539422:539423 @@ -207,14 +207,16 @@ setDirty(false); _backBuffer.buffer().resize(contentsRect().size()); - _backBuffer.buffer().fill(backgroundColor()); - KstPainter p; - p.begin(&_backBuffer.buffer()); - QPen pen; - pen.setColor(foregroundColor()); - p.setPen(pen); - drawToPainter(p); - p.end(); + if (!_backBuffer.buffer().isNull()) { + _backBuffer.buffer().fill(backgroundColor()); + KstPainter p; + p.begin(&_backBuffer.buffer()); + QPen pen; + pen.setColor(foregroundColor()); + p.setPen(pen); + drawToPainter(p); + p.end(); + } } --- trunk/extragear/graphics/kst/src/libkstapp/kstviewobject.cpp #539422:539423 @@ -625,7 +625,6 @@ void KstViewObject::parentResizedForPrint() { _geomOld = _geom; updateFromAspect(); - //updateSelf(); for (KstViewObjectList::Iterator i = _children.begin(); i != _children.end(); ++i) { (*i)->parentResizedForPrint(); } @@ -634,8 +633,6 @@ void KstViewObject::parentRevertedForPrint() { _geom = _geomOld; - invalidateClipRegion(); - updateSelf(); for (KstViewObjectList::Iterator i = _children.begin(); i != _children.end(); ++i) { (*i)->parentRevertedForPrint(); } |