Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GSoC Panel 2016

Thorsten Behrens
September 09, 2016
46

GSoC Panel 2016

The LibreOffice GSoC season 2016 results

Thorsten Behrens

September 09, 2016
Tweet

Transcript

  1. 2 Where do want to go… The 2016 project roster

    Wastack - Finish Firebird driver integration (AlexP11223 - Implement Zoner Draw import filter) Azorpid - Implementing legacy SAX parser Interface with FastParser ubap - Improve user experience with Table Styles eszka - Infrastructure for defining toolbars via .ui (Glade) files Akshay Deep - Redesigning the Template Manager and Emoji Toolbar Control Jaskaran Veer Singh - Support ODF styles in Calc using Orcus susobhang70 - Review of Sidebar and it's functionality autoit - Unifying low-level text layout using HarfBuzz
  2. 4 So what do we have? Upgrade embedded Firebird to

    version 3.0 Save Firebird backup format Fix Firebird related bugs
  3. 7 LibreOffice Brno 2016 Conference Presentation GSoC – Writer Table

    Styles My name: Jakub Trzebiatowski (ubap) My mentors: Jan Holešovský Yousuf Philips Miklos Vajna
  4. 8 LibreOffice Brno 2016 Conference Presentation Google Summer of Code

    – Writer Table Styles The projects targets were to implement the following: ODF Export and Import of Table Styles Table Styles in the sidebar Table Styles dropdown menu
  5. 9 LibreOffice Brno 2016 Conference Presentation ODF Export and Import

    of Table Styles The UNO API had to be implemented Table Styles are exported as a <table:table- template> element The following elements are exported as in ODF specs background, body, even-columns, even-rows, first-column, first-row, last-column, last-row, odd- columns, odd-rows Six extra properties exported in “loext” namespace first-row-even-column, last-row-even-column, first-row-end-column, first-row-start-column, last- row-end-column, last-row-start-column
  6. 11 LibreOffice Brno 2016 Conference Presentation Table Styles in the

    Styles and Formatting sidebar The sidebar is implemented but not yet fully finished Allows to: Browse the styles and filter applied styles Apply a style Update a style Hide a Style Currently applied style is highlighted
  7. 12 LibreOffice Brno 2016 Conference Presentation Table Styles in the

    Styles and Formatting sidebar The dialog to edit properties of a Table Style is missing Table Styles dropdown menu The dropdown menu is still not implemented
  8. Infrastructure for defining toolbars via .ui (Glade) files Szymon Kłos

    (eszka) Mentors: Jan Holešovský Samuel Mehrbrodt
  9. Goals Rich and dynamic layout of toolbars UI easy to

    modify using graphical tool – Glade (no coding needed) Switching between classic and new mode Content depending on the context Layout according to screen/window size
  10. First steps Notebookbar as a child window – below toolbars...

    Loading different .ui files in each module Sfx2 slot mechanism .uno:Notebookar
  11. Popup conversions Some popups were able to work only in

    the sidebar It was needed to create controllers for them and register in the modules After conversion they can be used in toolbars, Notebookbar and other places Examples: underline, character spacing, number format popups
  12. Horizontal panels for Impress Important Impress features are animations and

    slide transitions and should be accessible from Notebookbar Reused sidebar panels as single horizontal widgets
  13. Context handling New toolbar implementation should provide context dependent content

    Marks in the .ui files e.g.: context-Table, context-any Tabbed implementation shows additional tabs when user pointed table or picture Heiko’s concept contains static part and group which is replaced in some contexts STATIC PART CONTEXT DEPENDENT
  14. Priorities for widgets Mechanism providing access to all buttons when

    window is to small to show whole content Widgets can have assigned priorities Groups are collapsed, small arrow is showed instead Content in the popup
  15. Icon size customization I added possibility to change icon size

    in the Notebookbar and also Sidebar That feature is available in the Options From menubar: Tools > Options > View
  16. Multiple implementations We had a lot of concepts Changing the

    implementation requires just a reload of another .ui file Added switch in the menubar New implementations can be added in the officecfg/registry/data/org/openoffice/Office/UI/Notebookbar.xcu <node oor:name="Tabbed" oor:op="replace"> <prop oor:name="Label"> <value xml:lang="en-US">Tabbed</value> </prop> <prop oor:name="File"> <value>notebookbar_tabbed.ui</value> </prop> <prop oor:name="HasMenubar"> <value>true</value> </prop> </node>
  17. Toolbar modes Option to switch between Notebookbar and classic toolbars

    was needed We had the single toolbar but haven’t any option for easy activation Added entry in the menubar to choose the toolbar mode Entries in the officecfg (.xcu) Separate modes for each module
  18. Customization Description in the XML files Transformation to .ui files

    ? Possibility to modify by user <bar:tab id=”tHome” text="Home"> <bar:group id=”gClipboard” text=”Clipboard”> <bar:item href=".uno:Paste" size=”big”/> <bar:grid> <bar:row> <bar:item href=".uno:Cut" size=”tiny”/> </bar:row> <bar:row> <bar:item href=".uno:Copy" size=”tiny”/> </bar:row> </bar:grid> </bar:group> <bar:separator/> </bar:tab>
  19. Extensions support Extension developers should be able to add own

    content to the existing implementations and/or create own implementation
  20. All text and image content in this document is licensed

    under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. Thank you …
  21. 30 LibreOffice Brno 2016 Conference Presentation Redesigning the Template Manager

    Akshay Deep Mentors: Samuel Mehrbrodt Yousuf Philips
  22. 32 LibreOffice Brno 2016 Conference Presentation Modifications: All Templates view

    replacing the previous Folder view Search, Application and Category filters replacing Tab design Removal of Save as Template mode Inbuilt category selection dialog Most functionalities shifted to context-menu Marking of default templates for each application Removal of remote files view Save as Template dialog Option to edit a template not in repository Several other bug fixes
  23. 33 LibreOffice Brno 2016 Conference Presentation Modifications: New ‘Selected +

    Hover’ state in thumbnail view How to try it? Just select a template. Now hover over a selected template and an unselected template to see the difference Save as Template Bug 95402 Improve Save as Template work flow Separated this functionality from template manager Modal dialog with category selection and template naming options Bug 94131 Option to set as default
  24. 34 LibreOffice Brno 2016 Conference Presentation Start Center All Templates

    view in Start Center with application filter Context menu for templates in start center Toggle buttons to denote selected template view
  25. 35 LibreOffice Brno 2016 Conference Presentation Impress Selection Tools >

    Options > LibreOffice Impress > General > Start with Template Selection Enable users to select a template when Impress starts Easy means to disable the dialog on Impress startup Dialog is Enabled by default Impress Template dialog
  26. 37 LibreOffice Brno 2016 Conference Presentation Enhancement New control, developed

    from scratch using emojione unicode database Control available in Writer, Impress and Calc, accessible via Standard Bar Free to use any sort of widgets to facilitate the purpose Use of tabs to filter emojis based on categories Emojis appear as a grid Easy insertion, unlike special character control which uses a modal dialog as of version 5.2 Font support (Removal of tofu char)
  27. 38 LibreOffice Brno 2016 Conference Presentation Font dependent control i.e.

    not all fonts support them Unlike svg or png emoji, these emoji are glyphs of a particular unicode sequence How it looks now
  28. 39 LibreOffice Brno 2016 Conference Presentation Further Enhancements The foundation

    for this enhancement has been built now. Further improvements have been proposed like: Filtering of unsupported glyphs Removal of duplicate glyphs (multicolor emoji are treated as duplicate glyph) as multicolor glyphs are not supported by any font support for svg emoji, etc. For further insights, refer to: https://akkidevblog.wordpress.com/2016/07/23/redesigning-the-template-mana ger/ https://akkidevblog.wordpress.com/2016/08/19/emoji-toolbar-control/
  29. 40 LibreOffice Brno 2016 Conference Presentation Miscellaneous Tasks Goto Page

    Dialog for LibreOffice 5.3 Online Templates View [abandoned due to lack of server framework] Creation of Active Menu Button Bug 75369 Non-installed applications aren’t greyed out Bug 87697 Indicate selected thumbnail view Bug 90577 Accessibility for clearing Recent Docs Bug 79889 Recent docs consistent with recent items list in File > Recent Documents Bug 79198 Close button doesn’t reappear after being clicked and so on...
  30. 41 LibreOffice Productivity Suite Import Cell Styles into Calc using

    Orcus By Jaskaran Veer Singh Google Summer of Code 2016
  31. 42 LibreOffice Productivity Suite What are Cell Styles ? Cell

    Styles = A set of Attributes Example :
  32. 43 LibreOffice Productivity Suite What is Orcus ? Standalone Filter

    Library Written in C++ Multi-Threaded Started out as a Kohei Yoshida's project. Now has 4-5 active and semi-active contributors Hosted on GITLAB
  33. 44 LibreOffice Productivity Suite Features of Orcus Import Filters •

    Open Document Spreadsheet • OOXML • XLS • Plain Text • Generic XML • Gnumeric XML Parsers • CSV • YAML • XML • JSON • CSS
  34. 45 LibreOffice Productivity Suite Working of Styles import Gets to

    know What to read Libreoffice Side Orcus Side Low Level Parser Produces Callbacks The Xml File DocShell Orcus Interface Styles Created On Screen
  35. 46 LibreOffice Productivity Suite Reasons for Using Orcus • UNO

    is slow with all its bells and whistles. • UNO's code for importing styles isn't very reusable. • Orcus is Time and Memory Efficient because of it's modern design and data structures.
  36. 47 LibreOffice Productivity Suite What's in store for you •

    Predefined styles means Less Clicks, Less Annoyance. • Calc would now ship with beautiful predefined set of Styles made by our UI/UX team. • Best Part : Define your own styles !
  37. 50 LibreOffice Productivity Suite Attributes that we import • Font

    • Fill • Cell Protection • Number Format • Alignment • Borders • Underline, Strikeout Attributes that we currently don't import • Conditional format • Various properties of Alignment • Various trivial attributes
  38. 51 LibreOffice Productivity Suite What we want from you •

    Hold on to your seats till this functionality is available. • Use this as much as you want when it's available • Report bugs to us on bugzilla. • Report if you want any attribute to be imported which currently isn't. • Contribute to Calc and Orcus ;-)
  39. 52 LibreOffice Productivity Suite Review of Sidebar and it’s functionality

    Susobhan Ghosh Google Summer of Code 2016 Mentors: bubli, jphilipz
  40. 53 LibreOffice Productivity Suite Introduction Junior Year – Computer Science

    and Engineering Student – International Institute of Information Technology, Hyderabad (IIIT-H), India A big thank you bubli and jphilipz for guiding me throughout and putting up with me. Also thank you to the design team and dev channel members Thanks to the community for organizing the conference and providing this opportunity to present my work No code, just screenshots! Detailed info at my blog – https://susobhang70.github.io
  41. 54 LibreOffice Productivity Suite tdf#83830: Page Deck for Writer Most

    used Writer Properties – just one click away!
  42. 55 LibreOffice Productivity Suite tdf#89466: Properties Panel for Impress/Draw Panel

    developed by bubli, jphilipz and Rishabh (merged this May) – I mainly worked on bugs and improvements Added Master Slide Button, Close Master View Button Enabled same panel for Draw
  43. 56 LibreOffice Productivity Suite tdf#87643: Shapes Deck & Default Shapes

    Panel (Draw) 10 categories – 153 shapes (Same shapes found on the shapes toolbar in Draw) More Shapes Panel (WIP) would go in the Shapes Deck below Default Shapes Panel
  44. 57 LibreOffice Productivity Suite tdf#87794: Media Playback Panel in Properties

    Deck Now Media Playback toolbar is no longer required!
  45. 58 LibreOffice Productivity Suite Other Improvements tdf#93845: Show Previews checkbox

    for Writer Styles tdf#90078: Import Bitmap Functionality to Area Panel
  46. 59 LibreOffice Productivity Suite What now? Most panels arriving in

    LO 5.3 QA issues are being worked on. Use the panels, report bugs! Perhaps contribute to Sidebar development?
  47. 61 Unifying LibreOffice Low Level Text Layout SalLayout UniscribeLayout WinLayout

    GraphiteLayout ServerFontLayout GenericSalLayout CTLayout PspFontLayout GraphiteServerFontLayout PspServerFontLayout SimpleWinLayout GraphiteWinLayout MultiSalLayout Problem
  48. 62 Unifying LibreOffice Low Level Text Layout Problem: complexity 3

    classes on Windows, simple, OpenType and Graphite. 4 classes on Unix, OpenType, Graphite, and 2 just for PostScript printing. 1 class on macOS, but no Graphite support. Now imagine how much work is needed to add support for something as simple as user controllable font features.
  49. 63 Unifying LibreOffice Low Level Text Layout Problem: inconsistency Different

    code paths on different platform, or even for different writing systems, with little to no code sharing. Language/writing systems support varies between platform APIs. It varies even between different versions of the same platform. Different platform APIs allow for different levels of integration.
  50. 64 Unifying LibreOffice Low Level Text Layout GSoC project: idea

    One class to rule them all. Based mostly on the existing Unix implementation. Uses HarfBuzz for everything; OpenType, Graphite and even AAT on macOS. Font loading is still done by platform APIs, for better integration.
  51. 65 Unifying LibreOffice Low Level Text Layout GSoC project: status

    A new class, CommonSalLayout. Naming is really hard! Code integrated with font and graphics libraries on all supported platforms. Can be switched on/off at run time. Some issues remain: There seem to be some performance regressions. Font fallback does not work on macOS. Some Graphite fonts are broken (e.g. Awami font), GenericSalLayout::ApplyDXArray() I’m looking at you! Non-SFNT (e.g. Type 1) fonts are not currently supported. Controlling font features is not yet supported. Windows XP is not supported. Code should land on master soonish.
  52. 66 Unifying LibreOffice Low Level Text Layout SalLayout UniscribeLayout WinLayout

    GraphiteLayout ServerFontLayout GenericSalLayout CTLayout PspFontLayout GraphiteServerFontLayout PspServerFontLayout SimpleWinLayout GraphiteWinLayout MultiSalLayout feature/commonsallayout branch, and soon in master CommonSalLayout
  53. 68 Where do want to go… All text and image

    content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. Thank you … for working on this! Thanks a lot for your attention Thank you GOOGLE for sponsoring!!! Thank you mentors for your time & encouragement Spread the word, encourage students to apply next year!