void PictureShape::waitUntilReady(const KoViewConverter &converter, bool asynchronous) const { KoImageData *imageData = qobject_cast<KoImageData*>(userData()); if (imageData == 0) { return; } if (asynchronous) { // get pixmap and schedule it if not QSize pixels = converter.documentToView(QRectF(QPointF(0,0), size())).size().toSize(); QImage image = imageData->image(); if (image.isNull()) { return; } m_printQualityRequestedSize = pixels; if (image.size().width() < pixels.width()) { // don't scale up. pixels = image.size(); } m_printQualityImage = image.scaled(pixels, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); } else { QSize pixmapSize = calcOptimalPixmapSize(converter.documentToView(QRectF(QPointF(0,0), size())).size(), imageData->image().size()); QString key(generate_key(imageData->key(), pixmapSize)); if (QPixmapCache::find(key) == 0) { QPixmap pixmap = imageData->pixmap(pixmapSize); QPixmapCache::insert(key, pixmap); } } }