ImpressAnimationEntrance

Summary
Design proposal of an easy way to define Entrance Animation for Impress.

Status
Created

Defined technical context

working on first proposals

Schedule
the earliest version possible is 4.2 :
 * feature freeze on Week 47, Nov 18 - Nov 24, 2013
 * publish on Week 5, Jan 27 - Feb 2, 2014
 * design freeze should be on week 27-28 : July 1-14

Description
This is a work related to bug #41572 "Please make it possible to add custom animations to master slides" and the thread (https://lists.freedesktop.org/archives/libreoffice-ux-advise/2013-March/001876.html).

I extended the initial question to : "how make it easier to create entrance animation ?" as it is the one of the example given for the bug.

Use case 1
User is working on a existing slideshow ('exemple.odp').

In slide 2, he wants to add some entrance animation on the content textfield : each line (first level) must appear on click.

Finally he decides that each line (second level) must appear on click.

Use case 2
User wants to create a new slideshow.

Each slide must have an entrance animation on the content textfield : each line (second level) must appear on click.

He wants to define that animation only one time in the master slide.

Use case 3
Using file 'exemple.odp', user wants to add an image in the slide 2 and make it appear before the line "Line 2" of content text field.

Use case 4
User creates a new odp file. In master view, he creates an Entrance animation for all slides (Group by level 1).

Then he creates slides.

In slide 4, he changes the Entrance animation, by grouping text by level 3 (this slide has 3 levels of text).

Then he goes into master view and changes the Entrance animation : group text by level 2.

What should happen for slide 4 ?
 * slide 4 should have the default entrance animation : group text by level 2
 * slide 4 should keep her specific entrance animation : group text by level 3

TBD

This example is for field "group text by level", but it's similar for all fields that can be defined in the master view.

exemple odp file
All previous use cases use the 'exemple.odp' file.

Use case 1
I suppose that slide 2 is already opened, and that "Layouts" panel is opened.


 * select textfield (1 click)
 * select "Custom Animation" panel (1 click)
 * click "Add..." (1 click)
 * "Entrance" is already selected, click on effect "Box", then click "OK" (2 clicks)

The textfield is now grouped by default by level 1


 * BUG ?
 * If we open the "Effect Options" dialog, then go to tab "Text Animation",


 * we see that the option "Group text" of the first object in the list is "By 2nd level paragraphs"

I found no way to group automatically or semi-automatically the whole textfield by level 2.

ie changing the option "Group text" of the first object in the list has no effect.

I just found a manual way :
 * in the list of animated objects :
 * for each line of level 2 (the user has to search them himself)
 * right-clic (1 click)
 * then select "Start on click" (1 click)

Total nb of clicks : 5 + (2 * nb objects to change) = 5 + (2 * 4) = 13

Use case 2
This is not possible with LibreOffice 4.0

User has to re-create animation for each slide.

Use case 3
I suppose the image has been inserted in the slide and that the "Layout" paneil is opened.


 * select image (1 click)
 * select "Custom Animation" (1 click)
 * click "Add..." (1 click)
 * "Entrance" is already selected, click on effect "Box", then click "OK" (2 clicks)
 * 4 clicks on up arrow ("Change Order") to make it appear before "Line 2"

Total nb of clicks : 9

Use case 4
This is not possible with LibreOffice 4.0

Technical Context
From thread :https://lists.freedesktop.org/archives/libreoffice-ux-advise/2013-March/001876.html

Here are some technical informations given by Thorsten Behrens : (https://lists.freedesktop.org/archives/libreoffice-ux-advise/2013-March/001929.html)


 * Q : Is it possible to implement some visual changes on objects in slides ?

ex : add some small widget beside (or inside?) an object to indicate a status or to show a popup to activate some changes. Or have a special border.

These widgets/borders would be shown via a menu command, or via amouse hover, only while designing the slide.

''A : Yes, that is possible - there's a concept called SmartTag in Impress, that is e.g. used to implement this four-way icon at the presentation placeholder objects ('insert table/chart/picture/movie'), or for editing motion path animations. So the base technology for that is there.''


 * Q : Is it possible to implement some visual changes on every single line/ some lines of a textfield ?

It's a detailed version of the previous point : can a line in a textfield have some widget ?

or be drawn with some special border ?

A : In general yes, though slightly more involved.


 * Q : today, the 'animation objects' are linked to object in slides, but is the reverse also true ?

ie if user modify a slide object, can the animation object be updated automatically ?

A : Not sure I get the idea - are you referring to changes e.g. to master pages, that then translate to all slides using it (that is one aspect of the original question / task Janit was looking into)? Q : No, I was referring to the edition of a slide, when an animation is already defined on the lines of text : if you change the content of the text, the animation is not updated. A : Right - this is a bug.


 * Q : it can be implemented immediately, no changes required in VCL

''A : This one. ~All the work needed is in sd.''


 * Q : In this whole subject, what objects are linked to ODF format ?

(ie : what can be changed without changing the file format)

A : From the above - nothing should affect the file format.


 * Q : what are the technical limitations related to animations in Impress ?

''A : Going back to my initial comment - the sky is the limit. Without concrete questions though, hard to answer specifically.''

Proposal v1 (by MichelR)
The current state :



The global idea of the proposal:



The idea is to add a new task panel with simplified widgets (3 popups) that allow changes with very few clicks.

The global idea of the proposal for master view :



As we can use smartags, here is what we can do :



Note that smarttags are associated with a border of the element

And for master view :



In master view, the border should be specific because there is no real content. Otherwise, border for "level 0 group" may be identical to "level 1 group"

Use case 1
I suppose that slide 2 is already opened, and that "Layouts" panel is opened.


 * select "Entrance Animation" panel (1 click)
 * click on effect "Box" (1 click)
 * (if it's not the default value) click on "group by level 1" (1 click)

The textfield is now grouped by level 1


 * click on "group by level 2" (1 click)

The textfield is now grouped by level 2

Total nb of clicks : 4 or 3 (depending of a default value)



Use case 2
I suppose that Master view is already opened, and that "Layouts" panel is opened.


 * select "Entrance Animation" panel (1 click)
 * click on effect "Box" (1 click)
 * (if it's not the default value) click on "group by level 1" (1 click)

The textfield of all future slides is now grouped by level 1

Total nb of click : 3



Use case 3
No changes in nb of click from current behavior.

The only change may be visual : the image has a smarttag.



Use case 4
TBD

Extensions for "Custom Animation" panel
This is an idea to extend the smarttag when "Custom Animation" is opened :

add a popup menu with commands.

It may provide shorcuts to enhance use case 3.