| 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 First Reported In: | 1.x | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented 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();
}
|