void SimpleParagraphWidget::fillListButtons() { KoZoomHandler zoomHandler; zoomHandler.setZoom(1.2); zoomHandler.setDpi(72, 72); KoInlineTextObjectManager itom; KoTextRangeManager tlm; TextShape textShape(&itom, &tlm); textShape.setSize(QSizeF(300, 100)); QTextCursor cursor (textShape.textShapeData()->document()); foreach(const Lists::ListStyleItem &item, Lists::genericListStyleItems()) { QPixmap pm(48,48); pm.fill(Qt::transparent); QPainter p(&pm); p.translate(0, -1.5); p.setRenderHint(QPainter::Antialiasing); if(item.style != KoListStyle::None) { KoListStyle listStyle; KoListLevelProperties llp = listStyle.levelProperties(1); llp.setStyle(item.style); if (KoListStyle::isNumberingStyle(item.style)) { llp.setStartValue(1); llp.setListItemSuffix("."); } listStyle.setLevelProperties(llp); cursor.select(QTextCursor::Document); QTextCharFormat textCharFormat=cursor.blockCharFormat(); textCharFormat.setFontPointSize(11); textCharFormat.setFontWeight(QFont::Normal); cursor.setCharFormat(textCharFormat); QTextBlock cursorBlock = cursor.block(); KoTextBlockData data(cursorBlock); cursor.insertText("----"); listStyle.applyStyle(cursor.block(),1); cursorBlock = cursor.block(); KoTextBlockData data1(cursorBlock); cursor.insertText("\n----"); cursorBlock = cursor.block(); KoTextBlockData data2(cursorBlock); cursor.insertText("\n----"); cursorBlock = cursor.block(); KoTextBlockData data3(cursorBlock); KoTextDocumentLayout *lay = dynamic_cast<KoTextDocumentLayout*>(textShape.textShapeData()->document()->documentLayout()); if(lay) lay->layout(); KoShapePaintingContext paintContext; //FIXME textShape.paintComponent(p, zoomHandler, paintContext); widget.bulletListButton->addItem(pm, static_cast<int> (item.style)); } }
void zoomhandler_test::testDocumentToView() { KoZoomHandler zoomHandler; zoomHandler.setZoom( 1.0 ); zoomHandler.setDpi( 100, 100 ); QCOMPARE( zoomHandler.documentToView( QPointF( 0,0 ) ), QPointF( 0, 0 ) ); QCOMPARE( zoomHandler.documentToView( QRectF( 0, 0, 72, 72 ) ), QRectF( 0, 0, 100, 100) ); QCOMPARE( zoomHandler.documentToViewX( 72 ), 100. ); QCOMPARE( zoomHandler.documentToViewY( 72 ), 100. ); }
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. ); }
void TestViewMode::testPageSetupChanged() { KWPageManager pageManager; //set up as a page spread; KoPageLayout pageLayout = pageManager.defaultPageStyle().pageLayout(); pageLayout.leftMargin = -1; pageLayout.rightMargin = -1; pageLayout.pageEdge = 20; pageLayout.bindingSide = 25; pageManager.defaultPageStyle().setPageLayout(pageLayout); KoZoomHandler zoomer; zoomer.setZoom(1.0); zoomer.setDpi(72, 72); // BORING :) MyViewModeNormal viewMode; viewMode.setPageManager(&pageManager); viewMode.setViewConverter(&zoomer); pageManager.appendPage(); // page 1 pageManager.appendPage(); // page 2 & 3 QCOMPARE(pageManager.pageCount(), 3); viewMode.pageSetupChanged(); QCOMPARE(viewMode.pageTops().count(), 3); QCOMPARE(viewMode.pageSpreadMode(), true); KWPage lastPage = pageManager.appendPage(); // page 4 & 5 viewMode.pageSetupChanged(); QCOMPARE(viewMode.pageTops().count(), 5); QCOMPARE(viewMode.pageSpreadMode(), true); pageManager.removePage(lastPage); viewMode.pageSetupChanged(); QCOMPARE(viewMode.pageTops().count(), 3); QCOMPARE(viewMode.pageSpreadMode(), true); }
void TestViewMode::testBasicConversion() { const int A4_HEIGHT = 842; KWPageManager pageManager; KoZoomHandler zoomer; zoomer.setZoom(1); zoomer.setDpi(72, 72); // BORING :) MyViewModeNormal viewMode; viewMode.setPageManager(&pageManager); viewMode.setViewConverter(&zoomer); QCOMPARE(viewMode.pageTops().count(), 0); QCOMPARE(viewMode.pageSpreadMode(), false); QCOMPARE(viewMode.contents(), QSizeF(0, 0)); pageManager.appendPage(); //one A4 page. viewMode.pageSetupChanged(); QCOMPARE(viewMode.pageTops().count(), 1); QCOMPARE(viewMode.pageSpreadMode(), false); QCOMPARE(viewMode.contents().toSize(), QSize(595, A4_HEIGHT)); // approximate size is ok QCOMPARE(viewMode.documentToView(QPointF()).toPoint(), QPoint()); QCOMPARE(viewMode.documentToView(QPointF(10, 10)).toPoint(), QPoint(10, 10)); QCOMPARE(viewMode.documentToView(QPointF(590, 10)).toPoint(), QPoint(590, 10)); QCOMPARE(viewMode.documentToView(QPointF(590, 840)).toPoint(), QPoint(590, 840)); QCOMPARE(viewMode.documentToView(QPointF(600, 840)).toPoint(), QPoint(600, 840)); // no clipping horizontally QCOMPARE(viewMode.documentToView(QPointF(50, 1000)).toPoint(), QPoint(50, 1000)); // no clipping vertically QCOMPARE(viewMode.viewToDocument(QPointF()).toPoint(), QPoint()); QCOMPARE(viewMode.viewToDocument(QPointF(10, 10)).toPoint(), QPoint(10, 10)); QCOMPARE(viewMode.viewToDocument(QPointF(590, 10)).toPoint(), QPoint(590, 10)); QCOMPARE(viewMode.viewToDocument(QPointF(590, 840)).toPoint(), QPoint(590, 840)); QCOMPARE(viewMode.viewToDocument(QPointF(600, 840)).toPoint(), QPoint(600, 840)); // no clipping horizontally QCOMPARE(viewMode.viewToDocument(QPointF(50, 1000)).toPoint(), QPoint(50, 1000)); // no clipping vertically KWPage page2 = pageManager.appendPage(); page2.setPageSide(KWPage::PageSpread); viewMode.pageSetupChanged(); QCOMPARE(viewMode.pageTops().count(), 3); QCOMPARE(viewMode.pageSpreadMode(), true); QCOMPARE(viewMode.contents().toSize(), QSize(1191, A4_HEIGHT * 2 + PAGEGAP)); // just A4 times 2, plus the PAGEGAP px gap between pages QCOMPARE(viewMode.pageTops()[0], 0.0); QCOMPARE(qRound(viewMode.pageTops()[1]), A4_HEIGHT + PAGEGAP); QCOMPARE(qRound(viewMode.pageTops()[2]), A4_HEIGHT + PAGEGAP); // for a pageSpread we don't move the top of page QCOMPARE(viewMode.documentToView(QPointF()).toPoint(), QPoint()); QCOMPARE(viewMode.documentToView(QPointF(10, 10)).toPoint(), QPoint(10, 10)); QCOMPARE(viewMode.documentToView(QPointF(590, 10)).toPoint(), QPoint(590, 10)); QCOMPARE(viewMode.documentToView(QPointF(590, 840)).toPoint(), QPoint(590, 840)); QCOMPARE(viewMode.documentToView(QPointF(600, 840)).toPoint(), QPoint(600, 840)); QCOMPARE(viewMode.documentToView(QPointF(50, 1000)).toPoint(), QPoint(50, 1000 + PAGEGAP)); QCOMPARE(viewMode.documentToView(QPointF(1000, 1000)).toPoint(), QPoint(1000, 1000 + PAGEGAP)); // no clipping vertically QCOMPARE(viewMode.viewToDocument(QPointF()).toPoint(), QPoint()); QCOMPARE(viewMode.viewToDocument(QPointF(10, 10)).toPoint(), QPoint(10, 10)); QCOMPARE(viewMode.viewToDocument(QPointF(590, 10)).toPoint(), QPoint(590, 10)); QCOMPARE(viewMode.viewToDocument(QPointF(590, 840)).toPoint(), QPoint(590, 840)); QCOMPARE(viewMode.viewToDocument(QPointF(600, 840)).toPoint(), QPoint(600, 840)); QCOMPARE(viewMode.viewToDocument(QPointF(50, 1000 + PAGEGAP)).toPoint(), QPoint(50, 1000)); QCOMPARE(viewMode.viewToDocument(QPointF(1000, 1000 + PAGEGAP)).toPoint(), QPoint(1000, 1000)); // no clipping vertically // rectangles are more tricky ;) QList<KWViewMode::ViewMap> answer; answer = viewMode.mapExposedRects(QRect(10, 10, 10, 10)); QCOMPARE(answer.count(), 1); QCOMPARE(answer[0].clipRect, QRect(10, 10, 10, 10)); QCOMPARE(answer[0].distance, QPointF()); answer = viewMode.mapExposedRects(QRect(10, 10, 10, 1000)); QCOMPARE(answer.count(), 2); QCOMPARE(answer[0].clipRect, QRect(10, 10, 10, A4_HEIGHT - 10)); QCOMPARE(answer[0].distance, QPointF()); QCOMPARE(answer[1].clipRect, QRect(10, A4_HEIGHT, 10, 1000 - A4_HEIGHT + PAGEGAP)); QCOMPARE(answer[1].distance, QPointF(0, PAGEGAP)); }
void TestViewMode::testClipRectForPageSpread() { KWPageManager pageManager; //set up as a page spread; KoPageLayout pageLayout = pageManager.defaultPageStyle().pageLayout(); pageLayout.leftMargin = -1; pageLayout.rightMargin = -1; pageLayout.pageEdge = 20; pageLayout.bindingSide = 25; pageLayout.height = 200; pageLayout.width = 300; pageManager.defaultPageStyle().setPageLayout(pageLayout); KoZoomHandler zoomer; zoomer.setZoom(1.0); zoomer.setDpi(72, 72); // BORING :) MyViewModeNormal viewMode; viewMode.setPageManager(&pageManager); viewMode.setViewConverter(&zoomer); pageManager.appendPage(); // page 1 pageManager.appendPage(); // page 2 & 3 QCOMPARE(pageManager.pageCount(), 3); viewMode.pageSetupChanged(); QList<KWViewMode::ViewMap> answer; answer = viewMode.mapExposedRects(QRect(50, 180, 300, 100)); QCOMPARE(answer.count(), 2); QCOMPARE(answer[0].clipRect, QRect(50, 180, 250, 20)); // page 1 QCOMPARE(answer[0].distance, QPointF()); QCOMPARE(answer[1].clipRect, QRect(50, 200, 300, 75)); // page 2 & 3 QCOMPARE(answer[1].distance, QPointF(0, PAGEGAP)); answer = viewMode.mapExposedRects(QRect(0, 250, 1000, 50)); QCOMPARE(answer.count(), 1); QCOMPARE(answer[0].clipRect, QRect(0, 245, 600, 50)); // page 2&3 QCOMPARE(answer[0].distance, QPointF(0, PAGEGAP)); pageManager.appendPage(); // page 4 & 5 QCOMPARE(pageManager.pageCount(), 5); viewMode.pageSetupChanged(); answer = viewMode.mapExposedRects(QRect(0, 250, 1000, 50)); QCOMPARE(answer.count(), 1); QCOMPARE(answer[0].clipRect, QRect(0, 245, 600, 50)); // page 2&3 QCOMPARE(answer[0].distance, QPointF(0, PAGEGAP)); answer = viewMode.mapExposedRects(QRect(0, 450, 1000, 50)); QCOMPARE(answer.count(), 1); QCOMPARE(answer[0].clipRect, QRect(0, 440, 600, 50)); // page 4&5 QCOMPARE(answer[0].distance, QPointF(0, PAGEGAP * 2)); answer = viewMode.mapExposedRects(QRect(0, 250, 1000, 500)); QCOMPARE(answer.count(), 2); QCOMPARE(answer[0].clipRect, QRect(0, 245, 600, 155)); // page 2&3 QCOMPARE(answer[0].distance, QPointF(0, PAGEGAP)); QCOMPARE(answer[1].clipRect, QRect(0, 400, 600, 200)); // page 4&5 QCOMPARE(answer[1].distance, QPointF(0, PAGEGAP * 2)); }