[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#463438: Is the following (kspread) code correct?

Assuming that qt knows about the difference between a printer and a screen 
QPainter instance, the reported bug might be caused by accidentially using a 
screen QPainter instead of a printer one. This would cause (for a given 
DisplaySize parameter in Xorg.conf) a wrong printer layout as observed. In 
koffice 1.5 I found in kspread_sheetprint.cc the following code at 
SheetPrint::print() :

      QPixmap *p = new QPixmap( zoomRect.size() );
      QPainter painter(p);

Do the authors intend to cache all objects to be printed in Pixmaps? Later the 
painter object is passed downward to render the object content. But this 
might cause the bug: for the static QPainter instance Qt might assume that it 
is a screen context, the DisplaySize is in effect. Later the QPixmap will be 
copied to the print context but this will spoil the layout (printer doesn't 
know about DisplaySize).

Reply to: