summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2022-01-10 14:43:38 +0900
committerAndras Timar <andras.timar@collabora.com>2022-01-11 13:38:34 +0100
commitbc7f7ebaccc552925de215cb581a03256766e515 (patch)
tree2e17856d5ea2066fc90edfa8c05271111c853195
parent204409386483cfb369e8fe2ed79b6560a1a52d8f (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: If7293d95589f52d46f24bc7254f1eeb6f50729b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128199 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--sc/source/ui/view/output.cxx25
1 files changed, 18 insertions, 7 deletions
diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx
index 59beff1a9c83..7dd94d1b393c 100644
--- a/sc/source/ui/view/output.cxx
+++ b/sc/source/ui/view/output.cxx
@@ -906,7 +906,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;
@@ -915,7 +915,18 @@ void drawIconSets(vcl::RenderContext& rRenderContext, const ScIconSetInfo* pOldI
tools::Long aHeight = 300;
if (pOldIconSetInfo->mnHeight)
- aHeight = convertTwipToMm100(pOldIconSetInfo->mnHeight);
+ {
+ if (bWorksInPixels)
+ {
+ aHeight = rRenderContext.LogicToPixel(Size(0, pOldIconSetInfo->mnHeight), MapMode(MapUnit::MapTwip)).Height();
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ aHeight *= comphelper::LibreOfficeKit::getDPIScale();
+ }
+ }
+ else
+ aHeight = convertTwipToMm100(pOldIconSetInfo->mnHeight);
+ }
Size aSize = rIcon.GetSizePixel();
double fRatio = aSize.Width() / aSize.Height();
@@ -930,7 +941,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
@@ -947,7 +958,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 );
}
@@ -967,7 +978,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 );
}
@@ -1130,7 +1141,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;
@@ -1154,7 +1165,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;
}