diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-05-20 18:53:39 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-05-21 09:13:44 +0200 |
commit | f42e71fefa1323263ab9c5b78c930738ddb81937 (patch) | |
tree | 67c8fb39d972ba599f2210da23b0b441a6457afc /cui | |
parent | 56c0ca9bf467c65ad379d7d7b238b453ba76a69b (diff) |
Make Impress Insert Table dialog async
Change-Id: If8b48cfe983819387c066d3bd81a42dad8947489
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94591
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/dialogs/newtabledlg.cxx | 10 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.cxx | 4 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.hxx | 2 | ||||
-rw-r--r-- | cui/source/inc/newtabledlg.hxx | 41 |
4 files changed, 39 insertions, 18 deletions
diff --git a/cui/source/dialogs/newtabledlg.cxx b/cui/source/dialogs/newtabledlg.cxx index af4d91f1b1c5..16e81f8d90ea 100644 --- a/cui/source/dialogs/newtabledlg.cxx +++ b/cui/source/dialogs/newtabledlg.cxx @@ -26,16 +26,6 @@ SvxNewTableDialog::SvxNewTableDialog(weld::Window* pWindow) { } -SvxNewTableDialog::~SvxNewTableDialog() -{ - disposeOnce(); -} - -short SvxNewTableDialog::Execute() -{ - return m_xDialog->run(); -} - sal_Int32 SvxNewTableDialog::getRows() const { return sal::static_int_cast< sal_Int32 >( mxNumRows->get_value() ); diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index e520ebb99928..3eb2d9a6036b 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -1609,9 +1609,9 @@ VclPtr<SvxAbstractSplitTableDialog> AbstractDialogFactory_Impl::CreateSvxSplitTa return VclPtr<SvxSplitTableDlg>::Create( pParent, bIsTableVertical, nMaxVertical, 99 ); } -VclPtr<SvxAbstractNewTableDialog> AbstractDialogFactory_Impl::CreateSvxNewTableDialog(weld::Window* pParent) +std::shared_ptr<SvxAbstractNewTableDialog> AbstractDialogFactory_Impl::CreateSvxNewTableDialog(weld::Window* pParent) { - return VclPtr<SvxNewTableDialog>::Create(pParent); + return std::make_shared<SvxNewTableDialogWrapper>(pParent); } VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateOptionsDialog( diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index dd45dc48650b..f0fd1ab16a99 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -836,7 +836,7 @@ public: virtual VclPtr<SvxAbstractSplitTableDialog> CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, long nMaxVertical) override; - virtual VclPtr<SvxAbstractNewTableDialog> CreateSvxNewTableDialog(weld::Window* pParent) override ; + virtual std::shared_ptr<SvxAbstractNewTableDialog> CreateSvxNewTableDialog(weld::Window* pParent) override ; virtual VclPtr<VclAbstractDialog> CreateOptionsDialog( vcl::Window* pParent, const OUString& rExtensionId ) override; diff --git a/cui/source/inc/newtabledlg.hxx b/cui/source/inc/newtabledlg.hxx index 88b7f61c5ec9..4ad26b4b1c99 100644 --- a/cui/source/inc/newtabledlg.hxx +++ b/cui/source/inc/newtabledlg.hxx @@ -23,7 +23,7 @@ #include <svx/svxdlg.hxx> #include <vcl/weld.hxx> -class SvxNewTableDialog : public SvxAbstractNewTableDialog, public weld::GenericDialogController +class SvxNewTableDialog : public weld::GenericDialogController { private: std::unique_ptr<weld::SpinButton> mxNumColumns; @@ -31,12 +31,43 @@ private: public: SvxNewTableDialog(weld::Window* pParent); - virtual ~SvxNewTableDialog() override; - virtual short Execute() override; + virtual sal_Int32 getRows() const; + virtual sal_Int32 getColumns() const; +}; + +class SvxNewTableDialogWrapper : public SvxAbstractNewTableDialog +{ +private: + std::shared_ptr<weld::DialogController> m_xDlg; + +public: + SvxNewTableDialogWrapper(weld::Window* pParent) + : m_xDlg(std::make_shared<SvxNewTableDialog>(pParent)) + {} + + virtual std::shared_ptr<weld::DialogController> getDialogController() override + { + return m_xDlg; + } + + virtual sal_Int32 getRows() const override + { + SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get()); + if (pDlg) + return pDlg->getRows(); + + return 0; + } + + virtual sal_Int32 getColumns() const override + { + SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get()); + if (pDlg) + return pDlg->getColumns(); - virtual sal_Int32 getRows() const override; - virtual sal_Int32 getColumns() const override; + return 0; + } }; #endif // INCLUDED_CUI_SOURCE_INC_NEWTABLEDLG_HXX |