Helper() { pageManager = new KWPageManager(); KWPage page = pageManager->appendPage(); KoPageLayout pageLayout = page.pageStyle().pageLayout(); pageLayout.width = 200; pageLayout.height = 200; page.pageStyle().setPageLayout(pageLayout); pageStyle = page.pageStyle(); }
KWPageSettingsDialog::KWPageSettingsDialog(QWidget *parent, KWDocument *document, const KWPage &page) : KoPageLayoutDialog(parent, page.pageStyle().pageLayout()), m_document(document), m_page(page), m_pageStyle(page.pageStyle()) { Q_ASSERT(document); setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Apply | QDialogButtonBox::Cancel); connect(buttonBox(), SIGNAL(clicked(QAbstractButton*)), this, SLOT(slotButtonClicked(QAbstractButton*))); showUnitchooser(true); Q_ASSERT(page.isValid()); m_columns = new KWDocumentColumns(this, m_page.pageStyle().columns()); KPageWidgetItem *columnsPage = addPage(m_columns, i18n("Columns")); QWidget *pageStyleWidget = new QWidget(this); QHBoxLayout *pageStyleLayout = new QHBoxLayout(pageStyleWidget); pageStyleLayout->setMargin(0); KPageWidgetItem *stylePage = addPage(pageStyleWidget, i18n("Style")); m_pageStylesView = new QListWidget(this); pageStyleLayout->addWidget(m_pageStylesView, 1); connect(m_pageStylesView, SIGNAL(currentRowChanged(int)), this, SLOT(pageStyleCurrentRowChanged(int))); QVBoxLayout *pageStyleLayout2 = new QVBoxLayout(); pageStyleLayout->addLayout(pageStyleLayout2); m_clonePageStyleButton = new QPushButton(i18n("Clone"), pageStyleWidget); connect(m_clonePageStyleButton, SIGNAL(clicked()), this, SLOT(pageStyleCloneClicked())); pageStyleLayout2->addWidget(m_clonePageStyleButton); m_deletePageStyleButton = new QPushButton(i18n("Delete"), pageStyleWidget); connect(m_deletePageStyleButton, SIGNAL(clicked()), this, SLOT(pageStyleDeleteClicked())); pageStyleLayout2->addWidget(m_deletePageStyleButton); pageStyleLayout2->addStretch(); foreach(KPageWidgetItem *item, QList<KPageWidgetItem*>() << columnsPage << stylePage) m_pages[item->name()] = item; reloadPageStyles(); showPageSpread(false); //TODO better would be allow n pages to face rather then only 2 showTextDirection(true); // TODO can we hide this in selected usecases? Use the resource manager bidi-check maybe? //showApplyToDocument(true); // TODO uncommand when we can handle it. #if 0 bool simpleSetup = m_document->pageCount() == 1 || (m_document->pageCount() == 2 && page.pageSide() == KWPage::PageSpread); if (!simpleSetup) { // if there is one style, its still a simple doc bool onlyOneStyle = true; foreach (const KWPage &p, m_document->pageManager()->pages()) { if (p.pageStyle() != m_page.pageStyle()) { onlyOneStyle = false; break; } } if (onlyOneStyle) simpleSetup = true; }
void TestFrameLayout::headerPerPage() { Helper helper; m_frames.clear(); KWPage page = helper.pageManager->begin(); KWFrameLayout bfl(helper.pageManager, m_frames); connect(&bfl, SIGNAL(newFrameSet(KWFrameSet*)), this, SLOT(addFS(KWFrameSet*))); KWPageStyle myStyle("myStyle"); myStyle.setHeaderPolicy(Words::HFTypeUniform); helper.pageManager->addPageStyle(myStyle); KWPage page2 = helper.pageManager->appendPage(myStyle); QVERIFY(page.pageStyle() != page2.pageStyle()); QCOMPARE(bfl.m_pageStyles.count(), 0); KWTextFrameSet *fs = bfl.getOrCreate(Words::OddPagesHeaderTextFrameSet, page); QVERIFY(fs); QCOMPARE(fs->textFrameSetType(), Words::OddPagesHeaderTextFrameSet); QCOMPARE(bfl.m_pageStyles.count(), 1); QVERIFY(bfl.m_pageStyles.contains(page.pageStyle())); KWFrameLayout::FrameSets fsets = bfl.m_pageStyles[page.pageStyle()]; QCOMPARE(fsets.oddHeaders, fs); QCOMPARE(fsets.evenHeaders, (void*) 0); QCOMPARE(fsets.oddFooters, (void*) 0); QCOMPARE(fsets.evenFooters, (void*) 0); KWTextFrameSet *fs2 = bfl.getOrCreate(Words::OddPagesHeaderTextFrameSet, page2); QVERIFY(fs2); QCOMPARE(fs2->textFrameSetType(), Words::OddPagesHeaderTextFrameSet); QVERIFY(fs != fs2); QCOMPARE(bfl.getOrCreate(Words::OddPagesHeaderTextFrameSet, page2), fs2); QCOMPARE(bfl.getOrCreate(Words::OddPagesHeaderTextFrameSet, page), fs); QCOMPARE(bfl.m_pageStyles.count(), 2); QVERIFY(bfl.m_pageStyles.contains(page.pageStyle())); QVERIFY(bfl.m_pageStyles.contains(page2.pageStyle())); fsets = bfl.m_pageStyles[page.pageStyle()]; QCOMPARE(fsets.oddHeaders, fs); QCOMPARE(fsets.evenHeaders, (void*) 0); QCOMPARE(fsets.oddFooters, (void*) 0); QCOMPARE(fsets.evenFooters, (void*) 0); KWFrameLayout::FrameSets fsets2 = bfl.m_pageStyles[page2.pageStyle()]; QCOMPARE(fsets2.oddHeaders, fs2); QCOMPARE(fsets2.evenHeaders, (void*) 0); QCOMPARE(fsets2.oddFooters, (void*) 0); QCOMPARE(fsets2.evenFooters, (void*) 0); }
KWPageSettingsDialog::KWPageSettingsDialog(QWidget *parent, KWDocument *document, const KWPage &page) : KoPageLayoutDialog(parent, page.pageStyle().pageLayout()), m_document(document), m_page(page) { Q_ASSERT(document); showUnitchooser(true); Q_ASSERT(page.isValid()); m_columns = new KWDocumentColumns(this, m_page.pageStyle().columns()); addPage(m_columns, i18n("Columns")); m_headerFooter = new KWHeaderFooter(this, m_page.pageStyle()); addPage(m_headerFooter, i18n("Header/Footer")); showPageSpread(true); showTextDirection(true); // TODO can we hide this in selected usecases? Use the resource manager bidi-check maybe? //showApplyToDocument(true); // TODO uncommand when we can handle it. bool simpleSetup = document->pageCount() == 1 || (document->pageCount() == 2 && page.pageSide() == KWPage::PageSpread); if (!simpleSetup) { // if there is one style, its still a simple doc bool onlyOneStyle = true; foreach (const KWPage &p, document->pageManager()->pages()) { if (p.pageStyle() != m_page.pageStyle()) { onlyOneStyle = false; break; } } if (onlyOneStyle) simpleSetup = true; }
KWChangePageStyleCommand::KWChangePageStyleCommand(KWDocument *document, KWPage &page, const KWPageStyle &newStyle, KUndo2Command *parent) : KUndo2Command(kundo2_i18n("Set Page Style"), parent), m_document(document), m_newStyle(newStyle), m_oldStyle(page.pageStyle()), m_page(page) { Q_ASSERT(m_page.isValid()); }
void TestTextFrameSorting::testSortingOnPagespread() { KWTextFrameSet tfs(0); KWFrame * frame1 = createFrame(QPointF(10, 200), tfs); KWFrame * frame2 = createFrame(QPointF(120, 10), tfs); KWFrame * frame3 = createFrame(QPointF(10, 10), tfs); KWFrame * frame4 = createFrame(QPointF(340, 10), tfs); KWFrame * frame5 = createFrame(QPointF(230, 10), tfs); KWPageManager pm; KWPage page = pm.appendPage(); page.setPageNumber(2); KOdfPageLayoutData layout = page.pageStyle().pageLayout(); layout.width = 450; layout.height = 150; page.setDirectionHint(KOdfText::LeftRightTopBottom); page.setPageSide(KWPage::PageSpread); page.pageStyle().setPageLayout(layout); page = pm.appendPage(); page.setDirectionHint(KOdfText::LeftRightTopBottom); layout.width = 200; page.pageStyle().setPageLayout(layout); tfs.setPageManager(&pm); QCOMPARE(page.offsetInDocument(), 150.); // test KWPageManager::pageNumber first QCOMPARE(pm.begin().pageNumber(), 2); QCOMPARE(pm.pageNumber(frame2->shape()), 2); QCOMPARE(pm.pageNumber(frame1->shape()), 4); QCOMPARE(KWTextFrameSet::sortTextFrames(frame4, frame5), false); QCOMPARE(KWTextFrameSet::sortTextFrames(frame5, frame4), true); QCOMPARE(KWTextFrameSet::sortTextFrames(frame2, frame4), true); QCOMPARE(KWTextFrameSet::sortTextFrames(frame1, frame4), false); qSort(tfs.m_frames.begin(), tfs.m_frames.end(), KWTextFrameSet::sortTextFrames); QCOMPARE(tfs.m_frames[0], frame3); QCOMPARE(tfs.m_frames[1], frame2); QCOMPARE(tfs.m_frames[2], frame5); QCOMPARE(tfs.m_frames[3], frame4); QCOMPARE(tfs.m_frames[4], frame1); }
void TestTextFrameSorting::testRtlSorting() { KWTextFrameSet tfs(0); KWFrame * frame1 = createFrame(QPointF(10, 10), tfs); KWFrame * frame2 = createFrame(QPointF(120, 10), tfs); KWPageManager pm; KWPage page = pm.appendPage(); page.setDirectionHint(KOdfText::RightLeftTopBottom); QCOMPARE(page.directionHint(), KOdfText::RightLeftTopBottom); KOdfPageLayoutData layout = page.pageStyle().pageLayout(); layout.width = 200; page.pageStyle().setPageLayout(layout); tfs.setPageManager(&pm); qSort(tfs.m_frames.begin(), tfs.m_frames.end(), KWTextFrameSet::sortTextFrames); // in RTL columns also sort right-to-left QCOMPARE(tfs.m_frames[0], frame2); QCOMPARE(tfs.m_frames[1], frame1); }
void TestPageCommands::testRemovePageCommand3() // test restore all properties { KWDocument document; KWPageInsertCommand insertCommand(&document, 0); insertCommand.redo(); KWPage page = insertCommand.page(); KWPageStyle style = page.pageStyle(); style.setHasMainTextFrame(false); style.setFootnoteDistance(10); KoPageLayout layout; layout.width = 400; layout.height = 300; layout.leftMargin = 4; layout.rightMargin = 6; layout.topMargin = 7; layout.bottomMargin = 5; style.setPageLayout(layout); page.setPageStyle(style); KWPageRemoveCommand command(&document, page); command.redo(); QVERIFY(!page.isValid()); command.undo(); page = document.pageManager()->begin(); QVERIFY(page.isValid()); QVERIFY(insertCommand.page() != page); QCOMPARE(page.pageNumber(), 1); KWPageStyle style2 = page.pageStyle(); QCOMPARE(style2, style); QCOMPARE(style2.hasMainTextFrame(), false); QCOMPARE(style2.footnoteDistance(), 10.); KoPageLayout layout2 = style2.pageLayout(); QCOMPARE(layout2, layout); QCOMPARE(page.pageStyle(), style); QCOMPARE(page.width(), 400.); }
void TestPageCommands::testInsertPageCommand3() // restore all properties { KWDocument document; KWPageInsertCommand command1(&document, 0); command1.redo(); KWPage page = command1.page(); KWPageStyle style = page.pageStyle(); style.setHasMainTextFrame(false); style.setFootnoteDistance(10); KoPageLayout layout; layout.width = 400; layout.height = 300; layout.leftMargin = 4; layout.rightMargin = 6; layout.topMargin = 7; layout.bottomMargin = 5; style.setPageLayout(layout); page.setPageStyle(style); KWPageInsertCommand command2(&document, 1); // append one page. command2.redo(); QCOMPARE(command2.page().pageStyle(), style); QCOMPARE(command2.page().width(), 400.); // undo and redo, remember order is important command2.undo(); command1.undo(); command1.redo(); command2.redo(); QVERIFY(command1.page() != page); QCOMPARE(command1.page().pageNumber(), 1); KWPageStyle style2 = command1.page().pageStyle(); QCOMPARE(style2, style); QCOMPARE(style2.hasMainTextFrame(), false); QCOMPARE(style2.footnoteDistance(), 10.); KoPageLayout layout2 = style2.pageLayout(); QCOMPARE(layout2, layout); QCOMPARE(command2.page().pageStyle(), style); QCOMPARE(command2.page().width(), 400.); }
KWPageManager manager; foreach (const QString &styleName, pages) { 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