Development/ScreenshotsAtInstall
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:
- The target computer locale
- 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)