office-gobmx/editeng
Tomaž Vajngerl 628275acb1 tdf#90407 Change the auto-fit alg. to match better with OOXML
The auto-fit algorithm has been tweaked to be more in-line with
the expectations of OOXML. This means a couple of changes to what
properties are scaled by the algorithm have been made:
- most properties that influence the X axis position or size (for
example indent) are not scaled down or changed by scaling.
- properties that influence y axis position and size are scaled
by a separate parameter (like in the OOXML). This is used in the
auto-fit algorithm in a different way.
- if line spacing is proportional, it is now scaled with the
spacing parameter. Fixed line spacing doesn't get scaled.
- the main scaling X,Y parameter only scales the fonts.
- trying hard to scale the fonts to the nearest pt (point) value

With this change the scaling is much more stable than it was
before - for example it doesn't matter what the unscaled font
size is, when it is scaled down to the text box size, it (should)
always look the same (for example scaling from 32pt -> 10pt or
64pt -> 10pt or even 999pt -> 10pt).

The algorithm is also rewritten to be better at finding a fit and
is also better at find a good fit, but it can take more iterations
by doing so (there are ways to improve it however). Previous
algorithm used a linear search to converge to the best fit in less
iterations, but the issue with that was that it could in some cases
miss a solution (especially since change to floating point scaling
parameter). The new algorithm now uses a binary search - always
trying the middle of the search space.

OOXML export and import was also changed to take advantage of the
font scaling and spacing scaling parameters. The additional
scaling at export that was needed to have consistent OOXML support
was removed.

Change-Id: I8f3bb8d43a01931f18bd7ffdf8e0ba40caa73d8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149207
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-03-26 15:07:39 +00:00
..
inc tdf#148966: pptx: workaround for multiline fields followed by linebreaks 2023-02-28 11:30:53 +00:00
qa Only specialize CppUnit::assetion_traits<T>::toString member functions 2023-02-16 21:16:12 +00:00
source tdf#90407 Change the auto-fit alg. to match better with OOXML 2023-03-26 15:07:39 +00:00
uiconfig/ui use GetParentWithLOKNotifier to get the frame LOKNotifier to reuse for menus 2020-12-15 17:31:19 +01:00
AllLangMoTarget_editeng.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
CppunitTest_editeng_borderline.mk gbuild: Remove MSVC 2013 legacy code 2017-04-21 18:18:44 +02:00
CppunitTest_editeng_core.mk introduce docmodel comp., model::ThemeColor, use it in SvxColorItem 2023-01-12 23:15:58 +00:00
CppunitTest_editeng_lookuptree.mk gbuild: Remove MSVC 2013 legacy code 2017-04-21 18:18:44 +02:00
CustomTarget_generated.mk Fix call of Python 2020-03-03 10:42:09 +01:00
IwyuFilter_editeng.yaml Recheck modules [e-f]* with IWYU 2022-01-17 01:33:35 +01:00
Library_editeng.mk introduce docmodel comp., model::ThemeColor, use it in SvxColorItem 2023-01-12 23:15:58 +00:00
Makefile re-base on ALv2 code. Includes (at least) relevant parts of: 2012-11-06 11:58:16 +00:00
Module_editeng.mk migrate to boost::gettext 2017-07-21 08:20:50 +01:00
README.md Updated README.md files to represent current code / use Markdown format 2021-04-07 17:47:16 +02:00
UIConfig_editeng.mk convert editeng spell menu to .ui format 2017-02-17 15:34:09 +00:00

Edit Engine

In OpenOffice.org build DEV300m72 this module was split off from svx but it has no dependencies on svx (nor on sfx2) while in turn svx depends on editeng

Read more in the mailing list post: http://www.mail-archive.com/dev@openoffice.org/msg13237.html

If you build LibreOffice with dbgutil, you have some extended debug keys:

  • Ctrl+Alt+F1 - draws the paragraph rectangles in different colors
  • Ctrl+Alt+F11 - toggles dumping the edit engine state to the "editenginedump.log" on draw
  • Ctrl+Alt+F12 - dumps the current edit engine state to "editenginedump.log"