void TestShapePainting::testPaintShape() { MockShape *shape1 = new MockShape(); MockShape *shape2 = new MockShape(); MockContainer *container = new MockContainer(); container->addShape(shape1); container->addShape(shape2); QCOMPARE(shape1->parent(), container); QCOMPARE(shape2->parent(), container); container->setClipped(shape1, false); container->setClipped(shape2, false); QCOMPARE(container->isClipped(shape1), false); QCOMPARE(container->isClipped(shape2), false); MockCanvas canvas; KoShapeManager manager(&canvas); manager.addShape(container); QCOMPARE(manager.shapes().count(), 3); QImage image(100, 100, QImage::Format_Mono); QPainter painter(&image); KoViewConverter vc; manager.paint(painter, vc, false); // with the shape not being clipped, the shapeManager will paint it for us. QCOMPARE(shape1->paintedCount, 1); QCOMPARE(shape2->paintedCount, 1); QCOMPARE(container->paintedCount, 1); // the container should thus not paint the shape shape1->paintedCount = 0; shape2->paintedCount = 0; container->paintedCount = 0; KoShapePaintingContext paintContext; container->paint(painter, vc, paintContext); QCOMPARE(shape1->paintedCount, 0); QCOMPARE(shape2->paintedCount, 0); QCOMPARE(container->paintedCount, 1); container->setClipped(shape1, false); container->setClipped(shape2, true); QCOMPARE(container->isClipped(shape1), false); QCOMPARE(container->isClipped(shape2), true); shape1->paintedCount = 0; shape2->paintedCount = 0; container->paintedCount = 0; manager.paint(painter, vc, false); // with this shape not being clipped, the shapeManager will paint the container and this shape QCOMPARE(shape1->paintedCount, 1); // with this shape being clipped, the container will paint it for us. QCOMPARE(shape2->paintedCount, 1); QCOMPARE(container->paintedCount, 1); delete container; }
void TestShapePainting::testPaintShape() { MockShape shape1; MockShape shape2; MockContainer container; KComponentData componentData("TestShapePainting"); // we need an instance for that canvas container.addShape(&shape1); container.addShape(&shape2); QCOMPARE(shape1.parent(), &container); QCOMPARE(shape2.parent(), &container); container.setClipped(&shape1, false); container.setClipped(&shape2, false); QCOMPARE(container.isClipped(&shape1), false); QCOMPARE(container.isClipped(&shape2), false); MockCanvas canvas; KShapeManager manager(&canvas); manager.addShape(&container); QCOMPARE(manager.shapes().count(), 3); QImage image(100, 100, QImage::Format_Mono); QPainter painter(&image); KViewConverter vc; manager.paint(painter, vc, false); // with the shape not being clipped, the shapeManager will paint it for us. QCOMPARE(shape1.paintedCount, 1); QCOMPARE(shape2.paintedCount, 1); QCOMPARE(container.paintedCount, 1); // the container should thus not paint the shape shape1.paintedCount = 0; shape2.paintedCount = 0; container.paintedCount = 0; container.paint(painter, vc); QCOMPARE(shape1.paintedCount, 0); QCOMPARE(shape2.paintedCount, 0); QCOMPARE(container.paintedCount, 1); container.setClipped(&shape1, false); container.setClipped(&shape2, true); QCOMPARE(container.isClipped(&shape1), false); QCOMPARE(container.isClipped(&shape2), true); shape1.paintedCount = 0; shape2.paintedCount = 0; container.paintedCount = 0; manager.paint(painter, vc, false); // with this shape not being clipped, the shapeManager will paint the container and this shape QCOMPARE(shape1.paintedCount, 1); // with this shape being clipped, the container will paint it for us. QCOMPARE(shape2.paintedCount, 1); QCOMPARE(container.paintedCount, 1); }