summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-05-20 18:53:39 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2020-05-21 09:13:44 +0200
commitf42e71fefa1323263ab9c5b78c930738ddb81937 (patch)
tree67c8fb39d972ba599f2210da23b0b441a6457afc /cui
parent56c0ca9bf467c65ad379d7d7b238b453ba76a69b (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.cxx10
-rw-r--r--cui/source/factory/dlgfact.cxx4
-rw-r--r--cui/source/factory/dlgfact.hxx2
-rw-r--r--cui/source/inc/newtabledlg.hxx41
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