make Search family and mask explicit for SfxNewStyleDlg
Change-Id: Ib3e5765d37474188d6505f1d9965969ee6c24f0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93358
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/include/sfx2/newstyle.hxx b/include/sfx2/newstyle.hxx
index e7016b5..c61685d 100644
--- a/include/sfx2/newstyle.hxx
+++ b/include/sfx2/newstyle.hxx
@@ -22,14 +22,14 @@
#include <comphelper/string.hxx>
#include <sal/config.h>
#include <sfx2/dllapi.h>
#include <svl/style.hxx>
#include <vcl/weld.hxx>
class SfxStyleSheetBasePool;
class SFX2_DLLPUBLIC SfxNewStyleDlg final : public weld::GenericDialogController
{
private:
SfxStyleSheetBasePool& m_rPool;
SfxStyleFamily m_eSearchFamily;
std::unique_ptr<weld::EntryTreeView> m_xColBox;
std::unique_ptr<weld::Button> m_xOKBtn;
@@ -41,7 +41,7 @@ private:
DECL_DLLPRIVATE_LINK(ModifyHdl, weld::ComboBox&, void);
public:
SfxNewStyleDlg(weld::Window* pParent, SfxStyleSheetBasePool&);
SfxNewStyleDlg(weld::Window* pParent, SfxStyleSheetBasePool& rPool, SfxStyleFamily eFam, SfxStyleSearchBits nMask);
virtual ~SfxNewStyleDlg() override;
OUString GetName() const { return comphelper::string::stripStart(m_xColBox->get_active_text(), ' '); }
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index 4c6cda1..7b5ae95 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -433,7 +433,7 @@ void ScFormatShell::ExecuteStyle( SfxRequest& rReq )
weld::Window* pDialogParent = rReq.GetFrameWeld();
if (!pDialogParent)
pDialogParent = pTabViewShell->GetFrameWeld();
SfxNewStyleDlg aDlg(pDialogParent, *pStylePool);
SfxNewStyleDlg aDlg(pDialogParent, *pStylePool, eFamily, SfxStyleSearchBits::All);
if (aDlg.run() != RET_OK)
return;
aStyleName = aDlg.GetName();
diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx
index ed7a20f..288fc39 100644
--- a/sfx2/source/dialog/newstyle.cxx
+++ b/sfx2/source/dialog/newstyle.cxx
@@ -30,7 +30,7 @@
IMPL_LINK_NOARG(SfxNewStyleDlg, OKClickHdl, weld::Button&, void)
{
const OUString aName(m_xColBox->get_active_text());
SfxStyleSheetBase* pStyle = m_rPool.Find(aName, m_rPool.GetSearchFamily());
SfxStyleSheetBase* pStyle = m_rPool.Find(aName, m_eSearchFamily);
if ( pStyle )
{
if ( !pStyle->IsUserDefined() )
@@ -60,9 +60,10 @@ IMPL_LINK(SfxNewStyleDlg, ModifyHdl, weld::ComboBox&, rBox, void)
m_xOKBtn->set_sensitive(!rBox.get_active_text().replaceAll(" ", "").isEmpty());
}
SfxNewStyleDlg::SfxNewStyleDlg(weld::Window* pParent, SfxStyleSheetBasePool& rInPool)
SfxNewStyleDlg::SfxNewStyleDlg(weld::Window* pParent, SfxStyleSheetBasePool& rInPool, SfxStyleFamily eFam, SfxStyleSearchBits nMask)
: GenericDialogController(pParent, "sfx/ui/newstyle.ui", "CreateStyleDialog")
, m_rPool(rInPool)
, m_eSearchFamily(eFam)
, m_xColBox(m_xBuilder->weld_entry_tree_view("stylegrid", "stylename", "styles"))
, m_xOKBtn(m_xBuilder->weld_button("ok"))
, m_xQueryOverwriteBox(Application::CreateMessageDialog(m_xDialog.get(), VclMessageType::Question, VclButtonsType::YesNo,
@@ -75,11 +76,12 @@ SfxNewStyleDlg::SfxNewStyleDlg(weld::Window* pParent, SfxStyleSheetBasePool& rIn
m_xColBox->connect_changed(LINK(this, SfxNewStyleDlg, ModifyHdl));
m_xColBox->connect_row_activated(LINK(this, SfxNewStyleDlg, OKHdl));
SfxStyleSheetBase *pStyle = m_rPool.First();
auto xIter = m_rPool.CreateIterator(eFam, nMask);
SfxStyleSheetBase *pStyle = xIter->First();
while (pStyle)
{
m_xColBox->append_text(pStyle->GetName());
pStyle = m_rPool.Next();
pStyle = xIter->Next();
}
}
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 9fe3592..6cfc649 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -1621,7 +1621,7 @@ void SfxCommonTemplateDialog_Impl::ActionSelect(const OString& rEntry)
pStyleSheetPool->SetSearchMask( eFam, SfxStyleSearchBits::UserDefined );
// why? : FloatingWindow must not be parent of a modal dialog
SfxNewStyleDlg aDlg(pWindow ? pWindow->GetFrameWeld() : nullptr, *pStyleSheetPool);
SfxNewStyleDlg aDlg(pWindow ? pWindow->GetFrameWeld() : nullptr, *pStyleSheetPool, eFam, SfxStyleSearchBits::UserDefined);
if (aDlg.run() == RET_OK)
{
pStyleSheetPool->SetSearchMask(eFam, nFilter);
diff --git a/sw/source/uibase/app/docst.cxx b/sw/source/uibase/app/docst.cxx
index 72aaf1e..9b7d70a 100644
--- a/sw/source/uibase/app/docst.cxx
+++ b/sw/source/uibase/app/docst.cxx
@@ -372,7 +372,8 @@ void SwDocShell::ExecStyleSheet( SfxRequest& rReq )
{
case SID_STYLE_NEW_BY_EXAMPLE:
{
SfxNewStyleDlg aDlg(GetView()->GetFrameWeld(), *GetStyleSheetPool());
SfxStyleSheetBasePool& rPool = *GetStyleSheetPool();
SfxNewStyleDlg aDlg(GetView()->GetFrameWeld(), rPool, rPool.GetSearchFamily(), rPool.GetSearchMask());
if (aDlg.run() == RET_OK)
{
aParam = aDlg.GetName();