QVector<QImage> CSThumbProviderWords::createThumbnails(const QSize &thumbSize) { KWCanvasItem *canvasItem = static_cast<KWCanvasItem*>(m_doc->documentPart()->canvasItem(m_doc)); KoZoomHandler zoomHandler; while (!m_doc->layoutFinishedAtleastOnce()) { QCoreApplication::processEvents(); if (!QCoreApplication::hasPendingEvents()) break; } KWPageManager *pageManager = m_doc->pageManager(); KoShapeManager *shapeManager = canvasItem->shapeManager(); QVector<QImage> thumbnails; foreach(const KWPage &page, pageManager->pages()) { QRectF pRect(page.rect()); KoPageLayout layout; layout.width = pRect.width(); layout.height = pRect.height(); KoPAUtil::setZoom(layout, thumbSize, zoomHandler); QRect pageRect = KoPAUtil::pageRect(layout, thumbSize, zoomHandler); QImage thumbnail(thumbSize, QImage::Format_RGB32); thumbnail.fill(QColor(Qt::white).rgb()); QPainter p(&thumbnail); QImage img = page.thumbnail(pageRect.size(), shapeManager); p.drawImage(pageRect, img); p.setPen(Qt::black); p.drawRect(pageRect); thumbnails.append(thumbnail); } return thumbnails; }