本文整理汇总了C++中KWDocument::addFrameSet方法的典型用法代码示例。如果您正苦于以下问题:C++ KWDocument::addFrameSet方法的具体用法?C++ KWDocument::addFrameSet怎么用?C++ KWDocument::addFrameSet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KWDocument
的用法示例。
在下文中一共展示了KWDocument::addFrameSet方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testInsertPageCommand
void TestPageCommands::testInsertPageCommand() // move of frames
{
KWDocument document;
KWPageInsertCommand command1(&document, 0);
QCOMPARE(document.pageCount(), 0);
QCOMPARE(document.frameSetCount(), 0);
command1.redo();
QCOMPARE(document.pageCount(), 1);
QCOMPARE(document.frameSetCount(), 0);
KWFrameSet *fs = new KWFrameSet();
MockShape *shape = new MockShape();
KWFrame *frame = new KWFrame(shape, fs);
Q_UNUSED(frame);
document.addFrameSet(fs);
QPointF startPos = shape->position();
KWPageInsertCommand command2(&document, 0);
QCOMPARE(document.pageCount(), 1);
QCOMPARE(document.frameSetCount(), 1);
command2.redo();
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(command2.page().pageNumber(), 1);
QCOMPARE(command1.page().pageNumber(), 2);
QPointF newPos = shape->position();
QCOMPARE(newPos, QPointF(0, command2.page().height()) + startPos); // it moved ;)
KWPageInsertCommand command3(&document, 2);
command3.redo();
QCOMPARE(document.pageCount(), 3);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(newPos, shape->position()); // it has not moved from page 2
command3.undo();
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(newPos, shape->position()); // it has not moved from page 2
QCOMPARE(command2.page().pageNumber(), 1);
QCOMPARE(command1.page().pageNumber(), 2);
command2.undo();
QCOMPARE(document.pageCount(), 1);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(command1.page().pageNumber(), 1);
QCOMPARE(startPos, shape->position()); // it has been moved back
command2.redo();
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(command2.page().pageNumber(), 1);
QCOMPARE(command1.page().pageNumber(), 2);
QCOMPARE(QPointF(0, command2.page().height()) + startPos, newPos); // it moved again ;)
}
示例2: insertCommand
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
}
示例3: KWFrame
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.
}
示例4: testPageSpread
void TestPageCommands::testPageSpread()
{
// setup a doc with multiple pages like;
// 1: S1, 2: S1, 3: S1, 4: S2, 5: S1, 6:S2, 7: S2
KWDocument document;
KWPageManager *manager = document.pageManager();
KWPageStyle style("pagestyle1");
KoPageLayout lay = style.pageLayout();
lay.width = 300;
lay.height = 500;
style.setPageLayout(lay);
KWPageStyle style2("pagestyle2");
lay = style.pageLayout();
lay.width = 400;
lay.height = 400;
style2.setPageLayout(lay);
KWPage p1 = manager->appendPage(style);
KWPage p2 = manager->appendPage(style);
KWPage p3 = manager->appendPage(style);
KWPage p4 = manager->appendPage(style2);
KWPage p5 = manager->appendPage(style);
KWPage p6 = manager->appendPage(style2);
KWPage p7 = manager->appendPage(style2);
KWFrameSet *fs = new KWFrameSet();
for (int i = 1; i <= manager->pageCount(); ++i) {
// create one frame per page. Positioned relative to the top of the page.
KWPage page = manager->page(i);
QVERIFY(page.isValid());
MockShape *shape = new MockShape();
new KWFrame(shape, fs);
shape->setPosition(QPointF(-10, page.offsetInDocument() + 10));
}
document.addFrameSet(fs);
// when changing S1 from normal to pagespread I expect
// page 1 to stay the same.
// page 2 to become a pagespread
// page 3 to be deleted
// page 4 to stay the same.
// page 5 to become a page spread and gets pageNumber 6
// page 6 to become page 7 and become a Right page
// page 7 to become page 8 and become a Left page
// there will be a new KWPage for page 5
// all frames to be moved so they are still at the same relative location
// to their original page' top
KWPageStyle style3("dummy");
lay.leftMargin = -1;
lay.rightMargin = -1;
lay.pageEdge = 7;
lay.bindingSide = 13;
style2.setPageLayout(lay);
KWPageStylePropertiesCommand cmd(&document, style, style3);
cmd.redo();
QCOMPARE(manager->pageCount(), 7);
QEXPECT_FAIL("", "Not done yet", Abort);
QCOMPARE(p1.height(), 500.);
QCOMPARE(p1.width(), 300.);
QCOMPARE(p1.pageSide(), KWPage::Right);
QCOMPARE(p1.pageNumber(), 1);
QCOMPARE(p2.height(), 500.);
QCOMPARE(p2.width(), 600.);
QCOMPARE(p2.pageSide(), KWPage::PageSpread);
QCOMPARE(p2.pageNumber(), 2);
QVERIFY(!p3.isValid());
QCOMPARE(p4.pageSide(), KWPage::Left);
QCOMPARE(p4.width(), 300.);
QCOMPARE(p4.height(), 500.);
QCOMPARE(p4.pageNumber(), 4);
QCOMPARE(p5.width(), 600.);
QCOMPARE(p5.height(), 500.);
QCOMPARE(p5.pageSide(), KWPage::PageSpread);
QCOMPARE(p5.pageNumber(), 6);
QCOMPARE(p6.pageSide(), KWPage::Right);
QCOMPARE(p6.width(), 400.);
QCOMPARE(p6.pageNumber(), 7);
QCOMPARE(p7.pageSide(), KWPage::Left);
QCOMPARE(p7.width(), 400.);
QCOMPARE(p7.pageNumber(), 8);
KWPage newPage5 = manager->page(5);
QCOMPARE(newPage5.pageStyle(), style);
QCOMPARE(newPage5.width(), 400.);
QCOMPARE(newPage5.height(), 400.);
QCOMPARE(newPage5.pageSide(), KWPage::Left);
QCOMPARE(fs->frames()[0]->shape()->position(), QPointF(-10, 10));
// TODO figure out what the actual numbers should be below
QCOMPARE(fs->frames()[1]->shape()->position(), QPointF(-10, 10));
QCOMPARE(fs->frames()[2]->shape()->position(), QPointF(-10, 10));
QCOMPARE(fs->frames()[3]->shape()->position(), QPointF(-10, 10));
QCOMPARE(fs->frames()[4]->shape()->position(), QPointF(-10, 10));
QCOMPARE(fs->frames()[5]->shape()->position(), QPointF(-10, 10));
QCOMPARE(fs->frames()[6]->shape()->position(), QPointF(-10, 10));
}
示例5: style
void TestPageCommands::testPageStylePropertiesCommand2()
{
/*
make setup where multiple, interspaced pages use the style we want to change.
add some frames.
check if the frames moved properly when the page gets a new size
check that all pages got their new size
check that the name of the style did not change
*/
KWDocument document;
KWPageManager *manager = document.pageManager();
KWPageStyle style("pagestyle1");
KoPageLayout lay = style.pageLayout();
lay.width = 300;
lay.height = 500;
style.setPageLayout(lay);
KWPageStyle style2("pagestyle2");
lay = style.pageLayout();
lay.width = 400;
lay.height = 400;
style2.setPageLayout(lay);
KWPage p1 = manager->appendPage(style2);
KWPage p2 = manager->appendPage(style);
KWPage p3 = manager->appendPage(style);
KWPage p4 = manager->appendPage(style2);
KWPage p5 = manager->appendPage(style2);
KWPage p6 = manager->appendPage(style);
KWPage p7 = manager->appendPage(style);
KWPage p8 = manager->appendPage(style);
KWPage p9 = manager->appendPage(style2);
QCOMPARE(manager->pageCount(), 9);
KWFrameSet *fs = new KWFrameSet();
for (int i = 1; i <= manager->pageCount(); ++i) {
// create one frame per page. Positioned relative to the top of the page.
KWPage page = manager->page(i);
QVERIFY(page.isValid());
MockShape *shape = new MockShape();
new KWFrame(shape, fs);
shape->setPosition(QPointF(-10, page.offsetInDocument() + 10));
}
document.addFrameSet(fs);
// lets prepare to change the style to a new page size.
KWPageStyle newStyle("foo");
lay = newStyle.pageLayout();
lay.width = 350;
lay.height = 1000;
newStyle.setPageLayout(lay);
KWPageStylePropertiesCommand command(&document, style, newStyle);
// nothing happens in constructor before redo;
for (int i = 1; i <= manager->pageCount(); ++i) {
KWPage page = manager->page(i);
QVERIFY(page.height() <= 500); // not 1000 yet
QVERIFY(page.isValid());
KoShape *shape = fs->frames().at(i-1)->shape();
QCOMPARE(shape->position(), QPointF(-10, page.offsetInDocument() + 10));
}
const qreal lastPageOffset = p9.offsetInDocument();
command.redo();
QCOMPARE(manager->pageCount(), 9);
QCOMPARE(p1.height(), 400.);
QCOMPARE(p4.height(), 400.);
QCOMPARE(p5.height(), 400.);
QCOMPARE(p9.height(), 400.);
QCOMPARE(p2.height(), 1000.);
QCOMPARE(p3.height(), 1000.);
QCOMPARE(p6.height(), 1000.);
QCOMPARE(p7.height(), 1000.);
QCOMPARE(p8.height(), 1000.);
QCOMPARE(lastPageOffset + 2500, p9.offsetInDocument());
for (int i = 1; i <= manager->pageCount(); ++i) {
KWPage page = manager->page(i);
QVERIFY(page.isValid());
KoShape *shape = fs->frames().at(i-1)->shape();
QCOMPARE(shape->position(), QPointF(-10, page.offsetInDocument() + 10));
}
}
示例6: testRemovePageCommand
void TestPageCommands::testRemovePageCommand() // move of frames
{
KWDocument document;
KWPageInsertCommand insertCommand(&document, 0);
insertCommand.redo();
KWFrameSet *fs = new KWFrameSet();
MockShape *shape = new MockShape();
KWFrame *frame = new KWFrame(shape, fs);
Q_UNUSED(frame);
document.addFrameSet(fs);
KWPageInsertCommand insertCommand2(&document, 1);
insertCommand2.redo();
MockShape *shape2 = new MockShape();
QPointF pos = QPointF(20, insertCommand2.page().offsetInDocument() + 10);
shape2->setPosition(pos);
KWFrame *frame2 = new KWFrame(shape2, fs);
Q_UNUSED(frame2);
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 2);
// remove page2
KWPageRemoveCommand command1(&document, insertCommand2.page());
command1.redo();
QCOMPARE(insertCommand.page().pageNumber(), 1);
QCOMPARE(insertCommand2.page().isValid(), false);
QCOMPARE(document.pageCount(), 1);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(shape2->position(), pos); // shapes are not deleted, just removed from the document
command1.undo();
QCOMPARE(insertCommand.page().pageNumber(), 1);
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 2);
QCOMPARE(shape2->position(), pos); // not moved.
// remove page 1
KWPageRemoveCommand command2(&document, insertCommand.page());
command2.redo();
QCOMPARE(insertCommand.page().isValid(), false);
QCOMPARE(document.pageCount(), 1);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 1);
QCOMPARE(shape->position(), QPointF(0,0));
QCOMPARE(shape2->position(), QPointF(20, 10)); // moved!
command2.undo();
QCOMPARE(document.pageCount(), 2);
QCOMPARE(document.frameSetCount(), 1);
QCOMPARE(fs->frameCount(), 2);
QCOMPARE(shape->position(), QPointF(0,0));
QCOMPARE(shape2->position(), pos); // moved back!
}