void QSingleImageView::bestFit()
{
Q_D(QSingleImageView);
QSize imageSize = d->image.size();
QSize size = viewport()->size();
int w = imageSize.width(), mw = size.width();
int h = imageSize.height(), mh = size.height();
double rw = 1.0*mw/w, rh = 1.0*mh/h, factor = 1;
if (rw < 1 && rh > 1)
factor = rw;
else if (rw > 1 && rh < 1)
factor = rh;
else if (rw < 1 && rh < 1)
factor = qMin(rw, rh);
else
factor = qMin(rw, rh);
d->setZoomFactor(factor);
}