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;