Proposed [API CHANGE] Synchronize supported Writer document zoom ranges

Stephan Bergmann sbergman at redhat.com
Wed Feb 6 08:15:00 UTC 2019


FYI (and I assume this to be non-controversial), 
<https://gerrit.libreoffice.org/#/c/67427/>:

> [API CHANGE] Synchronize supported Writer document zoom ranges
> 
> On the one hand, SvxZoomSliderItem/SvxZoomSliderControl as used by SwView's
> SID_ATTR_ZOOMSLIDER support a range from MINZOOM (20) to MAXZOOM (600) (defined
> in sw/inc/view.hxx).  Setting a zoom value outside that range for one causes the
> DBG_ASSERT "Looks like the zoom slider item is corrupted" in
> SvxZoomSliderControl::StateChanged (svx/source/stbctrls/zoomsliderctrl.cxx) to
> fire, and for another (when setting a too small value) tries to assign a
> negative value (which wraps around, and gets flagged by Clang's
> -fsanitize=implicit-signed-integer-truncation) to sal_uInt16 nCurrentZoom at
> 
>   nCurrentZoom = nCurrentZoom - mxImpl->mnMinZoom;
> 
> in SvxZoomSliderControl::Zoom2Offset (svx/source/stbctrls/zoomsliderctrl.cxx).
> 
> On the other hand, SwXViewSettings' support of css.text.ViewSettings' ZoomValue
> property allowed values in the range from 5 to 1000 (cf.
> SwXViewSettings::_setSingleValue in sw/source/uibase/uno/unomod.cxx), and some
> JunitTests actually set such values (10, 15) below the MINZOOM value of 20.
> 
> The incompatible 5--1000 range was there ever since
> 7b0b5cdfeed656b279bc32cd929630d5fc25878b "initial import", but looks rather
> random, so change it to match the 20--600 range instead.  (And lets flag this as
> an [API CHANGE], to be on the safe side.)
[...]


More information about the LibreOffice mailing list