void TestFrameLayout::testCopyShapes() { Helper helper; m_frames.clear(); KWPage page = helper.pageManager->page(1); KWFrameLayout bfl(helper.pageManager, m_frames); connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*))); KWTextFrameSet *fs = bfl.getOrCreate(Words::OddPagesHeaderTextFrameSet, page); m_frames.append(fs); bfl.m_setup = false; helper.pageStyle.setHeaderPolicy(Words::HFTypeEvenOdd); KWTextFrame *tf = createFrame(QPointF(0,0), *fs); KWFrame *cf = createCopyFrame(QPointF(0,300), tf->shape(), *fs); QVERIFY(fs->frameCount()==2); //FIXME QVERIFY(bfl.hasFrameOn(fs, 1)); delete tf->shape(); QVERIFY(fs->frameCount()==1); //FIXME QVERIFY(!bfl.hasFrameOn(fs, 1)); //now try and add a copyframe without crashing //sebsauer; it's not crashing but asserting at KWFrameLayout.cpp:750 now //bfl.createNewFramesForPage(1); }
void TestPageCommands::testRemovePageCommand4() // auto remove of frames { KWDocument document; KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); KWFrameSet *fs = new KWFrameSet(); document.addFrameSet(fs); MockShape *shape1 = new MockShape(); new KWFrame(shape1, fs); KWTextFrameSet *tfs = new KWTextFrameSet(&document, Words::MainTextFrameSet); document.addFrameSet(tfs); MockShape *shape2 = new MockShape(); shape2->setUserData(new KoTextShapeData()); new KWTextFrame(shape2, tfs); KWTextFrameSet *header = new KWTextFrameSet(&document, Words::EvenPagesHeaderTextFrameSet); document.addFrameSet(header); MockShape *shape3 = new MockShape(); shape3->setUserData(new KoTextShapeData()); new KWTextFrame(shape3, header); KWPageRemoveCommand command(&document, insertCommand.page()); QCOMPARE(document.frameSetCount(), 3); command.redo(); QCOMPARE(document.frameSetCount(), 2); // only the main&header framesets are left QVERIFY(document.frameSets().contains(tfs)); QVERIFY(document.frameSets().contains(header)); QCOMPARE(fs->frameCount(), 0); QCOMPARE(tfs->frameCount(), 0); QCOMPARE(header->frameCount(), 0); command.undo(); QCOMPARE(document.frameSetCount(), 3); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 0); // doesn't get auto-added QCOMPARE(header->frameCount(), 0); // doesn't get auto-added }
void TestFrames::testCopyShapes() { KWTextFrameSet *fs = new KWTextFrameSet(0, KWord::OddPagesHeaderTextFrameSet); MockShape *orig = new MockShape(); orig->setUserData(new KTextShapeData()); KWTextFrame *tf = new KWTextFrame(orig, fs); orig->setPosition(QPointF(10, 10)); KWCopyShape *copy = new KWCopyShape(orig); new KWFrame(copy, fs); copy->setPosition(QPointF(20, 100)); QCOMPARE(fs->frameCount(), 2); delete tf->shape(); // causes the first frame to be deleted. QCOMPARE(fs->frameCount(), 1); // the deletion of the orig should have caused the copy shape to be disconnected QVERIFY(copy->original() == 0); // please don't crash.. copy->outline(); }
void TestFrameLayout::testCreateNewFramesForPage() { Helper helper; m_frames.clear(); QVERIFY(m_frames.count() == 0); KWFrameLayout bfl(helper.pageManager, m_frames); KWPage page = helper.pageManager->page(1); connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*))); KWTextFrameSet *main = bfl.getOrCreate(Words::MainTextFrameSet, page); QVERIFY(main); QVERIFY(bfl.frameOn(main, 1) == 0); KoShape *shape = new MockTextShape(); new KWTextFrame(shape, main); QCOMPARE(main->frameCount(), 1); QVERIFY(bfl.frameOn(main, 1)); bfl.createNewFramesForPage(1); QCOMPARE(main->frameCount(), 1); }
void TestPageCommands::testInsertPageCommand2() // auto remove of frames { KWDocument document; KWFrameSet *fs = new KWFrameSet(); document.addFrameSet(fs); KWTextFrameSet *tfs = new KWTextFrameSet(&document, Words::MainTextFrameSet); document.addFrameSet(tfs); KWPageInsertCommand command1(&document, 0); command1.redo(); MockShape *shape1 = new MockShape(); new KWFrame(shape1, fs); MockShape *shape2 = new MockShape(); shape2->setUserData(new KoTextShapeData()); new KWTextFrame(shape2, tfs); KWPageInsertCommand command2(&document, 1); // append a page command2.redo(); QCOMPARE(document.pageCount(), 2); QCOMPARE(document.frameSetCount(), 2); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 1); // add a new frame for the page we just created. MockShape *shape3 = new MockShape(); QPointF position(30, command2.page().offsetInDocument()); shape3->setPosition(position); new KWTextFrame(shape3, tfs); QCOMPARE(tfs->frameCount(), 2); command2.undo(); // remove the page again. QCOMPARE(document.pageCount(), 1); QCOMPARE(document.frameSetCount(), 2); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 1); // the text frame is an auto-generated one, so it should be removed. }
void TestPageCommands::testRemovePageCommand2() // auto remove of frames { // In contrary to the insert command the remove command will remove frames // of all types and reinsert only non-auto-generated ones. // lets make sure we it does that. KWDocument document; KWFrameSet *fs = new KWFrameSet(); document.addFrameSet(fs); KWTextFrameSet *tfs = new KWTextFrameSet(&document, Words::MainTextFrameSet); document.addFrameSet(tfs); KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); MockShape *shape1 = new MockShape(); new KWFrame(shape1, fs); MockShape *shape2 = new MockShape(); shape2->setUserData(new KoTextShapeData()); new KWTextFrame(shape2, tfs); KWPageRemoveCommand command(&document, insertCommand.page()); QCOMPARE(document.frameSetCount(), 2); command.redo(); QCOMPARE(document.frameSetCount(), 1); // only the main frameset is left QCOMPARE(document.frameSets().first(), tfs); QCOMPARE(fs->frameCount(), 0); QCOMPARE(tfs->frameCount(), 0); command.undo(); QCOMPARE(document.frameSetCount(), 2); QCOMPARE(fs->frameCount(), 1); QCOMPARE(tfs->frameCount(), 0); // doesn't get auto-added }
QVERIFY(styles.contains(styleName)); manager.appendPage(styles[styleName]); } m_frames.clear(); KWTextFrameSet tfs(0, (Words::TextFrameSetType) frameSetType); m_frames << &tfs; KWFrameLayout frameLayout(&manager, m_frames); connect(&frameLayout, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*))); KWPage page = manager.page(pageNumber); QVERIFY(page.isValid()); tfs.setPageStyle(page.pageStyle()); frameLayout.createNewFramesForPage(pageNumber); QCOMPARE(tfs.frameCount(), expectedFrameCount); foreach(KoShape *shape, tfs.shapes()) { QVERIFY (page.rect().contains(shape->position())); } } void TestFrameLayout::testCopyFramesForPage() { Helper helper; m_frames.clear(); KWPage page = helper.pageManager->begin(); // copyShape MockShape *copyShape = new MockShape(); copyShape->setPosition(QPointF(9, 13)); KWFrameSet *copyShapeFrameSet = new KWFrameSet();