[Libreoffice-commits] core.git: vcl/inc vcl/jsdialog
Henry Castro (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jan 4 10:56:03 UTC 2021
vcl/inc/jsdialog/jsdialogbuilder.hxx | 1 +
vcl/jsdialog/jsdialogbuilder.cxx | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+)
New commits:
commit aaba9035ec3ec9b33101d9fab6fcf0b2720e5f17
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Dec 25 13:23:40 2020 -0400
Commit: Henry Castro <hcastro at collabora.com>
CommitDate: Mon Jan 4 11:55:26 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 <hcastro at collabora.com>
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 8be7950b5bc2..8574124d7de4 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -151,6 +151,7 @@ public:
const OUString& rUIFile);
virtual ~JSInstanceBuilder() override;
+ virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OString& id) override;
virtual std::unique_ptr<weld::Dialog> weld_dialog(const OString& id) override;
virtual std::unique_ptr<weld::Label> weld_label(const OString& id) override;
virtual std::unique_ptr<weld::Button> weld_button(const OString& id) override;
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 1bef2653ae11..f0fb911d8f23 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -467,6 +467,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)
+{
+ std::unique_ptr<weld::MessageDialog> pRet;
+ ::MessageDialog* pMessageDialog = m_xBuilder->get<::MessageDialog>(id);
+
+ if (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)
{
::FixedText* pLabel = m_xBuilder->get<FixedText>(id);
More information about the Libreoffice-commits
mailing list