sc/source/ui/view/gridwin4.cxx |   31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

New commits:
commit 2d0a365bff91d56790bcb17212e9d819835f0258
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Sun Feb 18 11:34:19 2024 +0600
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Sun Feb 18 13:40:51 2024 +0100

    Drop twipFactor, and use Point::scale
    
    Change-Id: I044865882f71e18d1b5f0d87993d865a128ac585
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163550
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 3aa36bebb597..55793ff1eb80 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -659,10 +659,6 @@ Fraction GetZoom(const ScViewData& rViewData, int i)
     };
     return (rViewData.*GetZooms[i])();
 }
-
-// Multiplying by this is basically equivalent to o3tl::convert(foo, 
o3tl::Length::px, o3tl::Length::mm100)
-// Where there are 15 twips in an ideal pixel and 1 twip is 0.0017638889 cm
-constexpr double twipFactor = 15 * 1.76388889; // 26.45833335
 }
 
 void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& 
rTableInfo, ScOutputData& aOutputData,
@@ -1055,18 +1051,17 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, 
const ScTableInfo& rTableI
             {
                 Point aOrigin = aOriginalMode.GetOrigin();
                 if (bLayoutRTL)
-                    aOrigin.setX(-o3tl::convert(aOrigin.getX(), 
o3tl::Length::twip, o3tl::Length::px)
-                                 + aOutputData.nScrX + aOutputData.GetScrW());
+                    aOrigin.setX(-aOrigin.getX()
+                                 + o3tl::toTwips(aOutputData.nScrX + 
aOutputData.GetScrW(), o3tl::Length::px));
                 else
-                    aOrigin.setX(o3tl::convert(aOrigin.getX(), 
o3tl::Length::twip, o3tl::Length::px)
-                                 + aOutputData.nScrX);
-
-                aOrigin.setY(o3tl::convert(aOrigin.getY(), o3tl::Length::twip, 
o3tl::Length::px)
-                             + aOutputData.nScrY);
+                    aOrigin.AdjustX(o3tl::toTwips(aOutputData.nScrX, 
o3tl::Length::px));
 
+                aOrigin.AdjustY(o3tl::toTwips(aOutputData.nScrY, 
o3tl::Length::px));
+                aOrigin = o3tl::convert(aOrigin, o3tl::Length::twip, 
o3tl::Length::mm100);
                 // keep into account the zoom factor
-                aOrigin = Point((aOrigin.getX() * twipFactor) / 
static_cast<double>(aDrawMode.GetScaleX()),
-                                 (aOrigin.getY() * twipFactor) / 
static_cast<double>(aDrawMode.GetScaleY()));
+                aOrigin = aOrigin.scale(
+                    aDrawMode.GetScaleX().GetDenominator(), 
aDrawMode.GetScaleX().GetNumerator(),
+                    aDrawMode.GetScaleY().GetDenominator(), 
aDrawMode.GetScaleY().GetNumerator());
 
                 MapMode aNew = rDevice.GetMapMode();
                 aNew.SetOrigin(aOrigin);
@@ -1155,14 +1150,16 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, 
const ScTableInfo& rTableI
 
             // Need to draw the background in absolute coords.
             Point aOriginTw = aOriginalMode.GetOrigin();
-            Point aOriginPx = o3tl::convert(aOriginTw, o3tl::Length::twip, 
o3tl::Length::px);
-            Point aOriginAbsPx = aOriginPx + aTileRectPx.GetPos();
+            Point aOriginAbsTw = aOriginTw + 
o3tl::toTwips(aTileRectPx.GetPos(), o3tl::Length::px);
+            Point aOriginAbsPx = o3tl::convert(aOriginAbsTw, 
o3tl::Length::twip, o3tl::Length::px);
             aBackground += aOriginAbsPx;
             rDevice.SetMapMode(aDrawMode);
 
             // keep into account the zoom factor
-            Point aNewOrigin((aOriginAbsPx.getX() * twipFactor) / 
static_cast<double>(aDrawMode.GetScaleX()),
-                             (aOriginAbsPx.getY() * twipFactor) / 
static_cast<double>(aDrawMode.GetScaleY()));
+            Point aNewOrigin(o3tl::convert(aOriginAbsTw, o3tl::Length::twip, 
o3tl::Length::mm100));
+            aNewOrigin = aNewOrigin.scale(
+                aDrawMode.GetScaleX().GetDenominator(), 
aDrawMode.GetScaleX().GetNumerator(),
+                aDrawMode.GetScaleY().GetDenominator(), 
aDrawMode.GetScaleY().GetNumerator());
 
             MapMode aNewMM = rDevice.GetMapMode();
             aNewMM.SetOrigin(aNewOrigin);

Reply via email to