Review Request: Fix regression in size of shape groups with a lot of shapes

Thorsten Zachmann t.zachmann at zagge.de
Mon Sep 19 06:16:23 BST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/102645/
-----------------------------------------------------------

(Updated Sept. 19, 2011, 5:16 a.m.)


Review request for Calligra.


Changes
-------

Use the size of the base class as proposed by Jan and use proper d-pointer . Additionally to the last patch invalidate the groups size when a shape is added/removed from the group. I will remove the kDebug statements before committing but left them there if people want to play with the patch to see if the size is updated properly.


Summary
-------

With the fix for the group size now every time the function is called it calculates the size from its children.

When testing this with cstester I found problmes in the documents I uploaded to.

http://www.zagge.de/anchor/groupsize/

The problem there is that due the very huge amount of shapes in the group it takes now quite a very very long time to render the pages.

The patch fixes that problem by adding a cache to the group size and only recalculates the size when there was a change.

It additionally don't forward the ChildChanged when a CollisionDetection is encountered. The CollisonChanged is not needed to forward to any parent as if the results in a change this change will be probagated.

The patch is a very fast way to see on how to fix the problem and for me to get feedback if the way is the right one to go forward. 
I will definitely clean it up more before it is ready for inclusion.
The implementation of the shape container models needs to be moved to the cpp files and also the members will be put into the d pointer.

Looking forward to your feedback.


Diffs (updated)
-----

  libs/flake/KoShapeContainerModel.cpp 7995236 
  libs/flake/KoShapeGroup.h a53d2ad 
  libs/flake/KoShapeGroup.cpp 409b18c 
  libs/flake/KoShape_p.h d055056 

Diff: http://git.reviewboard.kde.org/r/102645/diff


Testing
-------

Before the patch switching between slides in the www.renaissance.co.il%2Fivbug%2Fmeeting87%2FArchitecture%20and%20design%20patterns.ppt file takes more then 10 seconds, with the patch it is instantly.

Tested resizing of groups of groups, resizing/modifying of shapes in groups. 


Thanks,

Thorsten

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20110919/5f4038e4/attachment.htm>


More information about the calligra-devel mailing list