Issue 84257 - avoid repeated find in object list when deleting the sdrview
Summary: avoid repeated find in object list when deleting the sdrview
Status: CLOSED FIXED
Alias: None
Product: Draw
Classification: Application
Component: code (show other issues)
Version: 680m235
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 2.4
Assignee: Armin Le Grand
QA Contact: issues@graphics
URL:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2007-12-05 11:07 UTC by IngridvdM
Modified: 2008-04-29 03:35 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description IngridvdM 2007-12-05 11:07:26 UTC
Deleting a SdrView with many shapes takes more time than the complete redraw.

The reason is that each ViewObjectContact in maVOCList after removal again is
searched in the complete list - as it is not contained anymore the whole list is
parsed. This is triggered in ObjectContact::PrepareDelete ... iterate over each
element of maVOCList ...
ViewObjectContact::PrepareDelete() ... search whole maVOCList ... .

This affects leaving the edit mode of big charts and also the painting of big
charts (with issue 75867 it is introduced that charts are painted directly using
an SdrView instead of using bad looking metafiles ).
Comment 1 IngridvdM 2007-12-05 12:37:06 UTC
Fixed in CWS chart15.
I added a method FlatCopyFrom( ) to class ViewObjectContactList and changed method 
ObjectContact::PrepareDelete().
Comment 2 IngridvdM 2007-12-06 11:01:19 UTC
->Armin, please verify in CWS chart15.
Comment 3 IngridvdM 2007-12-06 11:03:27 UTC
->Armin, please verify in CWS chart15. (I forgot to change owner)
Comment 4 Armin Le Grand 2007-12-06 13:29:15 UTC
AW: Checked the code in viewobjectcontactlist and it's usage in objectcontact,
is okay. Review done.
Comment 5 Armin Le Grand 2008-04-29 03:35:31 UTC
AW: Closing