diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2022-01-10 14:54:31 +0900 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2022-01-12 02:57:51 +0100 |
commit | f2e1c6033890e513aa8e6b15dd6f26905d4622c8 (patch) | |
tree | 29b5272ee40705817d7fc3dfd1a511d988a5d16b /sc | |
parent | b957454e5ed46029ea0ca06a7d345d9608bfa4a1 (diff) |
sc: fix cond. format icon size, when we work with pixels
This is the case when the device is bWorksInPixels is true, which
is the case when running LOKit.
Change-Id: Ibfced11bf614604521240908f4821fb9abfbf362
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128200
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/view/output.cxx | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 3bfd86e671ff..2a94fc572051 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -908,7 +908,7 @@ const BitmapEx& getIcon(sc::IconSetBitmapMap & rIconSetBitmapMap, ScIconSetType } void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldIconSetInfo, const tools::Rectangle& rRect, tools::Long nOneX, tools::Long nOneY, - sc::IconSetBitmapMap & rIconSetBitmapMap) + sc::IconSetBitmapMap & rIconSetBitmapMap, bool bWorksInPixels) { ScIconSetType eType = pOldIconSetInfo->eIconSetType; sal_Int32 nIndex = pOldIconSetInfo->nIconIndex; @@ -917,7 +917,18 @@ void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldI tools::Long aHeight = o3tl::convert(10, o3tl::Length::pt, o3tl::Length::mm100); if (pOldIconSetInfo->mnHeight) - aHeight = o3tl::convert(pOldIconSetInfo->mnHeight, o3tl::Length::twip, o3tl::Length::mm100); + { + if (bWorksInPixels) + { + aHeight = rRenderContext.LogicToPixel(Size(0, pOldIconSetInfo->mnHeight), MapMode(MapUnit::MapTwip)).Height(); + if (comphelper::LibreOfficeKit::isActive()) + { + aHeight *= comphelper::LibreOfficeKit::getDPIScale(); + } + } + else + aHeight = o3tl::convert(pOldIconSetInfo->mnHeight, o3tl::Length::twip, o3tl::Length::mm100); + } Size aSize = rIcon.GetSizePixel(); double fRatio = aSize.Width() / aSize.Height(); @@ -932,7 +943,7 @@ void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldI void drawCells(vcl::RenderContext& rRenderContext, std::optional<Color> const & pColor, const SvxBrushItem* pBackground, std::optional<Color>& pOldColor, const SvxBrushItem*& pOldBackground, tools::Rectangle& rRect, tools::Long nPosX, tools::Long nLayoutSign, tools::Long nOneX, tools::Long nOneY, const ScDataBarInfo* pDataBarInfo, const ScDataBarInfo*& pOldDataBarInfo, const ScIconSetInfo* pIconSetInfo, const ScIconSetInfo*& pOldIconSetInfo, - sc::IconSetBitmapMap & rIconSetBitmapMap) + sc::IconSetBitmapMap & rIconSetBitmapMap, bool bWorksInPixels) { tools::Long nSignedOneX = nOneX * nLayoutSign; // need to paint if old color scale has been used and now @@ -949,7 +960,7 @@ void drawCells(vcl::RenderContext& rRenderContext, std::optional<Color> const & if( pOldDataBarInfo ) drawDataBars(rRenderContext, pOldDataBarInfo, rRect, nOneX, nOneY); if( pOldIconSetInfo ) - drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap); + drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap, bWorksInPixels); rRect.SetLeft( nPosX - nSignedOneX ); } @@ -969,7 +980,7 @@ void drawCells(vcl::RenderContext& rRenderContext, std::optional<Color> const & if( pOldDataBarInfo ) drawDataBars(rRenderContext, pOldDataBarInfo, rRect, nOneX, nOneY); if( pOldIconSetInfo ) - drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap); + drawIconSets(rRenderContext, pOldIconSetInfo, rRect, nOneX, nOneY, rIconSetBitmapMap, bWorksInPixels); rRect.SetLeft( nPosX - nSignedOneX ); } @@ -1132,7 +1143,7 @@ void ScOutputData::DrawBackground(vcl::RenderContext& rRenderContext) if (bWorksInPixels) nPosXLogic = rRenderContext.PixelToLogic(Point(nPosX, 0)).X(); - drawCells(rRenderContext, pColor, pBackground, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, pDataBarInfo, pOldDataBarInfo, pIconSetInfo, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap()); + drawCells(rRenderContext, pColor, pBackground, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, pDataBarInfo, pOldDataBarInfo, pIconSetInfo, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap(), bWorksInPixels); // extend for all merged cells nMergedCols = 1; @@ -1156,7 +1167,7 @@ void ScOutputData::DrawBackground(vcl::RenderContext& rRenderContext) if (bWorksInPixels) nPosXLogic = rRenderContext.PixelToLogic(Point(nPosX, 0)).X(); - drawCells(rRenderContext, std::optional<Color>(), nullptr, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, nullptr, pOldDataBarInfo, nullptr, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap()); + drawCells(rRenderContext, std::optional<Color>(), nullptr, pOldColor, pOldBackground, aRect, nPosXLogic, nLayoutSign, nOneXLogic, nOneYLogic, nullptr, pOldDataBarInfo, nullptr, pOldIconSetInfo, mpDoc->GetIconSetBitmapMap(), bWorksInPixels); nArrY += nSkip; } |