[calligra] libs/textlayout: Fix infinite loop and optimize layout.
Cyrille Berger Skott
cberger at cberger.net
Mon May 16 09:27:20 BST 2011
Hi,
It looks like this commit is breaking the TestBlockLayout test:
http://my.cdash.org/testDetails.php?test=6064793&build=187910
On Sunday 15 May 2011, Sebastian Sauer wrote:
> Git commit 9ce2d5e164fa432e07ff6ef565ab97f819b0f507 by Sebastian Sauer.
> Committed on 15/05/2011 at 22:10.
> Pushed by sebsauer into branch 'master'.
>
> Fix infinite loop and optimize layout.
> This fixes those *SlidesAndHandouts.odt document.
>
> M +7 -6 libs/textlayout/KoTextDocumentLayout.cpp
>
> http://commits.kde.org/calligra/9ce2d5e164fa432e07ff6ef565ab97f819b0f507
>
> diff --git a/libs/textlayout/KoTextDocumentLayout.cpp
> b/libs/textlayout/KoTextDocumentLayout.cpp index 71f7b91..082d121 100644
> --- a/libs/textlayout/KoTextDocumentLayout.cpp
> +++ b/libs/textlayout/KoTextDocumentLayout.cpp
> @@ -245,12 +245,13 @@ void KoTextDocumentLayout::documentChanged(int
> position, int charsRemoved, int c from = block.position() +
> block.length();
> }
>
> -//TODO FIXME make corresponding root area as dirty and then do layout
> -// right now we are just marking all as dirty
> - foreach (KoTextLayoutRootArea *rootArea, d->rootAreaList) {
> - if (!rootArea->isDirty())
> - rootArea->setDirty();
> - }
> + // Mark the previous of the corresponding and all following root areas
> as dirty. + KoTextLayoutRootArea *area = rootAreaForPosition(position);
> + if (!area)
> + return;
> + for(int i = qMax(0, d->rootAreaList.indexOf(area) - 1); i <
> d->rootAreaList.count(); ++i) + d->rootAreaList[i]->setDirty();
> +
> emitLayoutIsDirty();
> }
--
Cyrille Berger Skott
More information about the calligra-devel
mailing list