[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bcalligra/textlayout-anchors-boemann=5D_/=3A_Don=27t?=
From: Sebastian Sauer <sebastian.sauer () kdab ! com>
Date: 2011-04-30 15:15:39
Message-ID: 20110430151539.4068EA60A6 () git ! kde ! org
[Download RAW message or body]
Git commit d8abbc126712ae649b35140ad85e5256e6af40b0 by Sebastian Sauer.
Committed on 30/04/2011 at 17:13.
Pushed by sebsauer into branch 'textlayout-anchors-boemann'.
Don't crash.
M +1 -1 libs/textlayout/AnchorStrategy.cpp
M +5 -3 libs/textlayout/KoTextDocumentLayout.cpp
M +4 -2 words/part/KWDocument.cpp
http://commits.kde.org/calligra/d8abbc126712ae649b35140ad85e5256e6af40b0
diff --git a/libs/textlayout/AnchorStrategy.cpp b/libs/textlayout/AnchorStrategy.cpp
index 1da3e60..195d8ac 100644
--- a/libs/textlayout/AnchorStrategy.cpp
+++ b/libs/textlayout/AnchorStrategy.cpp
@@ -54,7 +54,7 @@ void AnchorStrategy::updatePosition(KoShape *shape, const QTextDocument *documen
KoTextDocumentLayout *lay = qobject_cast<KoTextDocumentLayout*>(document->documentLayout());
Q_ASSERT(lay);
KoTextLayoutRootArea *rootArea = lay->rootAreaForPosition(posInDocument);
-
+ Q_ASSERT(rootArea);
KoShapeContainer *container = dynamic_cast<KoShapeContainer*>(rootArea->associatedShape());
if (container == 0) {
if (m_model)
diff --git a/libs/textlayout/KoTextDocumentLayout.cpp b/libs/textlayout/KoTextDocumentLayout.cpp
index 9f26bb7..ad00fad 100644
--- a/libs/textlayout/KoTextDocumentLayout.cpp
+++ b/libs/textlayout/KoTextDocumentLayout.cpp
@@ -295,13 +295,11 @@ void KoTextDocumentLayout::positionInlineObject(QTextInlineObject item, int posi
qDebug() << "positionInlineObject called";
//We are called before layout so that we can position objects
Q_ASSERT(format.isCharFormat());
- Q_ASSERT(false);
+// Q_ASSERT(false);
if (d->inlineTextObjectManager == 0)
return;
QTextCharFormat cf = format.toCharFormat();
KoInlineObject *obj = d->inlineTextObjectManager->inlineTextObject(cf);
- if (obj)
- obj->updatePosition(document(), item, position, cf);
// We need some special treatment for anchors as they need to position their object during
// layout and not this early
@@ -335,8 +333,12 @@ void KoTextDocumentLayout::positionInlineObject(QTextInlineObject item, int posi
}
d->textAnchors.append(anchor);
}
+ anchor->updatePosition(document(), item, position, cf);
}
}
+ else if (obj) {
+ obj->updatePosition(document(), item, position, cf);
+ }
}
void KoTextDocumentLayout::resetAnchor(int resetPosition)
diff --git a/words/part/KWDocument.cpp b/words/part/KWDocument.cpp
index df4e724..1662879 100644
--- a/words/part/KWDocument.cpp
+++ b/words/part/KWDocument.cpp
@@ -836,11 +836,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 +861,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);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic