vcl/inc/jsdialog/jsdialogbuilder.hxx | 2 ++ vcl/jsdialog/jsdialogbuilder.cxx | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+)
New commits: commit 2ce61a9b9becc5d730de1fd18460585f4cc8d558 Author: Henry Castro <hcas...@collabora.com> AuthorDate: Fri Dec 25 13:23:40 2020 -0400 Commit: Henry Castro <hcas...@collabora.com> CommitDate: Tue Jan 19 03:22:55 2021 +0100 jsdialog: override weld_message_dialog It is required to create the "Macro Security Warning" message dialog Change-Id: Ic802b6e4f1a2f8c5c294aa5432f3ad5274b5e105 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108289 Tested-by: Jenkins Reviewed-by: Henry Castro <hcas...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109145 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index bba976debfd3..8c9c7930b94f 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -151,6 +151,8 @@ public: const OUString& rUIFile); virtual ~JSInstanceBuilder() override; + virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OString& id, + bool bTakeOwnership = true) override; virtual std::unique_ptr<weld::Dialog> weld_dialog(const OString& id, bool bTakeOwnership = true) override; virtual std::unique_ptr<weld::Label> weld_label(const OString& id, diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index ceff10569e51..67cf8ec6fbac 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -459,6 +459,32 @@ std::unique_ptr<weld::Dialog> JSInstanceBuilder::weld_dialog(const OString& id, return pRet; } +std::unique_ptr<weld::MessageDialog> JSInstanceBuilder::weld_message_dialog(const OString& id, bool bTakeOwnership) +{ + std::unique_ptr<weld::MessageDialog> pRet; + ::MessageDialog* pMessageDialog = m_xBuilder->get<::MessageDialog>(id); + + if (bTakeOwnership && pMessageDialog) + { + m_nWindowId = pMessageDialog->GetLOKWindowId(); + pMessageDialog->SetLOKTunnelingState(false); + + InsertWindowToMap(m_nWindowId); + + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pMessageDialog); + m_xBuilder->drop_ownership(pMessageDialog); + + if (id == "MacroWarnMedium") + pMessageDialog->SetDisableIdleNotify(true); + } + + pRet.reset(pMessageDialog ? new JSMessageDialog(pMessageDialog, m_aOwnedToplevel, this, false) + : nullptr); + + return pRet; +} + std::unique_ptr<weld::Label> JSInstanceBuilder::weld_label(const OString& id, bool bTakeOwnership) { ::FixedText* pLabel = m_xBuilder->get<FixedText>(id); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits