[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - vcl/inc vcl/jsdialog

Henry Castro (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 19 02:23:31 UTC 2021


 vcl/inc/jsdialog/jsdialogbuilder.hxx |    2 ++
 vcl/jsdialog/jsdialogbuilder.cxx     |   26 ++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

New commits:
commit 2ce61a9b9becc5d730de1fd18460585f4cc8d558
Author:     Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Dec 25 13:23:40 2020 -0400
Commit:     Henry Castro <hcastro at 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 <hcastro at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109145
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at 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);


More information about the Libreoffice-commits mailing list