void KisSelectionTest::testSelectionComponents() { KisSelectionSP selection = new KisSelection(); QVERIFY(selection->hasPixelSelection() == false); QVERIFY(selection->hasShapeSelection() == false); QVERIFY(selection->pixelSelection() == 0); QVERIFY(selection->shapeSelection() == 0); KisPixelSelectionSP pixelSelection = selection->getOrCreatePixelSelection(); QVERIFY(selection->pixelSelection() == pixelSelection); QVERIFY(selection->hasPixelSelection() == true); KisMaskSP mask = new KisTransparencyMask(); mask->select(QRect(0, 0, 100, 100)); QCOMPARE(mask->selection()->selectedRect(), QRect(0,0,128, 128)); QCOMPARE(mask->selection()->selectedExactRect(), QRect(0, 0, 100, 100)); selection = new KisSelection(0, mask); selection->updateProjection(); QVERIFY(selection->hasPixelSelection() == true); QCOMPARE(selection->selectedRect(), QRect(0,0,128, 128)); QCOMPARE(selection->selectedExactRect(), QRect(0, 0, 100, 100)); }
void KisMaskTest::testSelectionParent() { { const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8(); KisImageSP image = new KisImage(0, 100, 100, cs, "stest"); KisMaskSP mask = new TestMask; mask->initSelection(image->rootLayer()); KisSelectionSP selection = mask->selection(); QCOMPARE(selection->parentNode(), KisNodeSP(mask)); } { KisMaskSP mask = new TestMask; mask->setSelection(new KisSelection()); KisSelectionSP selection = mask->selection(); QCOMPARE(selection->parentNode(), KisNodeSP(mask)); } }
void KisMaskTest::testDeferredOffsetInitialization() { const KoColorSpace * cs = KoColorSpaceRegistry::instance()->rgb8(); KisImageSP image = new KisImage(0, 100, 100, cs, "stest"); KisMaskSP mask = new TestMask; QCOMPARE(mask->x(), 0); QCOMPARE(mask->y(), 0); mask->setX(10); QCOMPARE(mask->x(), 10); QCOMPARE(mask->y(), 0); mask->setY(11); QCOMPARE(mask->x(), 10); QCOMPARE(mask->y(), 11); mask->initSelection(image->rootLayer()); // IMPORTANT: a bit weird behavior, but it is needed for // KisKraLoadVisitor to work properly QCOMPARE(mask->x(), 10); QCOMPARE(mask->y(), 11); // Now there is no deferred initialization, so the offest // should simply be reset mask->initSelection(image->rootLayer()); QCOMPARE(mask->x(), 0); QCOMPARE(mask->y(), 0); KisSelectionSP selection = mask->selection(); QCOMPARE(selection->parentNode(), KisNodeSP(mask)); }