From fbd79c6125fd302dde9af2d76171dd5ca794af4d Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 20 Mar 2019 11:56:03 +0000 Subject: weld SwFieldDlg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I324a581721e01c907113bb3ab1cc91a290bd71a7 Reviewed-on: https://gerrit.libreoffice.org/69475 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/source/ui/dialog/swdlgfact.cxx | 49 ++++++++++++++++++++++----------------- sw/source/ui/dialog/swdlgfact.hxx | 20 ++++++++++------ 2 files changed, 41 insertions(+), 28 deletions(-) (limited to 'sw/source/ui/dialog') diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index fb764f190916..7d36a5e527e1 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -196,7 +196,10 @@ short AbstractSwAutoFormatDlg_Impl::Execute() return m_xDlg->run(); } -IMPL_ABSTDLG_BASE(AbstractSwFieldDlg_Impl); +short AbstractSwFieldDlg_Impl::Execute() +{ + return m_xDlg->run(); +} short AbstractSwRenameXNamedDlg_Impl::Execute() { @@ -441,57 +444,62 @@ SwTableAutoFormat* AbstractSwAutoFormatDlg_Impl::FillAutoFormatOfIndex() const void AbstractSwFieldDlg_Impl::SetCurPageId( const OString &rName ) { - pDlg->SetCurPageId( rName ); + m_xDlg->SetCurPageId( rName ); } const SfxItemSet* AbstractSwFieldDlg_Impl::GetOutputItemSet() const { - return pDlg->GetOutputItemSet(); + return m_xDlg->GetOutputItemSet(); } const sal_uInt16* AbstractSwFieldDlg_Impl::GetInputRanges(const SfxItemPool& pItem ) { - return pDlg->GetInputRanges( pItem ); + return m_xDlg->GetInputRanges( pItem ); } void AbstractSwFieldDlg_Impl::SetInputSet( const SfxItemSet* pInSet ) { - pDlg->SetInputSet( pInSet ); + m_xDlg->SetInputSet( pInSet ); } void AbstractSwFieldDlg_Impl::SetText( const OUString& rStr ) { - pDlg->SetText( rStr ); + m_xDlg->set_title(rStr); } -void AbstractSwFieldDlg_Impl::Start() +bool AbstractSwFieldDlg_Impl::StartExecuteAsync(AsyncContext &rCtx) { - pDlg->Start(); + auto xDlg = m_xDlg; + return SfxTabDialogController::runAsync(m_xDlg, [=](sal_Int32 nResult){ + xDlg->Close(); + if (rCtx.isSet()) + rCtx.maEndDialogFn(nResult); + }); } void AbstractSwFieldDlg_Impl::Initialize(SfxChildWinInfo *pInfo) { - pDlg->Initialize( pInfo ); + m_xDlg->Initialize( pInfo ); } void AbstractSwFieldDlg_Impl::ReInitDlg() { - pDlg->ReInitDlg(); + m_xDlg->ReInitDlg(); } void AbstractSwFieldDlg_Impl::ActivateDatabasePage() { - pDlg->ActivateDatabasePage(); + m_xDlg->ActivateDatabasePage(); } -vcl::Window* AbstractSwFieldDlg_Impl::GetWindow() +void AbstractSwFieldDlg_Impl::ShowReferencePage() { - return static_cast(pDlg); + m_xDlg->ShowReferencePage(); } -void AbstractSwFieldDlg_Impl::ShowReferencePage() +std::shared_ptr AbstractSwFieldDlg_Impl::GetController() { - pDlg->ShowReferencePage(); + return m_xDlg; } void AbstractSwRenameXNamedDlg_Impl::SetForbiddenChars( const OUString& rSet ) @@ -835,13 +843,13 @@ VclPtr SwAbstractDialogFactory_Impl::CreateSwFootNoteOptio return VclPtr::Create(std::make_unique(pParent, rSh)); } -VclPtr SwAbstractDialogFactory_Impl::CreateDropDownFieldDialog(weld::Window *pParent, +VclPtr SwAbstractDialogFactory_Impl::CreateDropDownFieldDialog(weld::Widget *pParent, SwWrtShell &rSh, SwField* pField, bool bPrevButton, bool bNextButton) { return VclPtr::Create(std::make_unique(pParent, rSh, pField, bPrevButton, bNextButton)); } -VclPtr SwAbstractDialogFactory_Impl::CreateDropDownFormFieldDialog(weld::Window *pParent, sw::mark::IFieldmark* pDropDownField) +VclPtr SwAbstractDialogFactory_Impl::CreateDropDownFormFieldDialog(weld::Widget *pParent, sw::mark::IFieldmark* pDropDownField) { return VclPtr::Create(std::make_unique(pParent, pDropDownField)); } @@ -931,10 +939,9 @@ VclPtr SwAbstractDialogFactory_Impl::CreateSwTableTabDlg(w return VclPtr::Create(std::make_unique(pParent, pItemSet, pSh)); } -VclPtr SwAbstractDialogFactory_Impl::CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) +VclPtr SwAbstractDialogFactory_Impl::CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, weld::Window *pParent) { - VclPtr pDlg = VclPtr::Create(pB, pCW, pParent); - return VclPtr::Create(pDlg); + return VclPtr::Create(std::make_unique(pB, pCW, pParent)); } VclPtr SwAbstractDialogFactory_Impl::CreateSwFieldEditDlg(SwView& rVw) @@ -988,7 +995,7 @@ VclPtr SwAbstractDialogFactory_Impl::CreateGlossaryDlg(SfxV return VclPtr::Create( pDlg ); } -VclPtr SwAbstractDialogFactory_Impl::CreateFieldInputDlg(weld::Window *pParent, +VclPtr SwAbstractDialogFactory_Impl::CreateFieldInputDlg(weld::Widget *pParent, SwWrtShell &rSh, SwField* pField, bool bPrevButton, bool bNextButton) { return VclPtr::Create(std::make_unique(pParent, rSh, pField, bPrevButton, bNextButton)); diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index d17ccab6a473..dfb5925b7a5e 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -349,19 +349,25 @@ public: class AbstractSwFieldDlg_Impl : public AbstractSwFieldDlg { - DECL_ABSTDLG_BASE(AbstractSwFieldDlg_Impl,SwFieldDlg ) + std::shared_ptr m_xDlg; +public: + explicit AbstractSwFieldDlg_Impl(std::unique_ptr p) + : m_xDlg(std::move(p)) + { + } + virtual short Execute() override; + virtual bool StartExecuteAsync(AsyncContext &rCtx) override; virtual void SetCurPageId( const OString &rName ) override; virtual const SfxItemSet* GetOutputItemSet() const override; virtual const sal_uInt16* GetInputRanges( const SfxItemPool& pItem ) override; virtual void SetInputSet( const SfxItemSet* pInSet ) override; //From class Window. virtual void SetText( const OUString& rStr ) override; - virtual void Start() override; //this method from SfxTabDialog virtual void ShowReferencePage() override; virtual void Initialize(SfxChildWinInfo *pInfo) override; virtual void ReInitDlg() override; virtual void ActivateDatabasePage() override; - virtual vcl::Window * GetWindow() override; //this method is added for return a Window type pointer + virtual std::shared_ptr GetController() override; }; class AbstractSwRenameXNamedDlg_Impl : public AbstractSwRenameXNamedDlg @@ -611,9 +617,9 @@ public: const SwDBData& rData) override; virtual VclPtr CreateSwFootNoteOptionDlg(weld::Window *pParent, SwWrtShell &rSh) override; - virtual VclPtr CreateDropDownFieldDialog(weld::Window* pParent, SwWrtShell &rSh, + virtual VclPtr CreateDropDownFieldDialog(weld::Widget* pParent, SwWrtShell &rSh, SwField* pField, bool bPrevButton, bool bNextButton) override; - virtual VclPtr CreateDropDownFormFieldDialog(weld::Window* pParent, sw::mark::IFieldmark* pDropDownField) override; + virtual VclPtr CreateDropDownFormFieldDialog(weld::Widget* pParent, sw::mark::IFieldmark* pDropDownField) override; virtual VclPtr CreateSwEnvDlg(weld::Window* pParent, const SfxItemSet& rSet, SwWrtShell* pWrtSh, Printer* pPrt, bool bInsert) override; virtual VclPtr CreateSwLabDlg(weld::Window* pParent, const SfxItemSet& rSet, SwDBManager* pDBManager, bool bLabel) override; @@ -641,7 +647,7 @@ public: virtual VclPtr CreateSwTableWidthDlg(weld::Window *pParent, SwTableFUNC &rFnc) override; virtual VclPtr CreateSwTableTabDlg(weld::Window* pParent, const SfxItemSet* pItemSet, SwWrtShell* pSh) override; - virtual VclPtr CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, vcl::Window *pParent) override; + virtual VclPtr CreateSwFieldDlg(SfxBindings* pB, SwChildWinWrapper* pCW, weld::Window *pParent) override; virtual VclPtr CreateSwFieldEditDlg ( SwView& rVw ) override; virtual VclPtr CreateSwRenameXNamedDlg(weld::Window* pParent, css::uno::Reference< css::container::XNamed > & xNamed, @@ -664,7 +670,7 @@ public: virtual VclPtr CreateGlossaryDlg(SfxViewFrame* pViewFrame, SwGlossaryHdl* pGlosHdl, SwWrtShell *pWrtShell) override; - virtual VclPtr CreateFieldInputDlg(weld::Window *pParent, + virtual VclPtr CreateFieldInputDlg(weld::Widget *pParent, SwWrtShell &rSh, SwField* pField, bool bPrevButton, bool bNextButton) override; virtual VclPtr CreateInsFootNoteDlg( weld::Window * pParent, SwWrtShell &rSh, bool bEd = false) override; -- cgit