svx/source/unodraw/SvxXTextColumns.cxx | 4 ++-- sw/source/core/layout/atrfrm.cxx | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-)
New commits: commit 4da48ee1fea74b2712bd5edf83e2a94d6aab1b8a Author: Mike Kaganski <[email protected]> AuthorDate: Sun Aug 7 21:00:01 2022 +0300 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Aug 9 10:47:47 2022 +0200 tdf#150293: setPropertyValue(WID_TXTCOL_LINE_WIDTH) takes mm100 Before commit 95ebd24a629b4c8cd62cc20c0701683512cc8fa0 Author Mike Kaganski <[email protected]> Date Thu May 27 13:00:10 2021 +0300 editengine-columns: ODF support [API CHANGE] SwXTextColumns crtor took SwFormatCol, and stored line width in the same units as in SwFormatCol - in twips; conversion to mm100 only happened at export stage in SwXTextColumns::getPropertyValue. The mentioned commit changed to SvxXTextColumns::setPropertyValue, passing the line width from SwFormatCol also without any conversion; but SvxXTextColumns::setPropertyValue expects mm100, so the result was wrong. So perform the proper conversion at SwFormatCol::QueryValue and SwFormatCol::PutValue, and also store the line width in mm100 in SvxXTextColumns, to avoid useless extra conversion. Change-Id: Idfd62a7563f9d3aa5947c1149572a8b8b696b179 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137931 Tested-by: Jenkins Reviewed-by: Mike Kaganski <[email protected]> (cherry picked from commit 47b4c9bb7f0ef0175e55acaf22c740d11f6e9474) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137827 Reviewed-by: Xisco Fauli <[email protected]> (cherry picked from commit fcd541901d17b920aff7069131d3dc4b84adf264) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137828 diff --git a/svx/source/unodraw/SvxXTextColumns.cxx b/svx/source/unodraw/SvxXTextColumns.cxx index 00971bc7bc87..a0e399bd4cbb 100644 --- a/svx/source/unodraw/SvxXTextColumns.cxx +++ b/svx/source/unodraw/SvxXTextColumns.cxx @@ -210,7 +210,7 @@ void SvxXTextColumns::setPropertyValue(const OUString& rPropertyName, const css: sal_Int32 nTmp; if (!(aValue >>= nTmp) || nTmp < 0) throw css::lang::IllegalArgumentException(); - m_nSepLineWidth = o3tl::toTwips(nTmp, o3tl::Length::mm100); + m_nSepLineWidth = nTmp; break; } case WID_TXTCOL_LINE_COLOR: @@ -271,7 +271,7 @@ css::uno::Any SvxXTextColumns::getPropertyValue(const OUString& rPropertyName) switch (pEntry->nWID) { case WID_TXTCOL_LINE_WIDTH: - aRet <<= o3tl::narrowing<sal_Int32>(convertTwipToMm100(m_nSepLineWidth)); + aRet <<= m_nSepLineWidth; break; case WID_TXTCOL_LINE_COLOR: aRet <<= m_nSepLineColor; diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx index fa246799d547..1fcf14c9f063 100644 --- a/sw/source/core/layout/atrfrm.cxx +++ b/sw/source/core/layout/atrfrm.cxx @@ -1112,7 +1112,8 @@ bool SwFormatCol::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const } } uno::Any aVal; - aVal <<= o3tl::narrowing<sal_Int32>(GetLineWidth()); + aVal <<= o3tl::narrowing<sal_Int32>( + o3tl::convert(GetLineWidth(), o3tl::Length::twip, o3tl::Length::mm100)); xProps->setPropertyValue(UNO_NAME_SEPARATOR_LINE_WIDTH, aVal); aVal <<= GetLineColor(); xProps->setPropertyValue(UNO_NAME_SEPARATOR_LINE_COLOR, aVal); @@ -1202,6 +1203,7 @@ bool SwFormatCol::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) { xProps->getPropertyValue(UNO_NAME_IS_AUTOMATIC) >>= m_bOrtho; xProps->getPropertyValue(UNO_NAME_SEPARATOR_LINE_WIDTH) >>= m_nLineWidth; + m_nLineWidth = o3tl::toTwips(m_nLineWidth, o3tl::Length::mm100); xProps->getPropertyValue(UNO_NAME_SEPARATOR_LINE_COLOR) >>= m_aLineColor; if (sal_Int32 nHeight; xProps->getPropertyValue(UNO_NAME_SEPARATOR_LINE_RELATIVE_HEIGHT) >>= nHeight)
