summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-04-20 11:47:43 +0200
committerMike Kaganski <mike.kaganski@collabora.com>2023-04-25 11:18:45 +0200
commitfcda481a0758c9727d126404778cc16f4ef1bb13 (patch)
treef149ab2e68a019f3dcce29fc9baacc99784878d4
parentResolves: tdf#153441 use a TriStateEnabled helper (diff)
downloadcore-fcda481a0758c9727d126404778cc16f4ef1bb13.tar.gz
core-fcda481a0758c9727d126404778cc16f4ef1bb13.zip
tdf#153190 Compressing tool calculates compression rate wrong on large images
calculation used sal_Int32, which overflowed on large values, rather use floating point to do the calculation Change-Id: I15974c5bf785a800a8f71711acfa9895361bad7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150683 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit b167bc073b6b83110242bfbace107f6978e5bca7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150627 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 625e7b8d29913e68b451615b344662b8cfc32d8d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150632 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--svx/source/dialog/compressgraphicdialog.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/svx/source/dialog/compressgraphicdialog.cxx b/svx/source/dialog/compressgraphicdialog.cxx
index 91399497c48e..a8be5ed6c5e8 100644
--- a/svx/source/dialog/compressgraphicdialog.cxx
+++ b/svx/source/dialog/compressgraphicdialog.cxx
@@ -377,7 +377,11 @@ IMPL_LINK_NOARG( CompressGraphicsDialog, CalculateClickHdl, weld::Button&, void
{
OUString aSizeAsString = OUString::number(aSize / 1024);
- OUString aReductionSizeAsString = OUString::number( m_aNativeSize > 0 ? (m_aNativeSize - aSize) * 100 / m_aNativeSize : 0 );
+ OUString aReductionSizeAsString;
+ if (m_aNativeSize > 0 )
+ aReductionSizeAsString = OUString::number( static_cast<sal_Int32>((m_aNativeSize - aSize) * 100.0 / m_aNativeSize) );
+ else
+ aReductionSizeAsString = "0";
OUString aNewSizeString = SvxResId(STR_IMAGE_CAPACITY_WITH_REDUCTION);
aNewSizeString = aNewSizeString.replaceAll("$(CAPACITY)", aSizeAsString);