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/+/125949
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx
index 6172012..e140cee 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()
@@ -1483,7 +1488,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 e6b4d25..c73843d 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 3116dfb..f783ffd 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));