Development/ScreenshotsAtInstall

From The Document Foundation Wiki
Jump to: navigation, search

Screenshots use in Local Help

Screenshots is a feature implemented in LibreOffice that allows create an image of a dialog box and save it to a png image file. This feature is valuable for documenting LibreOffice features as it illustrate contents described textually in the Help system or other textbooks and guides on LibreOffice.

Problem description

Being a valuable resource for clarity of help contents, screenshots are naturally welcome to enhance our help system produced by TDF. However the following issues occurs:

  • The help system of LibreOffice is translated into ~70 languages
  • Each language can produce as much as ~30 MB of png images, for all screenshots generated by the "make screenshots" command at build time
  • The current Help system packaging is ~7MB of XML contents.

That said, the volume of data of the help system will increase 4x, with consequences in infra.

Solution #1

Generate the screenshots at install time of the Help system, in the target computer.

Advantages:

  • Generation will consider:
  1. The target computer locale
  2. The target computer operating system and window management

Issues:

  • ~10 minute flickering of user screen while taking the screenshot can be disturbing.
  • Requires development of the screen shooting at install time.

References

Bubli's message on technical issues

I'm takin' the liberty to summarize the current problems with screenshots 
implementation:

* the archives (.zip) with many screenshots for all 100+ languages take lot of 
space on download mirrors
* splitting those archives per language (and users downloading only 
screenshots for their language with their help package) requires elaborate 
postprocessing and packaging
* even with per-language split, platforms (Linux vs. Windows vs. Mac) are not 
taken into account i.e. screenshots are currently generated for 1 platform 
only

So Olivier's proposal was to create screenshots on the fly. When the user 
opens a help text for the first time, placeholder screenshots present in 
helptexts (English ones, taken on Linux) would be replaced with screenshots 
specific for her OS and her language. That would solve the problem of archive 
size and/or absent per-language packaging process, as well as platform 
dependence problem.

However:
* generating screenshots involves lot of screen flickering, this could be 
disturbing to the user
* generating screenshots was designed by us as a built-time process, depending 
on cppunit framework, which is present during build time and not during 
runtime

We can generate a screenshot during runtime, but only of a current dialog, 
which the user has to manually open before. One of the ideas was to automate 
the process via e.g. macro that would call some kindof .uno:TakeScreenshot 
command, but with this approach, "How to open any/every LibO dialog" at 
runtime remains unresolved.

I hope I didn't forget anything

During the development, I was involved in setting up cppunit screenshotting 
framework and then image packaging, help updating respectively, but I know 
nothing about *how* the bitmap with screenshot is actually generated, that's 
why we involved Armin in this discussion

B.
 Does it matter that some over-cautious users might get concerned about
 hypothetical privacy issues on the grounds that "LO takes screenshots on
 my system (and possibly sends it somewhere)"? - Mike Kaganski

Solution #2

Summary: Make screenshots at build time, and pack it in the install package.

Advantages

  • Quicker and smooth install in user desktop

Issues

  • Generate ~70 sets of screenshots at build time and pack with Help system
  • Increase of data storage and bandwidth for distribution
  • disregard OS window manager (minor issue)