sc/source/ui/cctrl/checklistmenu.cxx | 10 +++++++--- sc/source/ui/inc/checklistmenu.hxx | 2 +- sc/source/ui/view/gridwin.cxx | 6 +++--- 3 files changed, 11 insertions(+), 7 deletions(-)
New commits: commit 0c6b8585ce6e20f0045628ed209abddada8c2766 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Nov 27 20:07:33 2021 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sat Nov 27 22:23:13 2021 +0100 Resolves: tdf#144410 show submenu indicator for color filtering options do it as an easily backportable change Change-Id: Ib92e8f1e35e6465b52a69f3a8513068668dc6953 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125902 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx index e88d99166eed..d8c210156624 100644 --- a/sc/source/ui/cctrl/checklistmenu.cxx +++ b/sc/source/ui/cctrl/checklistmenu.cxx @@ -120,7 +120,7 @@ IMPL_LINK_NOARG(ScCheckListMenuControl, SelectHdl, weld::TreeView&, void) setSelectedMenuItem(nSelectedMenu, true); } -void ScCheckListMenuControl::addMenuItem(const OUString& rText, Action* pAction) +void ScCheckListMenuControl::addMenuItem(const OUString& rText, Action* pAction, bool bIndicateSubMenu) { MenuItemData aItem; aItem.mbEnabled = true; @@ -130,7 +130,12 @@ void ScCheckListMenuControl::addMenuItem(const OUString& rText, Action* pAction) mxMenu->show(); mxMenu->append_text(rText); if (mbCanHaveSubMenu) - mxMenu->set_image(mxMenu->n_children() - 1, css::uno::Reference<css::graphic::XGraphic>(), 1); + { + if (bIndicateSubMenu) + mxMenu->set_image(mxMenu->n_children() - 1, *mxDropDown, 1); + else + mxMenu->set_image(mxMenu->n_children() - 1, css::uno::Reference<css::graphic::XGraphic>(), 1); + } } void ScCheckListMenuControl::addSeparator() @@ -1476,7 +1481,6 @@ void ScListSubMenuControl::addMenuItem(const OUString& rText, ScCheckListMenuCon aItem.mbEnabled = true; aItem.mxAction.reset(pAction); maMenuItems.emplace_back(std::move(aItem)); - mxMenu->show(); mxMenu->append_text(rText); } diff --git a/sc/source/ui/inc/checklistmenu.hxx b/sc/source/ui/inc/checklistmenu.hxx index dd398dd9f651..761bbf027f14 100644 --- a/sc/source/ui/inc/checklistmenu.hxx +++ b/sc/source/ui/inc/checklistmenu.hxx @@ -128,7 +128,7 @@ public: vcl::ILibreOfficeKitNotifier* pNotifier); ~ScCheckListMenuControl(); - void addMenuItem(const OUString& rText, Action* pAction); + void addMenuItem(const OUString& rText, Action* pAction, bool bIndicateSubMenu = false); void addSeparator(); ScListSubMenuControl* addSubMenuItem(const OUString& rText, bool bEnabled); void resizeToFitMenuItems(); diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 3116dfb9ac13..f783ffdf7ca2 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -594,7 +594,7 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) weld::Window* pPopupParent = GetFrameWeld(); int nColWidth = ScViewData::ToPixel(rDoc.GetColWidth(nCol, nTab), mrViewData.GetPPTX()); - mpAutoFilterPopup.reset(new ScCheckListMenuControl(pPopupParent, &rDoc, false, + mpAutoFilterPopup.reset(new ScCheckListMenuControl(pPopupParent, &rDoc, true, aFilterEntries.mbHasDates, nColWidth, pNotifier)); int nMaxTextWidth = 0; @@ -736,9 +736,9 @@ void ScGridWindow::LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow) ScResId(SCSTR_FILTER_NOTEMPTY), new AutoFilterAction(this, AutoFilterMode::NonEmpty)); mpAutoFilterPopup->addSeparator(); mpAutoFilterPopup->addMenuItem( - ScResId(SCSTR_FILTER_TEXT_COLOR), new AutoFilterAction(this, AutoFilterMode::TextColor)); + ScResId(SCSTR_FILTER_TEXT_COLOR), new AutoFilterAction(this, AutoFilterMode::TextColor), true); mpAutoFilterPopup->addMenuItem( - ScResId(SCSTR_FILTER_BACKGROUND_COLOR), new AutoFilterAction(this, AutoFilterMode::BackgroundColor)); + ScResId(SCSTR_FILTER_BACKGROUND_COLOR), new AutoFilterAction(this, AutoFilterMode::BackgroundColor), true); mpAutoFilterPopup->addSeparator(); mpAutoFilterPopup->addMenuItem( ScResId(SCSTR_STDFILTER), new AutoFilterAction(this, AutoFilterMode::Custom));