Development/ScreenshotsAtInstall

    From The Document Foundation Wiki

    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)