Example #1
0
void Q3SimpleRichTextData::adjustSize() {
    QFontMetrics fm(font);
    int mw =  fm.width(QString(QLatin1Char('x'))) * 80;
    int w = mw;
    doc->doLayout(0,w);
    if (doc->widthUsed() != 0) {
        w = qt_int_sqrt(5 * doc->height() * doc->widthUsed() / 3);
        doc->doLayout(0, qMin(w, mw));

        if (w*3 < 5*doc->height()) {
            w = qt_int_sqrt(2 * doc->height() * doc->widthUsed());
            doc->doLayout(0,qMin(w, mw));
        }
    }
    cachedWidth = doc->width();
    cachedWidthWithPainter = false;
}
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;
}