diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-03-18 09:46:03 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-16 10:40:40 +0200 |
commit | 1762e6819b0d9f10b701728b8e183e87c1400137 (patch) | |
tree | 4c79bc4d766a9656ac1ac28e8a74b578c111872c /vcl | |
parent | f65d93f9b475402a10eb89bae0685d300f09fff9 (diff) |
jsdialog: regenerate JSON on dialog collapse
Change-Id: I407979546a7610630e8109b57db8c98c956baaee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97735
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98826
Tested-by: Jenkins
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/jsdialog/jsdialogbuilder.hxx | 10 | ||||
-rw-r--r-- | vcl/jsdialog/jsdialogbuilder.cxx | 22 |
2 files changed, 30 insertions, 2 deletions
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index d2d77342422a..1622cc0f6ade 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -129,6 +129,16 @@ public: } }; +class VCL_DLLPUBLIC JSDialog : public JSWidget<SalInstanceDialog, ::Dialog> +{ +public: + JSDialog(VclPtr<vcl::Window> aOwnedToplevel, ::Dialog* pDialog, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); + + virtual void collapse(weld::Widget* pEdit, weld::Widget* pButton) override; + virtual void undo_collapse() override; +}; + class JSLabel : public JSWidget<SalInstanceLabel, FixedText> { public: diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index aed000927a2a..e3245a40a73b 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -163,8 +163,8 @@ std::unique_ptr<weld::Dialog> JSInstanceBuilder::weld_dialog(const OString& id, InsertWindowToMap(m_nWindowId); - std::unique_ptr<weld::Dialog> pRet(pDialog ? new SalInstanceDialog(pDialog, this, false) - : nullptr); + std::unique_ptr<weld::Dialog> pRet( + pDialog ? new JSDialog(m_aOwnedToplevel, pDialog, this, false) : nullptr); if (bTakeOwnership && pDialog) { assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); @@ -354,6 +354,24 @@ weld::MessageDialog* JSInstanceBuilder::CreateMessageDialog(weld::Widget* pParen return new JSMessageDialog(xMessageDialog, nullptr, true); } +JSDialog::JSDialog(VclPtr<vcl::Window> aOwnedToplevel, ::Dialog* pDialog, + SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : JSWidget<SalInstanceDialog, ::Dialog>(aOwnedToplevel, pDialog, pBuilder, bTakeOwnership) +{ +} + +void JSDialog::collapse(weld::Widget* pEdit, weld::Widget* pButton) +{ + SalInstanceDialog::collapse(pEdit, pButton); + notifyDialogState(); +} + +void JSDialog::undo_collapse() +{ + SalInstanceDialog::undo_collapse(); + notifyDialogState(); +} + JSLabel::JSLabel(VclPtr<vcl::Window> aOwnedToplevel, FixedText* pLabel, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : JSWidget<SalInstanceLabel, FixedText>(aOwnedToplevel, pLabel, pBuilder, bTakeOwnership) |