diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-22 16:17:37 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-23 10:39:09 +0200 |
commit | f5c74d4deecce1e0adc9fc0ac4545b880e3b2564 (patch) | |
tree | 6d39ec909f1795eaa3929beb2d76e619bd51e4d2 /cui | |
parent | 353a093c508562c14dada49c2e1d937e5e02e642 (diff) |
Make Table Properties dialog async
Change-Id: I0fb84ed3660f9a153ad89126a927299954360c2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99228
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/factory/dlgfact.cxx | 19 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.hxx | 15 |
2 files changed, 31 insertions, 3 deletions
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index 5c1979943ac3..46180fc4435c 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -385,6 +385,21 @@ OString CuiAbstractTabController_Impl::GetScreenshotId() const return m_xDlg->GetScreenshotId(); } +bool CuiAsyncAbstractTabController_Impl::StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) +{ + return SfxTabDialogController::runAsync(m_xDlg, rCtx.maEndDialogFn); +} + +void CuiAsyncAbstractTabController_Impl::SetCurPageId( const OString &rName ) +{ + m_xDlg->SetCurPageId( rName ); +} + +const SfxItemSet* CuiAsyncAbstractTabController_Impl::GetOutputItemSet() const +{ + return m_xDlg->GetOutputItemSet(); +} + const SfxItemSet* CuiAbstractSingleTabController_Impl::GetOutputItemSet() const { return m_xDlg->GetOutputItemSet(); @@ -1597,9 +1612,9 @@ VclPtr<SfxAbstractLinksDialog> AbstractDialogFactory_Impl::CreateLinksDialog(wel return VclPtr<AbstractLinksDialog_Impl>::Create(std::move(xLinkDlg)); } -VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel) +std::shared_ptr<AbstractTabController> AbstractDialogFactory_Impl::CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel) { - return VclPtr<CuiAbstractTabController_Impl>::Create(std::make_unique<SvxFormatCellsDialog>(pParent, pAttr, rModel)); + return std::make_shared<CuiAsyncAbstractTabController_Impl>(std::make_unique<SvxFormatCellsDialog>(pParent, pAttr, rModel)); } VclPtr<SvxAbstractSplitTableDialog> AbstractDialogFactory_Impl::CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, long nMaxVertical) diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index c7e66c44556d..27566e6a7224 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -161,6 +161,19 @@ public: virtual OString GetScreenshotId() const override; }; +class CuiAsyncAbstractTabController_Impl : public AbstractTabController +{ + std::shared_ptr<SfxTabDialogController> m_xDlg; +public: + explicit CuiAsyncAbstractTabController_Impl(std::unique_ptr<SfxTabDialogController> p) + : m_xDlg(std::move(p)) + { + } + virtual bool StartExecuteAsync(VclAbstractDialog::AsyncContext &rCtx) override; + virtual void SetCurPageId( const OString &rName ) override; + virtual const SfxItemSet* GetOutputItemSet() const override; +}; + class SvxDistributeDialog; class AbstractSvxDistributeDialog_Impl: public AbstractSvxDistributeDialog { @@ -922,7 +935,7 @@ public: const sal_uInt16 _nInitiallySelectedEvent ) override; - virtual VclPtr<SfxAbstractTabDialog> CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel) override; + virtual std::shared_ptr<AbstractTabController> CreateSvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel) override; virtual VclPtr<SvxAbstractSplitTableDialog> CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, long nMaxVertical) override; |