Issue 108052

Summary: Impress doc from 3.0 will not play in 3.1, Text with effect not shown
Product: Impress Reporter: kdvzhome2 <kdvzhome2>
Component: open-importAssignee: wolframgarten
Status: CLOSED FIXED QA Contact: issues@graphics <issues>
Severity: Trivial    
Priority: P3 CC: issues, mdxonefour, rainerbielefeld_ooo_qa
Version: OOo 3.1 RC2Keywords: needmoreinfo, oooqa, regression
Target Milestone: 3.4.0   
Hardware: Unknown   
OS: Windows XP   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
Impress Doc with animation that will play in 3.1
none
Proper initialization in DrawShapeSubsetting
none
AW: Supposed patch for this task none

Description kdvzhome2 2010-01-04 06:42:27 UTC
Impress presentation created in 3.0 will not play animated slides in
3.1correctly. The presentation will play correctly in Impress 3.0, Power Point
reader, and Easy Worship Presentation Software. The presentation was created in
Impress 3.0 on an XP Windows PC. It was saved as a Power Point Doc. It consist
of mostly a single text box on each slide with three or four lines of text. Each
text is added with a click of the mouse as a whole object.
Comment 1 kdvzhome2 2010-01-04 06:45:10 UTC
Created attachment 66961 [details]
Impress Doc with animation that will play in 3.1
Comment 2 Rainer Bielefeld 2010-01-04 07:04:11 UTC
Reproducible with "Ooo 3.2.0 RC1 WIN XP DE-multilingual version German UI
activated [OOo320m8 (Build 9472)]"! On second slide item "b" ("Sermon usually
ends ..." will not be shown when playing presentation. Item is shown in MS PPT
Viewer and  with "2.4.1  Multilingual version English UI WIN XP:
[680m17(Build9310)]"

@kdvzhome2:
Pls. attach Source .odp from 3.0!
It would be useful if you could provide concrete information instead of a
general "does not work correctly". Please contribute information to other
problems if you saw them during your tests!
Before you file further issues or post again here, please read our guidelines on
<http://qa.openoffice.org/issue_handling/pre_submission.html> and  
<http://www.openoffice.org/bugs/bug_writing_guidelines.html>, then
contribute a clear step by step instruction containing all observations (error
messages ...), _every_key_press_and_every_mouse_click_ how to reproduce the
problem, and explain why you believe that your results are unexpected.
That means (for example): 
 do not write something like „I am not able to ...“, but
 „6. left mouse click on …
     expected: …, color of … changes, … 
     actual: no …., color remains white, no …

Screenshots might help to explain the problem.

Please always specify OS and Platform you used for your tests!
Comment 3 wolframgarten 2010-01-05 11:34:44 UTC
Reproducible. Reassigned.
Comment 4 Rainer Bielefeld 2010-01-05 12:02:30 UTC
@wg: What secret information do you have concerning reporters OOo version? ;-)

I believe version OOo 3.1 RC2 from report was correct, because that's the same
build as 3.1.1. I will set back Version because I can reproduce that problem
with "Ooo 3.1.1 WIN XP DE[OOO310m19 (Build 9420)]"!
Comment 5 wolframgarten 2010-01-05 12:46:07 UTC
Sorry, no secret information ;-)  I just set it to the newest version that I
could reproduce it in. Mostly a developer tells me: "what? found in version 3.1?
Sure it hasn't been fixed in the meantime?" I wanted to avoid this...
Comment 6 groucho266 2011-02-11 11:02:04 UTC
Looks like some internal data structure of the slide show is corrupted when the
last effect on the first slide is played (in makeTreeNode() in
slideshow/source/engine/shapes/drawshapesubsetting.hxx).
Needs more investigation.
Comment 7 groucho266 2011-02-14 15:42:01 UTC
The problem mentioned above is due to an uninitialized iterator (when
calculating the distance between two iterators, both have to point to the same
container, which here they did not.)

After fixing this I was able to reproduce the animation problem and find its
cause.  Only a solution is still elusive.

The animation problem can be seen on slide 2 of the attached bugdoc.  Text
paragraphs are animated to be show one after the other.  On this slide, however,
not all paragraphs are shown.

This is caused by the empty paragraphs in between.  In the internal
representation as drawing primitives these paragraphs are optimized away.  This
results in different indices for the remaining paragraphs then those used in the
animation descriptions.
Comment 8 groucho266 2011-02-15 08:59:10 UTC
Created attachment 75846 [details]
Proper initialization in DrawShapeSubsetting
Comment 9 groucho266 2011-02-15 09:03:30 UTC
@aw: Adding primitives and thus metafile actions for empty paragraphs would
probably fix this bug.  But maybe there is a better solution?
Comment 10 Armin Le Grand 2011-03-23 14:29:12 UTC
AW: I have a deva-vu here since I think this was already once coming up and had been fixed. After some debugging, I found the following line in impTextBreakupHandler::impFlushTextPortionPrimitivesToLinePrimitives():

// only create a line primitive when we had content; there is no need for
// empty line primitives (contrary to paragraphs, see below).

This was exactly the former fix. Thus, somehow this had been broken again. Base to have this working is that even for empty paragraphs, the DrawPortionHdl of the EditEngine has to be called. This is in impedit3.cxx in editengine module. Indeed, it gets no longer called with empty paragraphs because of this loop:

for ( sal_uInt16 y = pLine->GetStartPortion(); y <= pLine->GetEndPortion(); y++ )

OTOH the above text shows that it was called in the past. Unfortunately the move from svx content to own project editengine has nit taken over the direct history. It now gets not called since in the following switch the text portion kind is of type PORTIONKIND_TAB. That type supports no callbacks at strip at all. I'm really curious what might have changed to break this functionality again...
Comment 11 Armin Le Grand 2011-03-23 14:30:45 UTC
AW: OOps, copied the wrong comment. Here is the correct one:

// ALWAYS create a paragraph primitive, even when no content was added. This is done to
// have the correct paragraph count even with empty paragraphs. Those paragraphs will
// have an empty sub-PrimitiveSequence.

Looking what might have changed in EditEngine...
Comment 12 Armin Le Grand 2011-03-23 15:35:09 UTC
Created attachment 76175 [details]
AW: Supposed patch for this task
Comment 13 Armin Le Grand 2011-03-23 15:37:53 UTC
AW: Works, checked in, done.
Comment 14 Armin Le Grand 2011-03-30 11:12:07 UTC
AW->WG: Please review. Use the attached BugDor or alternatively create a presentation with a text frame with empty paragraphs (empty returns) and text animation.
Comment 15 wolframgarten 2011-04-05 08:11:03 UTC
Verified in CWS.