summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-03-18 09:46:03 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2020-07-16 10:40:40 +0200
commit1762e6819b0d9f10b701728b8e183e87c1400137 (patch)
tree4c79bc4d766a9656ac1ac28e8a74b578c111872c /vcl
parentf65d93f9b475402a10eb89bae0685d300f09fff9 (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.hxx10
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx22
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)