cui/source/tabpages/transfrm.cxx | 60 ++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 25 deletions(-)
New commits: commit 22c9f9bd5b0e014b3f3ce9f50fb68dc54e2f9e85 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Sat Aug 9 12:38:35 2025 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Wed Aug 13 09:37:27 2025 +0200 cid#1660069 Division or modulo by float zero and cid#1660394 Division or modulo by float zero Change-Id: I10b0b100ff3fe99682bf4e0da6bc9ef3e356a996 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189257 Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Tested-by: Jenkins (cherry picked from commit 56c55dceea7ddb15bf42e68d58a2eb23bb5bcd05) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189294 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx index 9cfeff9b1ff8..3238313f6f27 100644 --- a/cui/source/tabpages/transfrm.cxx +++ b/cui/source/tabpages/transfrm.cxx @@ -1020,18 +1020,23 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet* ) if ( !mbPageDisabled ) { - pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_X ); - if ( pItem ) + m_xMtrPosX->set_sensitive(fUIScale != 0.0); + m_xMtrPosY->set_sensitive(fUIScale != 0.0); + if (fUIScale != 0.0) { - const double fTmp((static_cast<const SfxInt32Item*>(pItem)->GetValue() - maAnchor.getX()) / fUIScale); - SetMetricValue(*m_xMtrPosX, basegfx::fround(fTmp), mePoolUnit); - } + pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_X ); + if ( pItem ) + { + const double fTmp((static_cast<const SfxInt32Item*>(pItem)->GetValue() - maAnchor.getX()) / fUIScale); + SetMetricValue(*m_xMtrPosX, basegfx::fround(fTmp), mePoolUnit); + } - pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_Y ); - if ( pItem ) - { - const double fTmp((static_cast<const SfxInt32Item*>(pItem)->GetValue() - maAnchor.getY()) / fUIScale); - SetMetricValue(*m_xMtrPosY, basegfx::fround(fTmp), mePoolUnit); + pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_POS_Y ); + if ( pItem ) + { + const double fTmp((static_cast<const SfxInt32Item*>(pItem)->GetValue() - maAnchor.getY()) / fUIScale); + SetMetricValue(*m_xMtrPosY, basegfx::fround(fTmp), mePoolUnit); + } } pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_PROTECT_POS ); @@ -1052,22 +1057,27 @@ void SvxPositionSizeTabPage::Reset( const SfxItemSet* ) ChangePosProtectHdl(*m_xTsbPosProtect); } - { // #i75273# set width - pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_WIDTH ); - mfOldWidth = std::max( pItem ? static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 ); - double fTmpWidth((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldWidth), mePoolUnit, MapUnit::Map100thMM)) / fUIScale); - if (m_xMtrWidth->get_digits()) - fTmpWidth *= pow(10.0, m_xMtrWidth->get_digits()); - m_xMtrWidth->set_value(fTmpWidth, FieldUnit::MM_100TH); - } + m_xMtrWidth->set_sensitive(fUIScale != 0.0); + m_xMtrHeight->set_sensitive(fUIScale != 0.0); + if (fUIScale != 0.0) + { + { // #i75273# set width + pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_WIDTH ); + mfOldWidth = std::max( pItem ? static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 ); + double fTmpWidth((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldWidth), mePoolUnit, MapUnit::Map100thMM)) / fUIScale); + if (m_xMtrWidth->get_digits()) + fTmpWidth *= pow(10.0, m_xMtrWidth->get_digits()); + m_xMtrWidth->set_value(fTmpWidth, FieldUnit::MM_100TH); + } - { // #i75273# set height - pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_HEIGHT ); - mfOldHeight = std::max( pItem ? static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 ); - double fTmpHeight((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldHeight), mePoolUnit, MapUnit::Map100thMM)) / fUIScale); - if (m_xMtrHeight->get_digits()) - fTmpHeight *= pow(10.0, m_xMtrHeight->get_digits()); - m_xMtrHeight->set_value(fTmpHeight, FieldUnit::MM_100TH); + { // #i75273# set height + pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_HEIGHT ); + mfOldHeight = std::max( pItem ? static_cast<double>(static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0.0, 1.0 ); + double fTmpHeight((OutputDevice::LogicToLogic(static_cast<sal_Int32>(mfOldHeight), mePoolUnit, MapUnit::Map100thMM)) / fUIScale); + if (m_xMtrHeight->get_digits()) + fTmpHeight *= pow(10.0, m_xMtrHeight->get_digits()); + m_xMtrHeight->set_value(fTmpHeight, FieldUnit::MM_100TH); + } } pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_PROTECT_SIZE );