sc/source/ui/cctrl/dpcontrol.cxx |   46 ++++++++++++++++-----------------------
 sc/source/ui/inc/dpcontrol.hxx   |    7 ++---
 sc/source/ui/view/gridwin2.cxx   |    8 +++---
 sc/source/ui/view/gridwin4.cxx   |    2 -
 4 files changed, 28 insertions(+), 35 deletions(-)

New commits:
commit 7eb5825e19d0de97c31819e655b2f9636f0e0e04
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu May 22 12:03:38 2025 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Thu May 22 17:29:21 2025 +0200

    ScDPFieldButton: drop default arguments and pass them by ref
    
    Change-Id: I5de43aca9ce73153bb8448fa4ae90e7ed7261255
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185654
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx
index 3815aeb8cf69..f6979b1d5b1e 100644
--- a/sc/source/ui/cctrl/dpcontrol.cxx
+++ b/sc/source/ui/cctrl/dpcontrol.cxx
@@ -28,10 +28,11 @@
 #include <patattr.hxx>
 #include <svtools/colorcfg.hxx>
 
-ScDPFieldButton::ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* 
pStyle, const Fraction* pZoomY, ScDocument* pDoc) :
-    mpDoc(pDoc),
+ScDPFieldButton::ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings& 
rStyle, const Fraction& rZoomY, ScDocument& rDoc):
+    maZoomY(rZoomY),
+    mrDoc(rDoc),
     mpOutDev(pOutDev),
-    mpStyle(pStyle),
+    mrStyle(rStyle),
     mnToggleIndent(0),
     mbBaseButton(true),
     mbPopupButton(false),
