[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bcalligra=5D_words/part=3A_Made_hide/show_headers/fo?=
From: Sebastian Sauer <sebastian.sauer () kdab ! com>
Date: 2011-04-30 17:08:44
Message-ID: 20110430170844.C8AADA60A4 () git ! kde ! org
[Download RAW message or body]
Git commit ea4edae7447f5b49099c8d8b3c3ad76c025d6239 by Sebastian Sauer.
Committed on 30/04/2011 at 19:01.
Pushed by sebsauer into branch 'master'.
Made hide/show headers/footers work again as expected.
BUG:272005
M +13 -17 words/part/KWDocument.cpp
M +3 -2 words/part/KWPageManager.cpp
M +7 -0 words/part/frames/KWFrameLayout.cpp
http://commits.kde.org/calligra/ea4edae7447f5b49099c8d8b3c3ad76c025d6239
diff --git a/words/part/KWDocument.cpp b/words/part/KWDocument.cpp
index df4e724..44c9cd3 100644
--- a/words/part/KWDocument.cpp
+++ b/words/part/KWDocument.cpp
@@ -370,9 +370,6 @@ void KWDocument::relayout()
if (tfs == 0) continue;
if (tfs->textFrameSetType() != KWord::MainTextFrameSet) continue;
- // we switch to the interaction tool to avoid crashes if the tool was \
editing a frame.
- KoToolManager::instance()->switchToolRequested(KoInteractionTool_ID);
-
QSet<KWPage> coveredPages;
QList<int> coveredPageNumbers;
foreach (KWFrame *frame, tfs->frames()) {
@@ -396,32 +393,27 @@ void KWDocument::relayout()
kDebug(32001) << "coveredPageNumbers=" << coveredPageNumbers;
}
-#else
#endif
-#if 0
- PageProcessingQueue *ppq = pageQueue();
- foreach (const KWPage &page, pageManager()->pages())
- ppq->addPage(page);
-#else
+ // we switch to the interaction tool to avoid crashes if the tool was editing a \
frame. + KoToolManager::instance()->switchToolRequested(KoInteractionTool_ID);
+
// remove header/footer frames that are not visible.
m_frameLayout.cleanupHeadersFooters();
+
// re-layout the pages
- foreach (const KWPage &page, pageManager()->pages()) {
- m_frameLayout.layoutFramesOnPage(page.pageNumber());
+ foreach (const KWPage &page, m_pageManager.pages()) {
+ m_frameLayout.createNewFramesForPage(page.pageNumber());
}
- /*
foreach (KWFrameSet *fs, m_frameSets) {
KWTextFrameSet *tfs = dynamic_cast<KWTextFrameSet*>(fs);
if (!tfs)
continue;
KoTextDocumentLayout *lay = \
dynamic_cast<KoTextDocumentLayout*>(tfs->document()->documentLayout()); \
Q_ASSERT(lay);
- lay->layout();
+ lay->scheduleLayout();
}
- */
-#endif
}
void KWDocument::addFrameSet(KWFrameSet *fs)
@@ -836,11 +828,12 @@ void KWDocument::endOfLoading() // called by both oasis and \
oldxml
// remove header/footer frames that are not visible.
// m_frameLayout.cleanupHeadersFooters();
-#if 1
+
foreach (const KWPage &page, m_pageManager.pages()) {
m_frameLayout.createNewFramesForPage(page.pageNumber());
}
-#endif
+
+#if 0
foreach (KWFrameSet *fs, m_frameSets) {
KWTextFrameSet *tfs = dynamic_cast<KWTextFrameSet*>(fs);
if (!tfs)
@@ -860,6 +853,7 @@ void KWDocument::endOfLoading() // called by both oasis and \
oldxml }
tfs->setAllowLayout(true);
}
+#endif
foreach (KWFrameSet *fs, m_frameSets) {
KWTextFrameSet *tfs = dynamic_cast<KWTextFrameSet*>(fs);
@@ -958,12 +952,14 @@ void KWDocument::requestMoreSpace(KWTextFrameSet *fs)
void KWDocument::updateHeaderFooter(KWTextFrameSet *tfs)
{
// find all pages that have the page style set and re-layout them.
+ kDebug(32001);
Q_ASSERT(tfs->pageStyle().isValid());
updatePagesForStyle(tfs->pageStyle());
}
void KWDocument::updatePagesForStyle(const KWPageStyle &style)
{
+ kDebug(32001);
PageProcessingQueue *ppq = pageQueue();
foreach (KWPage page, pageManager()->pages()) {
if (page.pageStyle() == style) {
diff --git a/words/part/KWPageManager.cpp b/words/part/KWPageManager.cpp
index 06fd8ca..bb3d0ac 100644
--- a/words/part/KWPageManager.cpp
+++ b/words/part/KWPageManager.cpp
@@ -342,8 +342,9 @@ void KWPageManager::removePage(int pageNumber)
void KWPageManager::removePage(const KWPage &page)
{
- if (!page.isValid())
- return;
+ Q_ASSERT(page.isValid());
+ kDebug() << page.pageNumber();
+
const int removedPageNumber = page.pageNumber();
const int offset = page.pageSide() == KWPage::PageSpread ? 2 : 1;
d->pages.remove(d->pageNumbers[removedPageNumber]);
diff --git a/words/part/frames/KWFrameLayout.cpp \
b/words/part/frames/KWFrameLayout.cpp index d557ad8..221118a 100644
--- a/words/part/frames/KWFrameLayout.cpp
+++ b/words/part/frames/KWFrameLayout.cpp
@@ -75,6 +75,7 @@ void KWFrameLayout::createNewFramesForPage(int pageNumber)
createCopyFrame(fs, page);
}
}
+else kDebug(32001) << "Nooooo HeaderTextFrame";
if (shouldHaveHeaderOrFooter(pageNumber, false, &origin)) {
allHFTypes.removeAll(origin);
KWTextFrameSet *fs = getOrCreate(origin, page);
@@ -83,6 +84,7 @@ void KWFrameLayout::createNewFramesForPage(int pageNumber)
createCopyFrame(fs, page);
}
}
+else kDebug(32001) << "Nooooo FooterTextFrame";
//kDebug(32001) <<"createNewFramesForPage" << pageNumber << "TextFrameSetType=" \
<< KWord::frameSetTypeName(origin);
@@ -601,6 +603,7 @@ void KWFrameLayout::setup()
{
if (m_setup)
return;
+kDebug();
KWTextFrameSet *oldMainText = m_maintext;
m_maintext = 0;
@@ -682,6 +685,7 @@ void KWFrameLayout::cleanupHeadersFooters()
switch (tfs->textFrameSetType()) {
case KWord::OddPagesHeaderTextFrameSet:
if (frameSets.oddHeaders) {
+kDebug()<<"remove oddHeaders frameSets";
emit removedFrameSet(frameSets.oddHeaders);
delete frameSets.oddHeaders;
}
@@ -689,6 +693,7 @@ void KWFrameLayout::cleanupHeadersFooters()
break;
case KWord::EvenPagesHeaderTextFrameSet:
if (frameSets.evenHeaders) {
+kDebug()<<"remove evenHeaders frameSets";
emit removedFrameSet(frameSets.evenHeaders);
delete frameSets.evenHeaders;
}
@@ -696,6 +701,7 @@ void KWFrameLayout::cleanupHeadersFooters()
break;
case KWord::OddPagesFooterTextFrameSet:
if (frameSets.oddFooters) {
+kDebug()<<"remove oddFooters frameSets";
emit removedFrameSet(frameSets.oddFooters);
delete frameSets.oddFooters;
}
@@ -703,6 +709,7 @@ void KWFrameLayout::cleanupHeadersFooters()
break;
case KWord::EvenPagesFooterTextFrameSet:
if (frameSets.evenFooters) {
+kDebug()<<"remove evenFooters frameSets";
emit removedFrameSet(frameSets.evenFooters);
delete frameSets.evenFooters;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic