Files
odfstudio/include
Armin Le Grand (Collabora) 782131d3a3 StripPortions: Move tooling closer to EditEngine/Outliner
EditEngine/Outliner::StripPortions is used with some lambda
callbacks to convert Text to Primitives. The tooling for this
is currently located in svx due to historical reasons (when I
initially did that).

An EditEngine/Outliner gets configured, this is dependent
of the object type to handle (see TextBreakupHandler in svx
and other places).

Then the OutlinerParaObject gets set - the model data.
EditEngine::StripPortions then initially uses
ImpEditEngine::Paint which layouts all that and formats it.
For all Text (or Graphics e.g. Bullets) those callbacks are
used - if given. If not given it *still* does a direct paint
to a given OutputDevice to stay compatible with legacy
usages.

Thus ImpEditEngine::Paint is currently kind of an hybrid: It
needs to be capable of both: For Primitive creation it
extracts data to DrawPortionInfo or DrawBulletInfo and calls
the lambda callback where (e.g. in svx) the Primitives are
created as needed based on that data.
For Paint that data is used to Paint using the given
OutputDevice.

This means up to now for doing changes both had to be
supported in that method which of course hosts the danger
of getting unequal outputs when not being very careful.

The DirectPaint is now rarely used (AFAIK only in some UI
elements, e.g. WeldEditView stuff).

The goal is to go in a direction where it would be possible
to do those remaining Paint calls direcly inside ImpEditEngine
using primitives, or - alternatively - change all remaining
places to use a unified StripPortions method and send the
result to a PrimitiveRenderer or buffer/resue it.

This change is a 1st step to get the preconditions but does
not change functionality yet. It moves that tooling to where
it is used.

Change-Id: I7225eab9a0dfd3d50cd3d1d8fe386dfb99ec42ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186045
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
Tested-by: Jenkins
2025-06-06 11:37:06 +02:00
..
2025-01-10 19:38:37 +01:00
2025-05-20 13:25:08 +02:00
…
2025-05-20 13:25:08 +02:00
2025-05-16 13:37:53 +02:00
2025-04-30 17:00:24 +02:00
…
2025-05-16 15:45:41 +02:00
2025-03-21 14:02:36 +01:00
2025-05-14 08:43:54 +02:00
2025-02-25 09:25:42 +01:00
…
…
…
…
…
…