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;
}