@@ -42,10 +43,6 @@ ScDPFieldButton::ScDPFieldButton(OutputDevice* pOutDev, 
const StyleSettings* pSt
     mbPopupPressed(false),
     mbPopupLeft(false)
 {
-    if (pZoomY)
-        maZoomY = *pZoomY;
-    else
-        maZoomY = Fraction(1, 1);
 }
 
 ScDPFieldButton::~ScDPFieldButton()
@@ -116,16 +113,16 @@ void ScDPFieldButton::draw()
     {
         // Background
         tools::Rectangle aRect(maPos, maSize);
-        mpOutDev->SetLineColor(mpStyle->GetFaceColor());
-        mpOutDev->SetFillColor(mpStyle->GetFaceColor());
+        mpOutDev->SetLineColor(mrStyle.GetFaceColor());
+        mpOutDev->SetFillColor(mrStyle.GetFaceColor());
         mpOutDev->DrawRect(aRect);
 
         // Border lines
-        mpOutDev->SetLineColor(mpStyle->GetLightColor());
+        mpOutDev->SetLineColor(mrStyle.GetLightColor());
         mpOutDev->DrawLine(maPos, Point(maPos.X(), 
maPos.Y()+maSize.Height()-1));
         mpOutDev->DrawLine(maPos, Point(maPos.X()+maSize.Width()-1, 
maPos.Y()));
 
-        mpOutDev->SetLineColor(mpStyle->GetShadowColor());
+        mpOutDev->SetLineColor(mrStyle.GetShadowColor());
         mpOutDev->DrawLine(Point(maPos.X(), maPos.Y()+maSize.Height()-1),
                            Point(maPos.X()+maSize.Width()-1, 
maPos.Y()+maSize.Height()-1));
         mpOutDev->DrawLine(Point(maPos.X()+maSize.Width()-1, maPos.Y()),
@@ -133,16 +130,13 @@ void ScDPFieldButton::draw()
 
         // Field name.
         // Get the font and size the same way as in scenario selection 
(lcl_DrawOneFrame in gridwin4.cxx)
-        vcl::Font aTextFont( mpStyle->GetAppFont() );
-        if ( mpDoc )
-        {
-            //  use ScPatternAttr::GetFont only for font size
-            vcl::Font aAttrFont;
-            
mpDoc->getCellAttributeHelper().getDefaultCellAttribute().fillFontOnly(aAttrFont,
 mpOutDev, &maZoomY);
-            aTextFont.SetFontSize(aAttrFont.GetFontSize());
-        }
+        vcl::Font aTextFont( mrStyle.GetAppFont() );
+        //  use ScPatternAttr::GetFont only for font size
+        vcl::Font aAttrFont;
+        
mrDoc.getCellAttributeHelper().getDefaultCellAttribute().fillFontOnly(aAttrFont,
 mpOutDev, &maZoomY);
+        aTextFont.SetFontSize(aAttrFont.GetFontSize());
         mpOutDev->SetFont(aTextFont);
-        mpOutDev->SetTextColor(mpStyle->GetButtonTextColor());
+        mpOutDev->SetTextColor(mrStyle.GetButtonTextColor());
 
         Point aTextPos = maPos;
         tools::Long nTHeight = mpOutDev->GetTextHeight();
@@ -229,23 +223,23 @@ void ScDPFieldButton::drawPopupButton()
     float fScaleFactor = mpOutDev->GetDPIScaleFactor();
 
     // Button background color
-    Color aFaceColor = mpStyle->GetFaceColor();
+    Color aFaceColor = mrStyle.GetFaceColor();
     Color aBackgroundColor
-        = mbHasHiddenMember ? mpStyle->GetHighlightColor()
-                            : mbPopupPressed ? mpStyle->GetShadowColor() : 
aFaceColor;
+        = mbHasHiddenMember ? mrStyle.GetHighlightColor()
+                            : mbPopupPressed ? mrStyle.GetShadowColor() : 
aFaceColor;
 
     // Button line color
-    mpOutDev->SetLineColor(mpStyle->GetLabelTextColor());
+    mpOutDev->SetLineColor(mrStyle.GetLabelTextColor());
     // If the document background is light and face color is dark, use 
ShadowColor instead
     Color aDocColor = 
svtools::ColorConfig().GetColorValue(svtools::DOCCOLOR).nColor;
     if (aDocColor.IsBright() && aFaceColor.IsDark())
-        mpOutDev->SetLineColor(mpStyle->GetShadowColor());
+        mpOutDev->SetLineColor(mrStyle.GetShadowColor());
 
     mpOutDev->SetFillColor(aBackgroundColor);
     mpOutDev->DrawRect(tools::Rectangle(aPos, aSize));
 
     // the arrowhead
-    Color aArrowColor = mbHasHiddenMember ? mpStyle->GetHighlightTextColor() : 
mpStyle->GetButtonTextColor();
+    Color aArrowColor = mbHasHiddenMember ? mrStyle.GetHighlightTextColor() : 
mrStyle.GetButtonTextColor();
     // FIXME: HACK: The following DrawPolygon draws twice in lok rtl mode for 
some reason.
     // => one at the correct location with fill (possibly no outline)
     // => and the other at an x offset with outline and without fill
diff --git a/sc/source/ui/inc/dpcontrol.hxx b/sc/source/ui/inc/dpcontrol.hxx
index a447331cd7c3..dbc071f476c9 100644
--- a/sc/source/ui/inc/dpcontrol.hxx
+++ b/sc/source/ui/inc/dpcontrol.hxx
@@ -35,8 +35,7 @@ class ScDocument;
 class ScDPFieldButton
 {
 public:
-    ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings* pStyle, const 
Fraction* pZoomY = nullptr,
-                    ScDocument* pDoc = nullptr);
+    ScDPFieldButton(OutputDevice* pOutDev, const StyleSettings& rStyle, const 
Fraction& rZoomY, ScDocument& rDoc);
     ~ScDPFieldButton();
 
     void setText(const OUString& rText);
@@ -62,9 +61,9 @@ private:
     Size                    maSize;
     OUString         maText;
     Fraction                maZoomY;
-    ScDocument*             mpDoc;
+    ScDocument&             mrDoc;
     VclPtr<OutputDevice>    mpOutDev;
-    const StyleSettings*    mpStyle;
+    const StyleSettings&    mrStyle;
     sal_Int32               mnToggleIndent;
     bool                    mbBaseButton;
     bool                    mbPopupButton;
diff --git a/sc/source/ui/view/gridwin2.cxx b/sc/source/ui/view/gridwin2.cxx
index 21046171acbd..8fbda3734e8e 100644
--- a/sc/source/ui/view/gridwin2.cxx
+++ b/sc/source/ui/view/gridwin2.cxx
@@ -123,7 +123,7 @@ bool ScGridWindow::DoAutoFilterButton( SCCOL nCol, SCROW 
nRow, const MouseEvent&
     Size aScrSize(nSizeX-1, nSizeY-1);
 
     // Check if the mouse cursor is clicking on the popup arrow box.
-    mpFilterButton.reset(new ScDPFieldButton(GetOutDev(), 
&GetSettings().GetStyleSettings(), &mrViewData.GetZoomY(), &rDoc));
+    mpFilterButton.reset(new ScDPFieldButton(GetOutDev(), 
GetSettings().GetStyleSettings(), mrViewData.GetZoomY(), rDoc));
     mpFilterButton->setBoundingBox(aScrPos, aScrSize, bLayoutRTL && 
!bLOKActive);
     mpFilterButton->setPopupLeft(bLayoutRTL && bLOKActive ? false : 
bLayoutRTL);   // #i114944# AutoFilter button is left-aligned in RTL
     Point aPopupPos;
@@ -262,7 +262,7 @@ void ScGridWindow::DoPushPivotToggle( SCCOL nCol, SCROW 
nRow, const MouseEvent&
         nIndent = pIndentItem->GetValue();
 
     // Check if the mouse cursor is clicking on the toggle +/- box.
-    ScDPFieldButton aBtn(GetOutDev(), &GetSettings().GetStyleSettings(), 
&GetMapMode().GetScaleY());
+    ScDPFieldButton aBtn(GetOutDev(), GetSettings().GetStyleSettings(), 
GetMapMode().GetScaleY(), mrViewData.GetDocument());
     aBtn.setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
     aBtn.setDrawToggleButton(true, true, nIndent);
     Point aPopupPos;
@@ -407,7 +407,7 @@ bool ScGridWindow::DPTestFieldPopupArrow(
     Size aScrSize(nSizeX-1, nSizeY-1);
 
     // Check if the mouse cursor is clicking on the popup arrow box.
-    ScDPFieldButton aBtn(GetOutDev(), &GetSettings().GetStyleSettings(), 
&GetMapMode().GetScaleY());
+    ScDPFieldButton aBtn(GetOutDev(), GetSettings().GetStyleSettings(), 
GetMapMode().GetScaleY(), mrViewData.GetDocument());
     aBtn.setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
     aBtn.setPopupLeft(false);   // DataPilot popup is always right-aligned for 
now
     Point aPopupPos;
@@ -437,7 +437,7 @@ bool ScGridWindow::DPTestMultiFieldPopupArrow(
     Size aScrSize(nSizeX - 1, nSizeY - 1);
 
     // Check if the mouse cursor is clicking on the popup arrow box.
-    ScDPFieldButton aBtn(GetOutDev(), &GetSettings().GetStyleSettings(), 
&GetMapMode().GetScaleY());
+    ScDPFieldButton aBtn(GetOutDev(), GetSettings().GetStyleSettings(), 
GetMapMode().GetScaleY(), mrViewData.GetDocument());
     aBtn.setBoundingBox(aScrPos, aScrSize, bLayoutRTL);
     aBtn.setPopupLeft(false);   // DataPilot popup is always right-aligned for 
now
     aBtn.setDrawPopupButtonMulti(true);
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 13ee7636d703..335944e820f0 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -2042,7 +2042,7 @@ void ScGridWindow::DrawButtons(SCCOL nX1, SCCOL nX2, 
const ScTableInfo& rTabInfo
     aComboButton.SetOutputDevice( pContentDev );
 
     ScDocument& rDoc = mrViewData.GetDocument();
-    ScDPFieldButton aCellBtn(pContentDev, &GetSettings().GetStyleSettings(), 
&mrViewData.GetZoomY(), &rDoc);
+    ScDPFieldButton aCellBtn(pContentDev, GetSettings().GetStyleSettings(), 
mrViewData.GetZoomY(), rDoc);
 
     SCCOL nCol;
     SCROW nRow;

Reply via email to