summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-09-30 10:49:12 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2020-11-13 09:38:36 +0100
commit817a06d857bff5be35f8eb7bf830b75871556bc5 (patch)
treec6999a58916183489cb1652af74b48e9098134b0 /cui
parent0d3fb848a2995a0869c4c5fa8916214a513865ac (diff)
Make Split Table Cell dialog async
Change-Id: I4efbb24f721aa50cc4dbbe78ae1e7e6087f8c876 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103670 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105594 Tested-by: Jenkins
Diffstat (limited to 'cui')
-rw-r--r--cui/source/dialogs/splitcelldlg.cxx35
-rw-r--r--cui/source/factory/dlgfact.cxx2
-rw-r--r--cui/source/inc/splitcelldlg.hxx20
3 files changed, 49 insertions, 8 deletions
diff --git a/cui/source/dialogs/splitcelldlg.cxx b/cui/source/dialogs/splitcelldlg.cxx
index 58d6b7e4f8a0..f58b8cc0ece5 100644
--- a/cui/source/dialogs/splitcelldlg.cxx
+++ b/cui/source/dialogs/splitcelldlg.cxx
@@ -74,15 +74,40 @@ tools::Long SvxSplitTableDlg::GetCount() const
return m_xCountEdit->get_value();
}
-short SvxSplitTableDlg::Execute()
-{
- return run();
-}
-
void SvxSplitTableDlg::SetSplitVerticalByDefault()
{
if( mnMaxVertical >= 2 )
m_xVertBox->set_active(true); // tdf#60242
}
+bool SvxAbstractSplitTableDialog_Impl::IsHorizontal() const
+{
+ return m_xDlg->IsHorizontal();
+}
+
+bool SvxAbstractSplitTableDialog_Impl::IsProportional() const
+{
+ return m_xDlg->IsProportional();
+}
+
+tools::Long SvxAbstractSplitTableDialog_Impl::GetCount() const
+{
+ return m_xDlg->GetCount();
+}
+
+void SvxAbstractSplitTableDialog_Impl::SetSplitVerticalByDefault()
+{
+ m_xDlg->SetSplitVerticalByDefault();
+}
+
+short SvxAbstractSplitTableDialog_Impl::Execute()
+{
+ return m_xDlg->run();
+}
+
+bool SvxAbstractSplitTableDialog_Impl::StartExecuteAsync(AsyncContext& rContext)
+{
+ return weld::DialogController::runAsync(m_xDlg, rContext.maEndDialogFn);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index ea2675694f07..e43b027602c4 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -1602,7 +1602,7 @@ VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSvxFormatCellsDia
VclPtr<SvxAbstractSplitTableDialog> AbstractDialogFactory_Impl::CreateSvxSplitTableDialog(weld::Window* pParent, bool bIsTableVertical, tools::Long nMaxVertical)
{
- return VclPtr<SvxSplitTableDlg>::Create( pParent, bIsTableVertical, nMaxVertical, 99 );
+ return VclPtr<SvxAbstractSplitTableDialog_Impl>::Create( std::make_shared<SvxSplitTableDlg>(pParent, bIsTableVertical, nMaxVertical, 99 ));
}
std::shared_ptr<SvxAbstractNewTableDialog> AbstractDialogFactory_Impl::CreateSvxNewTableDialog(weld::Window* pParent)
diff --git a/cui/source/inc/splitcelldlg.hxx b/cui/source/inc/splitcelldlg.hxx
index 88b1de85c9a7..5085c1938917 100644
--- a/cui/source/inc/splitcelldlg.hxx
+++ b/cui/source/inc/splitcelldlg.hxx
@@ -21,7 +21,7 @@
#include <svx/svxdlg.hxx>
#include <vcl/weld.hxx>
-class SvxSplitTableDlg : public SvxAbstractSplitTableDialog, public weld::GenericDialogController
+class SvxSplitTableDlg : public weld::GenericDialogController
{
private:
std::unique_ptr<weld::SpinButton> m_xCountEdit;
@@ -37,12 +37,28 @@ public:
DECL_LINK(ClickHdl, weld::Button&, void);
+ virtual bool IsHorizontal() const;
+ virtual bool IsProportional() const;
+ virtual tools::Long GetCount() const;
+
+ virtual void SetSplitVerticalByDefault();
+};
+
+class SvxAbstractSplitTableDialog_Impl : public SvxAbstractSplitTableDialog
+{
+ std::shared_ptr<SvxSplitTableDlg> m_xDlg;
+
+public:
+ SvxAbstractSplitTableDialog_Impl(std::shared_ptr<SvxSplitTableDlg> pDlg) : m_xDlg(std::move(pDlg)) {}
+
virtual bool IsHorizontal() const override;
virtual bool IsProportional() const override;
virtual tools::Long GetCount() const override;
- virtual short Execute() override;
virtual void SetSplitVerticalByDefault() override;
+
+ virtual short Execute() override;
+ virtual bool StartExecuteAsync(AsyncContext& rContext) override;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */