void KWOutlineShape::paintDecorations(QPainter &painter, const KoViewConverter &converter, const KoCanvasBase *canvas) { if (! canvas->shapeManager()->selection()->isSelected(this)) return; applyConversion(painter, converter); QPen pen = QPen(canvas->resourceProvider()->koColorResource(KWord::FrameOutlineColor).toQColor()); QPointF onePixel = converter.viewToDocument(QPointF(1, 1)); pen.setWidthF(onePixel.x()); painter.strokePath(outline(), pen); }
void TestSnapStrategy::testBoundingBoxDecoration() { //tests the decoration by making sure the returned path has the pre-calculated end point BoundingBoxSnapStrategy toTest; KoViewConverter viewConverter; QSizeF unzoomedSize = viewConverter.viewToDocument(QSizeF(5, 5)); QPointF snappedPos(0,0); QPointF originalEndPoint(snappedPos + QPointF(unzoomedSize.width(), -unzoomedSize.height())); QPainterPath resultingDecoration = toTest.decoration(viewConverter); QVERIFY( resultingDecoration.currentPosition() == originalEndPoint ); }
void TestSnapStrategy::testLineGuideDecoration() { //tests the decoration by making sure there are horizontal and vertical lines in the guidesData LineGuideSnapStrategy toTest; const QPointF paramMousePosTwo; MockShapeController fakeShapeControllerBaseTwo; MockCanvas fakeKoCanvasBaseTwo(&fakeShapeControllerBaseTwo); KoGuidesData guidesData; //firstSnapPointList.push_back( QList<qreal> horzLines; horzLines.push_back(2); horzLines.push_back(3); horzLines.push_back(4); horzLines.push_back(5); QList<qreal> vertLines; vertLines.push_back(1); vertLines.push_back(2); vertLines.push_back(3); vertLines.push_back(4); guidesData.setHorizontalGuideLines(horzLines); guidesData.setVerticalGuideLines(vertLines); fakeKoCanvasBaseTwo.setGuidesData(&guidesData); qreal paramSnapDistanceTwo = 8; KoSnapGuide aKoSnapGuideTwo(&fakeKoCanvasBaseTwo); KoSnapProxy paramProxyTwo(&aKoSnapGuideTwo); toTest.snap(paramMousePosTwo, ¶mProxyTwo, paramSnapDistanceTwo); KoViewConverter parameterConverter; QSizeF unzoomedSize = parameterConverter.viewToDocument(QSizeF(5, 5)); QPointF snappedPos(1,2); QPointF originalEndPointOne(snappedPos + QPointF(unzoomedSize.width(), 0)); QPointF originalEndPointTwo(snappedPos + QPointF(0, unzoomedSize.height())); QPainterPath resultingDecoration = toTest.decoration(parameterConverter); QVERIFY( (resultingDecoration.currentPosition() == originalEndPointOne) || (resultingDecoration.currentPosition() == originalEndPointTwo ) ); }
void TestSnapStrategy::testGridDecoration() { //Tests the decoration by making sure the path returned has the calculated endpoint GridSnapStrategy toTest; const QPointF paramMousePosTwo(40,60); MockShapeController fakeShapeControllerBaseTwo; MockCanvas fakeKoCanvasBaseTwo(&fakeShapeControllerBaseTwo); fakeKoCanvasBaseTwo.setHorz(10); fakeKoCanvasBaseTwo.setVert(8); KoSnapGuide aKoSnapGuideTwo(&fakeKoCanvasBaseTwo); KoSnapProxy paramProxyTwo(&aKoSnapGuideTwo); qreal paramSnapDistanceTwo = 8; toTest.snap(paramMousePosTwo, ¶mProxyTwo, paramSnapDistanceTwo); KoViewConverter viewConverter; QSizeF unzoomedSize = viewConverter.viewToDocument(QSizeF(5, 5)); QPointF snappedPos(40, 56); //the snapped position is 40, 56 because horz 10 - so 40 is right on the gridline, and 56 because 7*8 = 56 which is within 8 of 60 QPointF originalEndPoint(snappedPos + QPointF(0, unzoomedSize.height())); QPainterPath resultingDecoration = toTest.decoration(viewConverter); QVERIFY( resultingDecoration.currentPosition() == originalEndPoint ); }
void KarbonPatternEditStrategyBase::paintHandle( QPainter &painter, const KoViewConverter &converter, const QPointF &position ) const { QRectF handleRect = converter.viewToDocument( QRectF( 0, 0, 2*m_handleRadius, 2*m_handleRadius ) ); handleRect.moveCenter( position ); painter.drawRect( handleRect ); }