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 EditFrame::Translate(const QPoint &delta, bool snap) { QWidget *pParent = parentWidget(); if( pParent ) { QPoint newPos(pParent->pos() + delta); if( snap ) { QPoint snappedPos(newPos); Utils::Snap(ToyWindowTab::GRID_SPACING, snappedPos); if(delta.x() != 0) newPos.setX( snappedPos.x() ); if(delta.y() != 0) newPos.setY( snappedPos.y() ); } SetPos(newPos); } }
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 ); }