Status report: consultancy team, week 30, 2023


  • fix up outstanding coverity warnings
    • use of pointer to out of scope local was a good catch
  • crashtesting is running out of space because so many documents are
    crashing and dumping core
    → propose fix of:
  • look at whole document invalidations on entering/leaving header
    • which is a different thing to the earlier invalidation on
      clicking empty header/footer area
  • investigate cool#6931
  • excel 2003 jumps to max row max col on final ctrl+down or
  • gnumeric does the same FWIW
  • google sheets jumps to max allocated row col, where col defaults
    to 256 and row to approx 9000
    • these can be manually expanded
  • tdf#156462 ctrl+left regression in calc seen while looking into
  • cool#6931 don’t leap to document limits on final ctrl+down and
    ctrl+right, instead leap over some fairly generous but bounded
    amount of emptiness, initially beyond the print bounds and then in
    blocks of 500 rows or 13 cols.
  • tdf#156411 fix an upstream regression pinned on me
  • invalidations on entering/leaving header
    • as an aside I see that
      void Window::Invalidate(const vcl::Region& rRegion,…
      does LogicInvalidate(rRegion.GetBoundRect());
      which invalidates the whole bound rectangle. There is the
      option to break the region down into rectangles and invalidate
      them individually which might be worth doing, but not in scope
      right now
    • only invalidate the border regions when activating/deactivating
  • crashtesting
    • fix regression from transparency->alpha conversion
    • fix regression from recalc optimal row height on import
  • COOL Weekly Meeting
  • ESC Weekly Meeting
  • start into cool#6911
  • cool#6911 calc perf with lots of comments
  • cool#6911 try sending the cell address of the note rather
    that the logic rect of the cell and find the cell bounds in js.
    Seems workable, need to take merged cell/rows into account too
    though, that’s a TODO still.


— Large TOC - navigation not right

  • Working on it

— New API for saving an embedded object as rtf wrapped ole file

  • Fix provided

— PDF export: Wide OLE influences size of following OLE

  • Fix provided


  • Worked on Draw/Impress view separation bugs
    • Fixed what I think was the root cause (merge pending), now previews
      and tiles in general don’t seem to be buggy like before, the different views
      get the correct tiles and they update all of them instead of just the
      current one.


Finish document themes for Impress

  • Import and export for ODF
    • Finally figured out the problem with import of char theme colors
      • we used a generic class to import “text-properties” for style
        properties, but need to override parsing for ComplexColor and return the
        ComplexColor context class
      • because char-complex-color is a child element of text-properties
      • changing the generic class is ugly (should’ve been an abstract class
        anyway), so needed to create a new class for style properties parsing
    • Added border theme color import/export for ODF + tests
  • Sparkline theme support
    • added support in SparklineAttributes (we now use only ComplexColor for
    • added import/export for ODF
    • added import/export for OOXML
    • added round-trip tests for import/export ODF and OOXML