From 862fd2fa19b64972247bde9b171ec828a30e1676 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 8 Mar 2021 17:18:06 +0000 Subject: defer getting toplevel for color picker until we need it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I60f4ded47f7d80b397647ea3344e83a5dfd1b11e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112183 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- .../controller/dialogs/tp_3D_SceneIllumination.cxx | 4 +-- cui/source/options/optcolor.cxx | 2 +- cui/source/tabpages/border.cxx | 6 ++-- cui/source/tabpages/chardlg.cxx | 9 ++++-- cui/source/tabpages/numpages.cxx | 3 +- cui/source/tabpages/tpgradnt.cxx | 6 ++-- cui/source/tabpages/tphatch.cxx | 6 ++-- cui/source/tabpages/tpline.cxx | 3 +- cui/source/tabpages/tppattern.cxx | 6 ++-- cui/source/tabpages/tpshadow.cxx | 3 +- extensions/source/propctrlr/propcontroller.cxx | 4 +-- include/svx/colorbox.hxx | 7 +++-- include/svx/colorwindow.hxx | 13 +++++---- include/svx/tbcontrl.hxx | 2 ++ reportdesign/source/ui/dlg/Condition.cxx | 4 +-- sc/source/ui/condformat/colorformat.cxx | 6 ++-- sc/source/ui/condformat/condformatdlgentry.cxx | 10 +++---- sc/source/ui/dbgui/scendlg.cxx | 2 +- sc/source/ui/optdlg/opredlin.cxx | 12 +++++--- sc/source/ui/optdlg/tpview.cxx | 3 +- sd/source/ui/animations/CustomAnimationDialog.cxx | 4 +-- sd/source/ui/dlg/BulletAndPositionDlg.cxx | 3 +- sd/source/ui/dlg/copydlg.cxx | 4 +-- sd/source/ui/sidebar/SlideBackground.cxx | 6 ++-- svx/source/dialog/_bmpmask.cxx | 10 +++---- svx/source/dialog/fontwork.cxx | 2 +- svx/source/engine3d/float3d.cxx | 24 ++++++++-------- svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 4 +-- svx/source/sidebar/effect/EffectPropertyPanel.cxx | 3 +- svx/source/sidebar/shadow/ShadowPropertyPanel.cxx | 2 +- svx/source/tbxctrls/tbcontrl.cxx | 32 +++++++++++----------- sw/source/ui/config/optpage.cxx | 12 +++++--- sw/source/ui/frmdlg/column.cxx | 3 +- sw/source/ui/misc/pgfnote.cxx | 3 +- sw/source/ui/misc/pggrid.cxx | 3 +- sw/source/uibase/dialog/watermarkdialog.cxx | 2 +- sw/source/uibase/sidebar/PageStylesPanel.cxx | 4 +-- 37 files changed, 133 insertions(+), 99 deletions(-) diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx index 16fd2d2c9f56..c4b28162d08c 100644 --- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx +++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx @@ -201,9 +201,9 @@ ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage(weld::Contain , m_xBtn_Light6(new LightButton(m_xBuilder->weld_toggle_button("BTN_LIGHT_6"))) , m_xBtn_Light7(new LightButton(m_xBuilder->weld_toggle_button("BTN_LIGHT_7"))) , m_xBtn_Light8(new LightButton(m_xBuilder->weld_toggle_button("BTN_LIGHT_8"))) - , m_xLB_LightSource(new ColorListBox(m_xBuilder->weld_menu_button("LB_LIGHTSOURCE"), pTopLevel)) + , m_xLB_LightSource(new ColorListBox(m_xBuilder->weld_menu_button("LB_LIGHTSOURCE"), [this]{ return m_pTopLevel; })) , m_xBtn_LightSource_Color(m_xBuilder->weld_button("BTN_LIGHTSOURCE_COLOR")) - , m_xLB_AmbientLight(new ColorListBox(m_xBuilder->weld_menu_button("LB_AMBIENTLIGHT"), pTopLevel)) + , m_xLB_AmbientLight(new ColorListBox(m_xBuilder->weld_menu_button("LB_AMBIENTLIGHT"), [this]{ return m_pTopLevel; })) , m_xBtn_AmbientLight_Color(m_xBuilder->weld_button("BTN_AMBIENT_COLOR")) , m_xHoriScale(m_xBuilder->weld_scale("hori")) , m_xVertScale(m_xBuilder->weld_scale("vert")) diff --git a/cui/source/options/optcolor.cxx b/cui/source/options/optcolor.cxx index c17e9a1ce5c0..8567189e6cc4 100644 --- a/cui/source/options/optcolor.cxx +++ b/cui/source/options/optcolor.cxx @@ -281,7 +281,7 @@ ColorConfigWindow_Impl::Entry::Entry(weld::Window* pTopLevel, weld::Builder& rBu const char* pTextWidget, const char* pColorWidget, const Color& rColor, tools::Long nCheckBoxLabelOffset, bool bCheckBox, bool bShow) - : m_xColorList(new ColorListBox(rBuilder.weld_menu_button(pColorWidget), pTopLevel)) + : m_xColorList(new ColorListBox(rBuilder.weld_menu_button(pColorWidget), [pTopLevel]{ return pTopLevel; })) , m_aDefaultColor(rColor) { if (bCheckBox) diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx index cb7429928d44..8e6a7fa8f3c2 100644 --- a/cui/source/tabpages/border.cxx +++ b/cui/source/tabpages/border.cxx @@ -292,7 +292,8 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle , m_xUserDefFT(m_xBuilder->weld_label("userdefft")) , m_xFrameSelWin(new weld::CustomWeld(*m_xBuilder, "framesel", m_aFrameSel)) , m_xLbLineStyle(new SvtLineListBox(m_xBuilder->weld_menu_button("linestylelb"))) - , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), pController->getDialog())) + , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xLineWidthMF(m_xBuilder->weld_metric_spin_button("linewidthmf", FieldUnit::POINT)) , m_xSpacingFrame(m_xBuilder->weld_container("spacing")) , m_xLeftFT(m_xBuilder->weld_label("leftft")) @@ -310,7 +311,8 @@ SvxBorderTabPage::SvxBorderTabPage(weld::Container* pPage, weld::DialogControlle , m_xFtShadowSize(m_xBuilder->weld_label("distanceft")) , m_xEdShadowSize(m_xBuilder->weld_metric_spin_button("distancemf", FieldUnit::MM)) , m_xFtShadowColor(m_xBuilder->weld_label("shadowcolorft")) - , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("shadowcolorlb"), pController->getDialog())) + , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("shadowcolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xPropertiesFrame(m_xBuilder->weld_container("properties")) , m_xMergeWithNextCB(m_xBuilder->weld_check_button("mergewithnext")) , m_xMergeAdjacentBordersCB(m_xBuilder->weld_check_button("mergeadjacent")) diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx index 6a35b45ba46f..836739d44f86 100644 --- a/cui/source/tabpages/chardlg.cxx +++ b/cui/source/tabpages/chardlg.cxx @@ -1308,7 +1308,8 @@ SvxCharEffectsPage::SvxCharEffectsPage(weld::Container* pPage, weld::DialogContr , m_bNewFontColor(false) , m_bEnableNoneFontColor(false) , m_xFontColorFT(m_xBuilder->weld_label("fontcolorft")) - , m_xFontColorLB(new ColorListBox(m_xBuilder->weld_menu_button("fontcolorlb"), pController->getDialog())) + , m_xFontColorLB(new ColorListBox(m_xBuilder->weld_menu_button("fontcolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xFontTransparencyFT(m_xBuilder->weld_label("fonttransparencyft")) , m_xFontTransparencyMtr( m_xBuilder->weld_metric_spin_button("fonttransparencymtr", FieldUnit::PERCENT)) @@ -1321,11 +1322,13 @@ SvxCharEffectsPage::SvxCharEffectsPage(weld::Container* pPage, weld::DialogContr , m_xHiddenBtn(m_xBuilder->weld_check_button("hiddencb")) , m_xOverlineLB(m_xBuilder->weld_combo_box("overlinelb")) , m_xOverlineColorFT(m_xBuilder->weld_label("overlinecolorft")) - , m_xOverlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("overlinecolorlb"), pController->getDialog())) + , m_xOverlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("overlinecolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xStrikeoutLB(m_xBuilder->weld_combo_box("strikeoutlb")) , m_xUnderlineLB(m_xBuilder->weld_combo_box("underlinelb")) , m_xUnderlineColorFT(m_xBuilder->weld_label("underlinecolorft")) - , m_xUnderlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("underlinecolorlb"), pController->getDialog())) + , m_xUnderlineColorLB(new ColorListBox(m_xBuilder->weld_menu_button("underlinecolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xIndividualWordsBtn(m_xBuilder->weld_check_button("individualwordscb")) , m_xEmphasisFT(m_xBuilder->weld_label("emphasisft")) , m_xEmphasisLB(m_xBuilder->weld_combo_box("emphasislb")) diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx index 48f1a246b0ce..f93ebc8ed497 100644 --- a/cui/source/tabpages/numpages.cxx +++ b/cui/source/tabpages/numpages.cxx @@ -1032,7 +1032,8 @@ SvxNumOptionsTabPage::SvxNumOptionsTabPage(weld::Container* pPage, weld::DialogC , m_xCharFmtFT(m_xBuilder->weld_label("charstyleft")) , m_xCharFmtLB(m_xBuilder->weld_combo_box("charstyle")) , m_xBulColorFT(m_xBuilder->weld_label("colorft")) - , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), pController->getDialog())) + , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), + [this]{ return GetDialogController()->getDialog(); })) , m_xBulRelSizeFT(m_xBuilder->weld_label("relsizeft")) , m_xBulRelSizeMF(m_xBuilder->weld_metric_spin_button("relsize", FieldUnit::PERCENT)) , m_xAllLevelFT(m_xBuilder->weld_label("sublevelsft")) diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx index 573659a471aa..51f6ecca35db 100644 --- a/cui/source/tabpages/tpgradnt.cxx +++ b/cui/source/tabpages/tpgradnt.cxx @@ -56,9 +56,11 @@ SvxGradientTabPage::SvxGradientTabPage(weld::Container* pPage, weld::DialogContr , m_xSliderAngle(m_xBuilder->weld_scale("angleslider")) , m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FieldUnit::PERCENT)) , m_xSliderBorder(m_xBuilder->weld_scale("borderslider")) - , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), pController->getDialog())) + , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xMtrColorFrom(m_xBuilder->weld_metric_spin_button("colorfrommtr", FieldUnit::PERCENT)) - , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"), pController->getDialog())) + , m_xLbColorTo(new ColorListBox(m_xBuilder->weld_menu_button("colortolb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xMtrColorTo(m_xBuilder->weld_metric_spin_button("colortomtr", FieldUnit::PERCENT)) , m_xGradientLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin", true))) , m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr")) diff --git a/cui/source/tabpages/tphatch.cxx b/cui/source/tabpages/tphatch.cxx index ec391dba935d..57d34031fe00 100644 --- a/cui/source/tabpages/tphatch.cxx +++ b/cui/source/tabpages/tphatch.cxx @@ -54,9 +54,11 @@ SvxHatchTabPage::SvxHatchTabPage(weld::Container* pPage, weld::DialogController* , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FieldUnit::DEGREE)) , m_xSliderAngle(m_xBuilder->weld_scale("angleslider")) , m_xLbLineType(m_xBuilder->weld_combo_box("linetypelb")) - , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), pController->getDialog())) + , m_xLbLineColor(new ColorListBox(m_xBuilder->weld_menu_button("linecolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xCbBackgroundColor(m_xBuilder->weld_check_button("backgroundcolor")) - , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"), pController->getDialog())) + , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("backgroundcolorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xHatchLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("hatchpresetlistwin", true))) , m_xBtnAdd(m_xBuilder->weld_button("add")) , m_xBtnModify(m_xBuilder->weld_button("modify")) diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx index 2a9fc74cc429..796eda3c51f2 100644 --- a/cui/source/tabpages/tpline.cxx +++ b/cui/source/tabpages/tpline.cxx @@ -102,7 +102,8 @@ SvxLineTabPage::SvxLineTabPage(weld::Container* pPage, weld::DialogController* p , m_pPosLineEndLb(nullptr) , m_xBoxColor(m_xBuilder->weld_widget("boxCOLOR")) , m_xLbLineStyle(new SvxLineLB(m_xBuilder->weld_combo_box("LB_LINE_STYLE"))) - , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), pController->getDialog())) + , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), + [this]{ return GetDialogController()->getDialog(); })) , m_xBoxWidth(m_xBuilder->weld_widget("boxWIDTH")) , m_xMtrLineWidth(m_xBuilder->weld_metric_spin_button("MTR_FLD_LINE_WIDTH", FieldUnit::CM)) , m_xBoxTransparency(m_xBuilder->weld_widget("boxTRANSPARENCY")) diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx index 9dfa12799c93..598ffb5304be 100644 --- a/cui/source/tabpages/tppattern.cxx +++ b/cui/source/tabpages/tppattern.cxx @@ -77,8 +77,10 @@ SvxPatternTabPage::SvxPatternTabPage(weld::Container* pPage, weld::DialogControl , m_aXFillAttr(rInAttrs.GetPool()) , m_rXFSet(m_aXFillAttr.GetItemSet()) , m_xCtlPixel(new SvxPixelCtl(this)) - , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), pController->getDialog())) - , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"), pController->getDialog())) + , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_COLOR"), + [this]{ return GetDialogController()->getDialog(); })) + , m_xLbBackgroundColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_BACKGROUND_COLOR"), + [this]{ return GetDialogController()->getDialog(); })) , m_xPatternLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("patternpresetlistwin", true))) , m_xBtnAdd(m_xBuilder->weld_button("BTN_ADD")) , m_xBtnModify(m_xBuilder->weld_button("BTN_MODIFY")) diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx index a02d7d6b92b8..64da825d685f 100644 --- a/cui/source/tabpages/tpshadow.cxx +++ b/cui/source/tabpages/tpshadow.cxx @@ -66,7 +66,8 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle , m_xTsbShowShadow(m_xBuilder->weld_check_button("TSB_SHOW_SHADOW")) , m_xGridShadow(m_xBuilder->weld_widget("gridSHADOW")) , m_xMtrDistance(m_xBuilder->weld_metric_spin_button("MTR_FLD_DISTANCE", FieldUnit::CM)) - , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"), pController->getDialog())) + , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"), + [this]{ return GetDialogController()->getDialog(); })) , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button("MTR_SHADOW_TRANSPARENT", FieldUnit::PERCENT)) , m_xLbShadowBlurMetric(m_xBuilder->weld_metric_spin_button("LB_SHADOW_BLUR", FieldUnit::POINT)) , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, "CTL_POSITION", m_aCtlPosition)) diff --git a/extensions/source/propctrlr/propcontroller.cxx b/extensions/source/propctrlr/propcontroller.cxx index 4ed339fb2d42..1835501e5525 100644 --- a/extensions/source/propctrlr/propcontroller.cxx +++ b/extensions/source/propctrlr/propcontroller.cxx @@ -774,10 +774,10 @@ namespace pcr case PropertyControlType::ColorListBox: { - weld::Window* pTopLevel = PropertyHandlerHelper::getDialogParentFrame(m_xContext); + auto lambda = [this]{ return PropertyHandlerHelper::getDialogParentFrame(m_xContext); }; std::unique_ptr xBuilder(PropertyHandlerHelper::makeBuilder("modules/spropctrlr/ui/colorlistbox.ui", m_xContext)); auto pMenuButton = xBuilder->weld_menu_button("colorlistbox"); - rtl::Reference pControl = new OColorControl(std::make_unique(std::move(pMenuButton), pTopLevel), std::move(xBuilder), bCreateReadOnly); + rtl::Reference pControl = new OColorControl(std::make_unique(std::move(pMenuButton), lambda), std::move(xBuilder), bCreateReadOnly); pControl->SetModifyHandler(); xControl = pControl; break; diff --git a/include/svx/colorbox.hxx b/include/svx/colorbox.hxx index a8d5f368daac..c303a312820d 100644 --- a/include/svx/colorbox.hxx +++ b/include/svx/colorbox.hxx @@ -32,7 +32,6 @@ private: friend class ListBoxColorWrapper; std::unique_ptr m_xColorWindow; std::unique_ptr m_xButton; - weld::Window* m_pTopLevel; Link m_aSelectedLink; ListBoxColorWrapper m_aColorWrapper; Color m_aAutoDisplayColor; @@ -41,6 +40,7 @@ private: sal_uInt16 m_nSlotId; bool m_bShowNoneButton; std::shared_ptr m_xPaletteManager; + TopLevelParentFunction m_aTopLevelParentFunction; ColorStatus m_aColorStatus; void Selected(const NamedColor& rNamedColor); @@ -51,8 +51,9 @@ private: DECL_LINK(ToggleHdl, weld::ToggleButton&, void); public: - // pTopLevelWindow will be used as parent for any color picker dialog created - ColorListBox(std::unique_ptr pControl, weld::Window* pTopLevelWindow); + // rTopLevelParentFunction will be used to get parent for any color picker dialog created + ColorListBox(std::unique_ptr pControl, + TopLevelParentFunction const& rTopLevelParentFunction); ~ColorListBox(); void SetSelectHdl(const Link& rLink) { m_aSelectedLink = rLink; } diff --git a/include/svx/colorwindow.hxx b/include/svx/colorwindow.hxx index 136d7621c0e7..784f273e87a7 100644 --- a/include/svx/colorwindow.hxx +++ b/include/svx/colorwindow.hxx @@ -26,6 +26,8 @@ #include #include +typedef std::function TopLevelParentFunction; + namespace com::sun::star::frame { class XFrame; } class PaletteManager; @@ -81,11 +83,11 @@ class SVXCORE_DLLPUBLIC ColorWindow final : public WeldToolbarPopup private: const sal_uInt16 theSlotId; OUString maCommand; - weld::Window* mpParentWindow; MenuOrToolMenuButton maMenuButton; std::shared_ptr mxPaletteManager; - ColorStatus& mrColorStatus; - ColorSelectFunction maColorSelectFunction; + ColorStatus& mrColorStatus; + TopLevelParentFunction maTopLevelParentFunction; + ColorSelectFunction maColorSelectFunction; std::unique_ptr mxColorSet; std::unique_ptr mxRecentColorSet; @@ -113,8 +115,9 @@ public: std::shared_ptr const & rPaletteManager, ColorStatus& rColorStatus, sal_uInt16 nSlotId, - const css::uno::Reference< css::frame::XFrame >& rFrame, - weld::Window* pParentWindow, const MenuOrToolMenuButton &rMenuButton, + const css::uno::Reference& rFrame, + const MenuOrToolMenuButton &rMenuButton, + TopLevelParentFunction const& rTopLevelParentFunction, ColorSelectFunction const& rColorSelectFunction); virtual ~ColorWindow() override; void ShowNoneButton(); diff --git a/include/svx/tbcontrl.hxx b/include/svx/tbcontrl.hxx index 995bbb05a1cb..aa1f421a4b1b 100644 --- a/include/svx/tbcontrl.hxx +++ b/include/svx/tbcontrl.hxx @@ -213,6 +213,8 @@ class SVXCORE_DLLPUBLIC SvxColorToolBoxControl final : public cppu::ImplInherita ColorSelectFunction m_aColorSelectFunction; DECL_LINK(SelectedHdl, const NamedColor&, void); + weld::Window* GetParentFrame() const; + public: explicit SvxColorToolBoxControl( const css::uno::Reference& rContext ); virtual ~SvxColorToolBoxControl() override; diff --git a/reportdesign/source/ui/dlg/Condition.cxx b/reportdesign/source/ui/dlg/Condition.cxx index 1b51d1998ac5..c4a05704c177 100644 --- a/reportdesign/source/ui/dlg/Condition.cxx +++ b/reportdesign/source/ui/dlg/Condition.cxx @@ -157,8 +157,8 @@ void Condition::SetBackgroundDropdownClick() m_aColorStatus, SID_BACKGROUND_COLOR, nullptr, - m_pDialog, MenuOrToolMenuButton(m_xActions.get(), "background"), + [this]{ return m_pDialog; }, m_aBackColorWrapper)); m_xActions->set_item_popover("background", m_xBackColorFloat->getTopLevel()); @@ -172,8 +172,8 @@ void Condition::SetForegroundDropdownClick() m_aColorStatus, SID_ATTR_CHAR_COLOR2, nullptr, - m_pDialog, MenuOrToolMenuButton(m_xActions.get(), "foreground"), + [this]{ return m_pDialog; }, m_aForeColorWrapper)); m_xActions->set_item_popover("foreground", m_xForeColorFloat->getTopLevel()); diff --git a/sc/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx index c4d2a79effd2..e74507776e25 100644 --- a/sc/source/ui/condformat/colorformat.cxx +++ b/sc/source/ui/condformat/colorformat.cxx @@ -74,9 +74,9 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(weld::Window* pParent, const ScDataBa , maPos(rPos) , mxBtnOk(m_xBuilder->weld_button("ok")) , mxBtnCancel(m_xBuilder->weld_button("cancel")) - , mxLbPos(new ColorListBox(m_xBuilder->weld_menu_button("positive_colour"), pParent)) - , mxLbNeg(new ColorListBox(m_xBuilder->weld_menu_button("negative_colour"), pParent)) - , mxLbAxisCol(new ColorListBox(m_xBuilder->weld_menu_button("axis_colour"), pParent)) + , mxLbPos(new ColorListBox(m_xBuilder->weld_menu_button("positive_colour"), [this]{ return m_xDialog.get(); })) + , mxLbNeg(new ColorListBox(m_xBuilder->weld_menu_button("negative_colour"), [this]{ return m_xDialog.get(); })) + , mxLbAxisCol(new ColorListBox(m_xBuilder->weld_menu_button("axis_colour"), [this]{ return m_xDialog.get(); })) , mxLbFillType(m_xBuilder->weld_combo_box("fill_type")) , mxLbTypeMin(m_xBuilder->weld_combo_box("min")) , mxLbTypeMax(m_xBuilder->weld_combo_box("max")) diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx index d997a91fd429..9eb310528063 100644 --- a/sc/source/ui/condformat/condformatdlgentry.cxx +++ b/sc/source/ui/condformat/condformatdlgentry.cxx @@ -722,8 +722,8 @@ ScColorScale2FrmtEntry::ScColorScale2FrmtEntry(ScCondFormatList* pParent, ScDocu , mxLbEntryTypeMax(mxBuilder->weld_combo_box("colscalemax")) , mxEdMin(mxBuilder->weld_entry("edcolscalemin")) , mxEdMax(mxBuilder->weld_entry("edcolscalemax")) - , mxLbColMin(new ColorListBox(mxBuilder->weld_menu_button("lbcolmin"), pParent->GetFrameWeld())) - , mxLbColMax(new ColorListBox(mxBuilder->weld_menu_button("lbcolmax"), pParent->GetFrameWeld())) + , mxLbColMin(new ColorListBox(mxBuilder->weld_menu_button("lbcolmin"), [this]{ return mpParent->GetFrameWeld(); })) + , mxLbColMax(new ColorListBox(mxBuilder->weld_menu_button("lbcolmax"), [this]{ return mpParent->GetFrameWeld(); })) , mxFtMin(mxBuilder->weld_label("Label_minimum")) , mxFtMax(mxBuilder->weld_label("Label_maximum")) { @@ -859,9 +859,9 @@ ScColorScale3FrmtEntry::ScColorScale3FrmtEntry(ScCondFormatList* pParent, ScDocu , mxEdMin(mxBuilder->weld_entry("edcolscalemin")) , mxEdMiddle(mxBuilder->weld_entry("edcolscalemiddle")) , mxEdMax(mxBuilder->weld_entry("edcolscalemax")) - , mxLbColMin(new ColorListBox(mxBuilder->weld_menu_button("lbcolmin"), pParent->GetFrameWeld())) - , mxLbColMiddle(new ColorListBox(mxBuilder->weld_menu_button("lbcolmiddle"), pParent->GetFrameWeld())) - , mxLbColMax(new ColorListBox(mxBuilder->weld_menu_button("lbcolmax"), pParent->GetFrameWeld())) + , mxLbColMin(new ColorListBox(mxBuilder->weld_menu_button("lbcolmin"), [this]{ return mpParent->GetFrameWeld(); })) + , mxLbColMiddle(new ColorListBox(mxBuilder->weld_menu_button("lbcolmiddle"), [this]{ return mpParent->GetFrameWeld(); })) + , mxLbColMax(new ColorListBox(mxBuilder->weld_menu_button("lbcolmax"), [this]{ return mpParent->GetFrameWeld(); })) , mxFtMin(mxBuilder->weld_label("Label_minimum")) , mxFtMax(mxBuilder->weld_label("Label_maximum")) { diff --git a/sc/source/ui/dbgui/scendlg.cxx b/sc/source/ui/dbgui/scendlg.cxx index 42c27e558210..a1bc89825196 100644 --- a/sc/source/ui/dbgui/scendlg.cxx +++ b/sc/source/ui/dbgui/scendlg.cxx @@ -41,7 +41,7 @@ ScNewScenarioDlg::ScNewScenarioDlg(weld::Window* pParent, const OUString& rName, , m_xEdName(m_xBuilder->weld_entry("name")) , m_xEdComment(m_xBuilder->weld_text_view("comment")) , m_xCbShowFrame(m_xBuilder->weld_check_button("showframe")) - , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("bordercolor"), pParent)) + , m_xLbColor(new ColorListBox(m_xBuilder->weld_menu_button("bordercolor"), [this] { return m_xDialog.get(); })) , m_xCbTwoWay(m_xBuilder->weld_check_button("copyback")) , m_xCbCopyAll(m_xBuilder->weld_check_button("copysheet")) , m_xCbProtect(m_xBuilder->weld_check_button("preventchanges")) diff --git a/sc/source/ui/optdlg/opredlin.cxx b/sc/source/ui/optdlg/opredlin.cxx index 4d8f1a24c483..963ea1bb3e52 100644 --- a/sc/source/ui/optdlg/opredlin.cxx +++ b/sc/source/ui/optdlg/opredlin.cxx @@ -30,10 +30,14 @@ ScRedlineOptionsTabPage::ScRedlineOptionsTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet) : SfxTabPage(pPage, pController, "modules/scalc/ui/optchangespage.ui", "OptChangesPage", &rSet) - , m_xContentColorLB(new ColorListBox(m_xBuilder->weld_menu_button("changes"), pController->getDialog())) - , m_xRemoveColorLB(new ColorListBox(m_xBuilder->weld_menu_button("deletions"), pController->getDialog())) - , m_xInsertColorLB(new ColorListBox(m_xBuilder->weld_menu_button("entries"), pController->getDialog())) - , m_xMoveColorLB(new ColorListBox(m_xBuilder->weld_menu_button("insertions"), pController->getDialog())) + , m_xContentColorLB(new ColorListBox(m_xBuilder->weld_menu_button("changes"), + [this]{ return GetDialogController()->getDialog(); })) + , m_xRemoveColorLB(new ColorListBox(m_xBuilder->weld_menu_button("deletions"), + [this]{ return GetDialogController()->getDialog(); })) + , m_xInsertColorLB(new ColorListBox(m_xBuilder->weld_menu_button("entries"), + [this]{ return GetDialogController()->getDialog(); })) + , m_xMoveColorLB(new ColorListBox(m_xBuilder->weld_menu_button("insertions"), + [this]{ return GetDialogController()->getDialog(); })) { m_xContentColorLB->SetSlotId(SID_AUTHOR_COLOR); m_xRemoveColorLB->SetSlotId(SID_AUTHOR_COLOR); diff --git a/sc/source/ui/optdlg/tpview.cxx b/sc/source/ui/optdlg/tpview.cxx index bf1db08d8cb3..a5f56979e3cd 100644 --- a/sc/source/ui/optdlg/tpview.cxx +++ b/sc/source/ui/optdlg/tpview.cxx @@ -36,7 +36,8 @@ ScTpContentOptions::ScTpContentOptions(weld::Container* pPage, weld::DialogContr : SfxTabPage(pPage, pController, "modules/scalc/ui/tpviewpage.ui", "TpViewPage", &rArgSet) , m_xGridLB(m_xBuilder->weld_combo_box("grid")) , m_xColorFT(m_xBuilder->weld_label("color_label")) - , m_xColorLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), pController->getDialog())) + , m_xColorLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), + [this]{ return GetDialogController()->getDialog(); })) , m_xBreakCB(m_xBuilder->weld_check_button("break")) , m_xGuideLineCB(m_xBuilder->weld_check_button("guideline")) , m_xFormulaCB(m_xBuilder->weld_check_button("formula")) diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx index 16df53997094..b202ddbfc931 100644 --- a/sd/source/ui/animations/CustomAnimationDialog.cxx +++ b/sd/source/ui/animations/CustomAnimationDialog.cxx @@ -201,7 +201,7 @@ private: SdColorPropertyBox::SdColorPropertyBox(weld::Label* pLabel, weld::Container* pParent, weld::Window* pTopLevel, const Any& rValue, const Link& rModifyHdl) : SdPropertySubControl(pParent) , maModifyLink(rModifyHdl) - , mxControl(new ColorListBox(mxBuilder->weld_menu_button("color"), pTopLevel)) + , mxControl(new ColorListBox(mxBuilder->weld_menu_button("color"), [pTopLevel]{ return pTopLevel; })) { mxControl->SetSelectHdl(LINK(this, SdColorPropertyBox, OnSelect)); mxControl->set_help_id(HID_SD_CUSTOMANIMATIONPANE_COLORPROPERTYBOX); @@ -913,7 +913,7 @@ CustomAnimationEffectTabPage::CustomAnimationEffectTabPage(weld::Container* pPar , mxFTAfterEffect(mxBuilder->weld_label("aeffect_label")) , mxLBAfterEffect(mxBuilder->weld_combo_box("aeffect_list")) , mxFTDimColor(mxBuilder->weld_label("dim_color_label")) - , mxCLBDimColor(new ColorListBox(mxBuilder->weld_menu_button("dim_color_list"), pDialog)) + , mxCLBDimColor(new ColorListBox(mxBuilder->weld_menu_button("dim_color_list"), [pDialog]{ return pDialog; })) , mxFTTextAnim(mxBuilder->weld_label("text_animation_label")) , mxLBTextAnim(mxBuilder->weld_combo_box("text_animation_list")) , mxMFTextDelay(mxBuilder->weld_metric_spin_button("text_delay", FieldUnit::PERCENT)) diff --git a/sd/source/ui/dlg/BulletAndPositionDlg.cxx b/sd/source/ui/dlg/BulletAndPositionDlg.cxx index b5a41054b3b1..9523e711a911 100644 --- a/sd/source/ui/dlg/BulletAndPositionDlg.cxx +++ b/sd/source/ui/dlg/BulletAndPositionDlg.cxx @@ -95,7 +95,8 @@ SvxBulletAndPositionDlg::SvxBulletAndPositionDlg(weld::Window* pWindow, const Sf , m_xSuffixED(m_xBuilder->weld_entry("suffix")) , m_xBeforeAfter(m_xBuilder->weld_frame("beforeafter")) , m_xBulColorFT(m_xBuilder->weld_label("colorft")) - , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), pWindow)) + , m_xBulColLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), + [this] { return m_xDialog.get(); })) , m_xBulRelSizeFT(m_xBuilder->weld_label("relsizeft")) , m_xBulRelSizeMF(m_xBuilder->weld_metric_spin_button("relsize", FieldUnit::PERCENT)) , m_xStartFT(m_xBuilder->weld_label("startatft")) diff --git a/sd/source/ui/dlg/copydlg.cxx b/sd/source/ui/dlg/copydlg.cxx index 89eb7992ea73..7dd290bdb9e7 100644 --- a/sd/source/ui/dlg/copydlg.cxx +++ b/sd/source/ui/dlg/copydlg.cxx @@ -51,8 +51,8 @@ CopyDlg::CopyDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs, ::sd::View* , m_xMtrFldHeight(m_xBuilder->weld_metric_spin_button("height", FieldUnit::CM)) , m_xFtEndColor(m_xBuilder->weld_label("endlabel")) , m_xBtnSetDefault(m_xBuilder->weld_button("default")) - , m_xLbStartColor(new ColorListBox(m_xBuilder->weld_menu_button("start"), pWindow)) - , m_xLbEndColor(new ColorListBox(m_xBuilder->weld_menu_button("end"), pWindow)) + , m_xLbStartColor(new ColorListBox(m_xBuilder->weld_menu_button("start"), [this]{ return m_xDialog.get(); } )) + , m_xLbEndColor(new ColorListBox(m_xBuilder->weld_menu_button("end"), [this]{ return m_xDialog.get(); } )) { m_xLbStartColor->SetSelectHdl( LINK( this, CopyDlg, SelectColorHdl ) ); m_xBtnSetViewData->connect_clicked( LINK( this, CopyDlg, SetViewData ) ); diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index f4896c00aecd..8a41a1adeac2 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -98,10 +98,10 @@ SlideBackground::SlideBackground( mxMasterSlide(m_xBuilder->weld_combo_box("masterslide")), mxBackgroundLabel(m_xBuilder->weld_label("label3")), mxFillStyle(m_xBuilder->weld_combo_box("fillstyle")), - mxFillLB(new ColorListBox(m_xBuilder->weld_menu_button("fillattr"), GetFrameWeld())), + mxFillLB(new ColorListBox(m_xBuilder->weld_menu_button("fillattr"), [this]{ return GetFrameWeld(); })), mxFillAttr(m_xBuilder->weld_combo_box("fillattr1")), - mxFillGrad1(new ColorListBox(m_xBuilder->weld_menu_button("fillattr2"), GetFrameWeld())), - mxFillGrad2(new ColorListBox(m_xBuilder->weld_menu_button("fillattr3"), GetFrameWeld())), + mxFillGrad1(new ColorListBox(m_xBuilder->weld_menu_button("fillattr2"), [this]{ return GetFrameWeld(); })), + mxFillGrad2(new ColorListBox(m_xBuilder->weld_menu_button("fillattr3"), [this]{ return GetFrameWeld(); })), mxInsertImage(m_xBuilder->weld_button("button2")), mxDspMasterBackground(m_xBuilder->weld_check_button("displaymasterbackground")), mxDspMasterObjects(m_xBuilder->weld_check_button("displaymasterobjects")), diff --git a/svx/source/dialog/_bmpmask.cxx b/svx/source/dialog/_bmpmask.cxx index 5fc50dfca233..2515a8850408 100644 --- a/svx/source/dialog/_bmpmask.cxx +++ b/svx/source/dialog/_bmpmask.cxx @@ -355,24 +355,24 @@ SvxBmpMask::SvxBmpMask(SfxBindings *pBindinx, SfxChildWindow *pCW, vcl::Window* , m_xQSet1(new MaskSet(this)) , m_xQSetWin1(new weld::CustomWeld(*m_xBuilder, "qset1", *m_xQSet1)) , m_xSp1(m_xBuilder->weld_metric_spin_button("tol1", FieldUnit::PERCENT)) - , m_xLbColor1(new ColorListBox(m_xBuilder->weld_menu_button("color1"), GetFrameWeld())) + , m_xLbColor1(new ColorListBox(m_xBuilder->weld_menu_button("color1"), [this]{ return GetFrameWeld(); })) , m_xCbx2(m_xBuilder->weld_check_button("cbx2")) , m_xQSet2(new MaskSet(this)) , m_xQSetWin2(new weld::CustomWeld(*m_xBuilder, "qset2", *m_xQSet2)) , m_xSp2(m_xBuilder->weld_metric_spin_button("tol2", FieldUnit::PERCENT)) - , m_xLbColor2(new ColorListBox(m_xBuilder->weld_menu_button("color2"), GetFrameWeld())) + , m_xLbColor2(new ColorListBox(m_xBuilder->weld_menu_button("color2"), [this]{ return GetFrameWeld(); })) , m_xCbx3(m_xBuilder->weld_check_button("cbx3")) , m_xQSet3(new MaskSet(this)) , m_xQSetWin3(new weld::CustomWeld(*m_xBuilder, "qset3", *m_xQSet3)) , m_xSp3(m_xBuilder->weld_metric_spin_button("tol3", FieldUnit::PERCENT)) - , m_xLbColor3(new ColorListBox(m_xBuilder->weld_menu_button("color3"), GetFrameWeld())) + , m_xLbColor3(new ColorListBox(m_xBuilder->weld_menu_button("color3"), [this]{ return GetFrameWeld(); })) , m_xCbx4(m_xBuilder->weld_check_button("cbx4")) , m_xQSet4(new MaskSet(this)) , m_xQSetWin4(new weld::CustomWeld(*m_xBuilder, "qset4", *m_xQSet4)) , m_xSp4(m_xBuilder->weld_metric_spin_button("tol4", FieldUnit::PERCENT)) - , m_xLbColor4(new ColorListBox(m_xBuilder->weld_menu_button("color4"), GetFrameWeld())) + , m_xLbColor4(new ColorListBox(m_xBuilder->weld_menu_button("color4"), [this]{ return GetFrameWeld(); })) , m_xCbxTrans(m_xBuilder->weld_check_button("cbx5")) - , m_xLbColorTrans(new ColorListBox(m_xBuilder->weld_menu_button("color5"), GetFrameWeld())) + , m_xLbColorTrans(new ColorListBox(m_xBuilder->weld_menu_button("color5"), [this]{ return GetFrameWeld(); })) , m_xData(new MaskData(this, *pBindinx)) , aPipetteColor(COL_WHITE) , aSelItem(*this, *pBindinx) diff --git a/svx/source/dialog/fontwork.cxx b/svx/source/dialog/fontwork.cxx index ef4bfe327364..23d7a6782bb2 100644 --- a/svx/source/dialog/fontwork.cxx +++ b/svx/source/dialog/fontwork.cxx @@ -192,7 +192,7 @@ SvxFontWorkDialog::SvxFontWorkDialog(SfxBindings *pBindinx, , m_xMtrFldShadowX(m_xBuilder->weld_metric_spin_button("distancex", FieldUnit::CM)) , m_xFbShadowY(m_xBuilder->weld_image("shadowy")) , m_xMtrFldShadowY(m_xBuilder->weld_metric_spin_button("distancey", FieldUnit::CM)) - , m_xShadowColorLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), GetFrameWeld())) + , m_xShadowColorLB(new ColorListBox(m_xBuilder->weld_menu_button("color"), [this]{ return GetFrameWeld(); } )) { SetText(SvxResId(RID_SVXSTR_FONTWORK)); diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx index a93b7ff2ed8c..28b9ac9909ca 100644 --- a/svx/source/engine3d/float3d.cxx +++ b/svx/source/engine3d/float3d.cxx @@ -137,16 +137,16 @@ Svx3DWin::Svx3DWin(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* p , m_xBtnLight6(new LightButton(m_xBuilder->weld_toggle_button("light6"))) , m_xBtnLight7(new LightButton(m_xBuilder->weld_toggle_button("light7"))) , m_xBtnLight8(new LightButton(m_xBuilder->weld_toggle_button("light8"))) - , m_xLbLight1(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor1"), GetFrameWeld())) - , m_xLbLight2(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor2"), GetFrameWeld())) - , m_xLbLight3(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor3"), GetFrameWeld())) - , m_xLbLight4(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor4"), GetFrameWeld())) - , m_xLbLight5(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor5"), GetFrameWeld())) - , m_xLbLight6(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor6"), GetFrameWeld())) - , m_xLbLight7(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor7"), GetFrameWeld())) - , m_xLbLight8(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor8"), GetFrameWeld())) + , m_xLbLight1(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor1"), [this]{ return GetFrameWeld(); })) + , m_xLbLight2(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor2"), [this]{ return GetFrameWeld(); })) + , m_xLbLight3(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor3"), [this]{ return GetFrameWeld(); })) + , m_xLbLight4(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor4"), [this]{ return GetFrameWeld(); })) + , m_xLbLight5(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor5"), [this]{ return GetFrameWeld(); })) + , m_xLbLight6(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor6"), [this]{ return GetFrameWeld(); })) + , m_xLbLight7(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor7"), [this]{ return GetFrameWeld(); })) + , m_xLbLight8(new ColorListBox(m_xBuilder->weld_menu_button("lightcolor8"), [this]{ return GetFrameWeld(); })) , m_xBtnLightColor(m_xBuilder->weld_button("colorbutton1")) - , m_xLbAmbientlight(new ColorListBox(m_xBuilder->weld_menu_button("ambientcolor"), GetFrameWeld())) + , m_xLbAmbientlight(new ColorListBox(m_xBuilder->weld_menu_button("ambientcolor"), [this]{ return GetFrameWeld(); })) , m_xBtnAmbientColor(m_xBuilder->weld_button("colorbutton2")) , m_xFLTexture(m_xBuilder->weld_container("textureframe")) @@ -164,13 +164,13 @@ Svx3DWin::Svx3DWin(SfxBindings* pInBindings, SfxChildWindow *pCW, vcl::Window* p , m_xFLMaterial(m_xBuilder->weld_container("materialframe")) , m_xLbMatFavorites(m_xBuilder->weld_combo_box("favorites")) - , m_xLbMatColor(new ColorListBox(m_xBuilder->weld_menu_button("objcolor"), GetFrameWeld())) + , m_xLbMatColor(new ColorListBox(m_xBuilder->weld_menu_button("objcolor"), [this]{ return GetFrameWeld(); })) , m_xBtnMatColor(m_xBuilder->weld_button("colorbutton3")) - , m_xLbMatEmission(new ColorListBox(m_xBuilder->weld_menu_button("illumcolor"), GetFrameWeld())) + , m_xLbMatEmission(new ColorListBox(m_xBuilder->weld_menu_button("illumcolor"), [this]{ return GetFrameWeld(); })) , m_xBtnEmissionColor(m_xBuilder->weld_button("colorbutton4")) , m_xFLMatSpecular(m_xBuilder->weld_container("specframe")) - , m_xLbMatSpecular(new ColorListBox(m_xBuilder->weld_menu_button("speccolor"), GetFrameWeld())) + , m_xLbMatSpecular(new ColorListBox(m_xBuilder->weld_menu_button("speccolor"), [this]{ return GetFrameWeld(); })) , m_xBtnSpecularColor(m_xBuilder->weld_button("colorbutton5")) , m_xMtrMatSpecularIntensity(m_xBuilder->weld_metric_spin_button("intensity", FieldUnit::PERCENT)) diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index 903c6701bb04..876249873c38 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -78,8 +78,8 @@ AreaPropertyPanelBase::AreaPropertyPanelBase( mxColorTextFT(m_xBuilder->weld_label("filllabel")), mxLbFillType(m_xBuilder->weld_combo_box("fillstylearea")), mxLbFillAttr(m_xBuilder->weld_combo_box("fillattrhb")), - mxLbFillGradFrom(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad1"), GetFrameWeld())), - mxLbFillGradTo(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad2"), GetFrameWeld())), + mxLbFillGradFrom(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad1"), [this]{ return GetFrameWeld(); })), + mxLbFillGradTo(new ColorListBox(m_xBuilder->weld_menu_button("fillgrad2"), [this]{ return GetFrameWeld(); })), mxToolBoxColor(m_xBuilder->weld_toolbar("selectcolor")), mxColorDispatch(new ToolbarUnoDispatcher(*mxToolBoxColor, *m_xBuilder, rxFrame)), mxTrspTextFT(m_xBuilder->weld_label("transparencylabel")), diff --git a/svx/source/sidebar/effect/EffectPropertyPanel.cxx b/svx/source/sidebar/effect/EffectPropertyPanel.cxx index d6fde80e7911..85f43813ecc4 100644 --- a/svx/source/sidebar/effect/EffectPropertyPanel.cxx +++ b/svx/source/sidebar/effect/EffectPropertyPanel.cxx @@ -32,7 +32,8 @@ EffectPropertyPanel::EffectPropertyPanel(vcl::Window* pParent, , maSoftEdgeRadiusController(SID_ATTR_SOFTEDGE_RADIUS, *pBindings, *this) , mpBindings(pBindings) , mxGlowRadius(m_xBuilder->weld_metric_spin_button("LB_GLOW_RADIUS", FieldUnit::POINT)) - , mxLBGlowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_GLOW_COLOR"), GetFrameWeld())) + , mxLBGlowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_GLOW_COLOR"), + [this] { return GetFrameWeld(); })) , mxGlowTransparency( m_xBuilder->weld_metric_spin_button("LB_GLOW_TRANSPARENCY", FieldUnit::PERCENT)) , mxFTRadiusSoftEdge(m_xBuilder->weld_label("radiussoftedge")) diff --git a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx index 62e4c5471a29..c180e4f3d712 100644 --- a/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx +++ b/svx/source/sidebar/shadow/ShadowPropertyPanel.cxx @@ -45,7 +45,7 @@ ShadowPropertyPanel::ShadowPropertyPanel( nXY(0), mxShowShadow(m_xBuilder->weld_check_button("SHOW_SHADOW")), mxShadowDistance(m_xBuilder->weld_metric_spin_button("LB_DISTANCE", FieldUnit::POINT)), - mxLBShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"), GetFrameWeld())), + mxLBShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"), [this]{ return GetFrameWeld(); })), mxShadowAngle(m_xBuilder->weld_combo_box("LB_ANGLE")), mxFTAngle(m_xBuilder->weld_label("angle")), mxFTDistance(m_xBuilder->weld_label("distance")), diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index ab4a7d124e63..df71726fc214 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -1760,17 +1760,17 @@ ColorWindow::ColorWindow(const OUString& rCommand, ColorStatus& rColorStatus, sal_uInt16 nSlotId, const Reference< XFrame >& rFrame, - weld::Window* pParentWindow, const MenuOrToolMenuButton& rMenuButton, - ColorSelectFunction const & aFunction) + TopLevelParentFunction const& rTopLevelParentFunction, + ColorSelectFunction const & rColorSelectFunction) : WeldToolbarPopup(rFrame, rMenuButton.get_widget(), "svx/ui/colorwindow.ui", "palette_popup_window") , theSlotId(nSlotId) , maCommand(rCommand) - , mpParentWindow(pParentWindow) , maMenuButton(rMenuButton) , mxPaletteManager(rPaletteManager) , mrColorStatus(rColorStatus) - , maColorSelectFunction(aFunction) + , maTopLevelParentFunction(rTopLevelParentFunction) + , maColorSelectFunction(rColorSelectFunction) , mxColorSet(new SvxColorValueSet(m_xBuilder->weld_scrolled_window("colorsetwin", true))) , mxRecentColorSet(new SvxColorValueSet(nullptr)) , mxPaletteListBox(m_xBuilder->weld_combo_box("palette_listbox")) @@ -2005,7 +2005,7 @@ IMPL_LINK_NOARG(ColorWindow, OpenPickerClickHdl, weld::Button&, void) { // copy before set_inactive auto nColor = GetSelectEntryColor().first; - auto pParentWindow = mpParentWindow; + auto pParentWindow = maTopLevelParentFunction(); OUString sCommand = maCommand; std::shared_ptr xPaletteManager(mxPaletteManager); @@ -3236,13 +3236,16 @@ void SvxColorToolBoxControl::setColorSelectFunction(const ColorSelectFunction& a m_xPaletteManager->SetColorSelectFunction(aColorSelectFunction); } +weld::Window* SvxColorToolBoxControl::GetParentFrame() const +{ + const css::uno::Reference xParent = m_xFrame->getContainerWindow(); + return Application::GetFrameWeld(xParent); +} + std::unique_ptr SvxColorToolBoxControl::weldPopupWindow() { EnsurePaletteManager(); - const css::uno::Reference xParent = m_xFrame->getContainerWindow(); - weld::Window* pParentFrame = Application::GetFrameWeld(xParent); - const OString aId(m_aCommandURL.toUtf8()); auto xPopover = std::make_unique( @@ -3251,8 +3254,8 @@ std::unique_ptr SvxColorToolBoxControl::weldPopupWindow() m_aColorStatus, m_nSlotId, m_xFrame, - pParentFrame, MenuOrToolMenuButton(m_pToolbar, aId), + [this] { return GetParentFrame(); }, m_aColorSelectFunction); if ( m_bSplitButton ) @@ -3268,9 +3271,6 @@ VclPtr SvxColorToolBoxControl::createVclPopupWindow( vcl::Window* p if (!getToolboxId(nId, &pToolBox)) return nullptr; - const css::uno::Reference xParent = m_xFrame->getContainerWindow(); - weld::Window* pParentFrame = Application::GetFrameWeld(xParent); - EnsurePaletteManager(); auto xPopover = std::make_unique( @@ -3279,8 +3279,8 @@ VclPtr SvxColorToolBoxControl::createVclPopupWindow( vcl::Window* p m_aColorStatus, m_nSlotId, m_xFrame, - pParentFrame, MenuOrToolMenuButton(this, pToolBox, nId), + [this] { return GetParentFrame(); }, m_aColorSelectFunction); if ( m_bSplitButton ) @@ -3829,13 +3829,13 @@ void ColorListBox::SetSlotId(sal_uInt16 nSlotId, bool bShowNoneButton) createColorWindow(); } -ColorListBox::ColorListBox(std::unique_ptr pControl, weld::Window* pTopLevel) +ColorListBox::ColorListBox(std::unique_ptr pControl, TopLevelParentFunction const& rTopLevelParentFunction) : m_xButton(std::move(pControl)) - , m_pTopLevel(pTopLevel) , m_aColorWrapper(this) , m_aAutoDisplayColor(Application::GetSettings().GetStyleSettings().GetDialogColor()) , m_nSlotId(0) , m_bShowNoneButton(false) + , m_aTopLevelParentFunction(rTopLevelParentFunction) { m_xButton->connect_toggled(LINK(this, ColorListBox, ToggleHdl)); m_aSelectedColor = GetAutoColor(m_nSlotId); @@ -3874,8 +3874,8 @@ void ColorListBox::createColorWindow() m_aColorStatus, m_nSlotId, xFrame, - m_pTopLevel, m_xButton.get(), + m_aTopLevelParentFunction, m_aColorWrapper)); SetNoSelection(); diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx index 57615feabf6d..9bd987be67e5 100644 --- a/sw/source/ui/config/optpage.cxx +++ b/sw/source/ui/config/optpage.cxx @@ -1568,19 +1568,23 @@ SwRedlineOptionsTabPage::SwRedlineOptionsTabPage(weld::Container* pPage, weld::D const SfxItemSet& rSet) : SfxTabPage(pPage, pController, "modules/swriter/ui/optredlinepage.ui", "OptRedLinePage", &rSet) , m_xInsertLB(m_xBuilder->weld_combo_box("insert")) - , m_xInsertColorLB(new ColorListBox(m_xBuilder->weld_menu_button("insertcolor"), pController->getDialog())) + , m_xInsertColorLB(new ColorListBox(m_xBuilder->weld_menu_button("insertcolor"), + [this]{ return GetDialogController()->getDialog(); })) , m_xInsertedPreviewWN(new SvxFontPrevWindow) , m_xInsertedPreview(new weld::CustomWeld(*m_xBuilder, "insertedpreview", *m_xInsertedPreviewWN)) , m_xDeletedLB(m_xBuilder->weld_combo_box("deleted")) - , m_xDeletedColorLB(new ColorListBox(m_xBuilder->weld_menu_button("deletedcolor"), pController->getDialog())) + , m_xDeletedColorLB(new ColorListBox(m_xBuilder->weld_menu_button("deletedcolor"), + [this]{ return GetDialogController()->getDialog(); })) , m_xDeletedPreviewWN(new SvxFontPrevWindow) , m_xDeletedPreview(new weld::CustomWeld(*m_xBuilder, "deletedpreview", *m_xDeletedPreviewWN)) , m_xChangedLB(m_xBuilder->weld_combo_box("changed")) - , m_xChangedColorLB(new ColorListBox(m_xBuilder->weld_menu_button("changedcolor"), pController->getDialog())) + , m_xChangedColorLB(new ColorListBox(m_xBuilder->weld_menu_button("changedcolor"), + [this]{ return GetDialogController()->getDialog(); })) , m_xChangedPreviewWN(new SvxFontPrevWindow) , m_xChangedPreview(new weld::CustomWeld(*m_xBuilder, "changedpreview", *m_xChangedPreviewWN)) , m_xMarkPosLB(m_xBuilder->weld_combo_box("markpos")) - , m_xMarkColorLB(new ColorListBox(m_xBuilder->weld_menu_button("markcolor"), pController->getDialog())) + , m_xMarkColorLB(new ColorListBox(m_xBuilder->weld_menu_button("markcolor"), + [this]{ return GetDialogController()->getDialog(); })) , m_xMarkPreviewWN(new SwMarkPreview) , m_xMarkPreview(new weld::CustomWeld(*m_xBuilder, "markpreview", *m_xMarkPreviewWN)) { diff --git a/sw/source/ui/frmdlg/column.cxx b/sw/source/ui/frmdlg/column.cxx index 472ce06acb82..9dbe84c5e5f1 100644 --- a/sw/source/ui/frmdlg/column.cxx +++ b/sw/source/ui/frmdlg/column.cxx @@ -398,7 +398,8 @@ SwColumnPage::SwColumnPage(weld::Container* pPage, weld::DialogController* pCont , m_xLinePosDLB(m_xBuilder->weld_combo_box("lineposlb")) , m_xTextDirectionFT(m_xBuilder->weld_label("textdirectionft")) , m_xTextDirectionLB(new svx::FrameDirectionListBox(m_xBuilder->weld_combo_box("textdirectionlb"))) - , m_xLineColorDLB(new ColorListBox(m_xBuilder->weld_menu_button("colorlb"), pController->getDialog())) + , m_xLineColorDLB(new ColorListBox(m_xBuilder->weld_menu_button("colorlb"), + [this]{ return GetDialogController()->getDialog(); })) , m_xLineTypeDLB(new SvtLineListBox(m_xBuilder->weld_menu_button("linestylelb"))) , m_xEd1(new SwPercentField(m_xBuilder->weld_metric_spin_button("width1mf", FieldUnit::CM))) , m_xEd2(new SwPercentField(m_xBuilder->weld_metric_spin_button("width2mf", FieldUnit::CM))) diff --git a/sw/source/ui/misc/pgfnote.cxx b/sw/source/ui/misc/pgfnote.cxx index 4415ae8ab7a2..51b41703a82c 100644 --- a/sw/source/ui/misc/pgfnote.cxx +++ b/sw/source/ui/misc/pgfnote.cxx @@ -106,7 +106,8 @@ SwFootNotePage::SwFootNotePage(weld::Container* pPage, weld::DialogController* p , m_xLinePosBox(m_xBuilder->weld_combo_box("position")) , m_xLineTypeBox(new SvtLineListBox(m_xBuilder->weld_menu_button("style"))) , m_xLineWidthEdit(m_xBuilder->weld_metric_spin_button("thickness", FieldUnit::POINT)) - , m_xLineColorBox(new ColorListBox(m_xBuilder->weld_menu_button("color"), pController->getDialog())) + , m_xLineColorBox(new ColorListBox(m_xBuilder->weld_menu_button("color"), + [this]{ return GetDialogController()->getDialog(); })) , m_xLineLengthEdit(m_xBuilder->weld_metric_spin_button("length", FieldUnit::PERCENT)) , m_xLineDistEdit(m_xBuilder->weld_metric_spin_button("spacingtocontents", FieldUnit::CM)) { diff --git a/sw/source/ui/misc/pggrid.cxx b/sw/source/ui/misc/pggrid.cxx index 88d045d31a6d..19faefe56827 100644 --- a/sw/source/ui/misc/pggrid.cxx +++ b/sw/source/ui/misc/pggrid.cxx @@ -64,7 +64,8 @@ SwTextGridPage::SwTextGridPage(weld::Container* pPage, weld::DialogController* p , m_xDisplayFL(m_xBuilder->weld_widget("frameFL_DISPLAY")) , m_xDisplayCB(m_xBuilder->weld_check_button("checkCB_DISPLAY")) , m_xPrintCB(m_xBuilder->weld_check_button("checkCB_PRINT")) - , m_xColorLB(new ColorListBox(m_xBuilder->weld_menu_button("listLB_COLOR"), pController->getDialog())) + , m_xColorLB(new ColorListBox(m_xBuilder->weld_menu_button("listLB_COLOR"), + [this]{ return GetDialogController()->getDialog(); })) { Link aLink = LINK(this, SwTextGridPage, CharorLineChangedHdl); m_xCharsPerLineNF->connect_value_changed(aLink); diff --git a/sw/source/uibase/dialog/watermarkdialog.cxx b/sw/source/uibase/dialog/watermarkdialog.cxx index 71ab0a74046c..62dbe8711f23 100644 --- a/sw/source/uibase/dialog/watermarkdialog.cxx +++ b/sw/source/uibase/dialog/watermarkdialog.cxx @@ -32,7 +32,7 @@ SwWatermarkDialog::SwWatermarkDialog(weld::Window* pParent, SfxBindings& rBindin , m_xFont(m_xBuilder->weld_combo_box("FontBox")) , m_xAngle(m_xBuilder->weld_metric_spin_button("Angle", FieldUnit::DEGREE)) , m_xTransparency(m_xBuilder->weld_metric_spin_button("Transparency", FieldUnit::PERCENT)) - , m_xColor(new ColorListBox(m_xBuilder->weld_menu_button("Color"), m_xDialog.get())) + , m_xColor(new ColorListBox(m_xBuilder->weld_menu_button("Color"), [this]{ return m_xDialog.get(); })) { InitFields(); diff --git a/sw/source/uibase/sidebar/PageStylesPanel.cxx b/sw/source/uibase/sidebar/PageStylesPanel.cxx index 8f4c8d88adb1..a2cf10cd3faf 100644 --- a/sw/source/uibase/sidebar/PageStylesPanel.cxx +++ b/sw/source/uibase/sidebar/PageStylesPanel.cxx @@ -107,9 +107,9 @@ PageStylesPanel::PageStylesPanel( maBgGradientControl( SID_ATTR_PAGE_GRADIENT, *pBindings, *this ), maBgBitmapControl( SID_ATTR_PAGE_BITMAP, *pBindings, *this ), maBgFillStyleControl(SID_ATTR_PAGE_FILLSTYLE, *pBindings, *this), - mxBgColorLB(new ColorListBox(m_xBuilder->weld_menu_button("lbcolor"), GetFrameWeld())), + mxBgColorLB(new ColorListBox(m_xBuilder->weld_menu_button("lbcolor"), [this]{ return GetFrameWeld(); })), mxBgHatchingLB(m_xBuilder->weld_combo_box("lbhatching")), - mxBgGradientLB(new ColorListBox(m_xBuilder->weld_menu_button("lbgradient"), GetFrameWeld())), + mxBgGradientLB(new ColorListBox(m_xBuilder->weld_menu_button("lbgradient"), [this]{ return GetFrameWeld(); })), mxBgBitmapLB(m_xBuilder->weld_combo_box("lbbitmap")), mxLayoutSelectLB(m_xBuilder->weld_combo_box("layoutbox")), mxColumnCount(m_xBuilder->weld_combo_box("columnbox")), -- cgit