void zoomhandler_test::testViewToDocument() { KoZoomHandler zoomHandler; zoomHandler.setZoom( 1.0 ); zoomHandler.setDpi( 100, 100 ); QCOMPARE( zoomHandler.viewToDocument( QPointF( 0, 0 ) ), QPointF( 0, 0 ) ); // 100 view pixels are 72 postscript points at 100% zoom, 100ppi. QCOMPARE( zoomHandler.viewToDocument( QRectF( 0, 0, 100, 100 ) ), QRectF( 0, 0, 72, 72 ) ); QCOMPARE( zoomHandler.viewToDocumentX( 0 ), 0. ); QCOMPARE( zoomHandler.viewToDocumentY( 0 ), 0. ); }
QVariant CQSpreadsheetListModel::data(const QModelIndex& index, int role) const { if (!index.isValid() || !d->map) { return QVariant(); } switch(role) { case SheetNameRole: return d->map->sheet(index.row())->sheetName(); case ThumbnailRole: { if (d->thumbnails.contains(index.row())) { return d->thumbnails.value(index.row()); } QPixmap thumbnail(d->thumbnailSize); QRect rect(QPoint(0,0), d->thumbnailSize); QPainter p(&thumbnail); p.fillRect(rect, Qt::white); Calligra::Sheets::SheetView sheetView(d->map->sheet(index.row())); qreal zoom = 0.5; KoZoomHandler zoomHandler; zoomHandler.setZoom(zoom); p.setClipRect(rect); p.scale(zoom, zoom); sheetView.setViewConverter(&zoomHandler); QRectF area = zoomHandler.viewToDocument(rect); QRect range = sheetView.sheet()->documentToCellCoordinates(area).adjusted(0, 0, 2, 2); sheetView.setPaintCellRange(range); sheetView.paintCells(p, area, QPointF(0,0)); d->thumbnails.insert(index.row(), thumbnail); return thumbnail; } default: break; } return QVariant(); }