void QSimpleRichTextData::adjustSize(QPainter *p) { QFontMetrics fm( font ); int mw = fm.width( 'x' ) * 80; int w = mw; doc->doLayout(p, w); if ( doc->widthUsed() != 0 ) { w = qt_int_sqrt( 5 * doc->height() * doc->widthUsed() / 3 ); doc->doLayout(p, QMIN(w, mw)); if ( w*3 < 5*doc->height() ) { w = qt_int_sqrt( 2 * doc->height() * doc->widthUsed() ); doc->doLayout(p, QMIN(w, mw)); } } cachedWidth = doc->width(); cachedWidthWithPainter = FALSE; }