[Libreoffice-commits] core.git: Branch 'distro/collabora/co-2021' - desktop/source include/LibreOfficeKit
Henry Castro (via logerrit)
logerrit at kemper.freedesktop.org
Mon Apr 5 12:32:20 UTC 2021
desktop/source/lib/init.cxx | 18 +++++++++++++++++-
include/LibreOfficeKit/LibreOfficeKit.h | 5 +++++
include/LibreOfficeKit/LibreOfficeKit.hxx | 11 +++++++++++
3 files changed, 33 insertions(+), 1 deletion(-)
New commits:
commit dea03310cc257514ceaabc732461e9e976ba60ed
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Dec 25 17:30:42 2020 -0400
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Mon Apr 5 14:31:48 2021 +0200
lok: add lo_sendDialogEvent to post dialog events
When the "Macro Security Warning" is shown in client side,
the model/view/controller are not created yet. It is necessary
to create a function to posts a dialog event.
Change-Id: I2bfc9edecc708dc79da575ea515e3144e78c10e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108293
Tested-by: Jenkins
Reviewed-by: Henry Castro <hcastro at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108678
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113599
Tested-by: Tor Lillqvist <tml at collabora.com>
Reviewed-by: Tor Lillqvist <tml at collabora.com>
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index a302b5d46f76..6c4be59af5d6 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2087,6 +2087,10 @@ static void lo_runLoop(LibreOfficeKit* pThis,
LibreOfficeKitWakeCallback pWakeCallback,
void* pData);
+static void lo_sendDialogEvent(LibreOfficeKit* pThis,
+ unsigned long long int nLOKWindowId,
+ const char* pArguments);
+
LibLibreOffice_Impl::LibLibreOffice_Impl()
: m_pOfficeClass( gOfficeClass.lock() )
, maThread(nullptr)
@@ -2111,6 +2115,7 @@ LibLibreOffice_Impl::LibLibreOffice_Impl()
m_pOfficeClass->runMacro = lo_runMacro;
m_pOfficeClass->signDocument = lo_signDocument;
m_pOfficeClass->runLoop = lo_runLoop;
+ m_pOfficeClass->sendDialogEvent = lo_sendDialogEvent;
gOfficeClass = m_pOfficeClass;
}
@@ -3710,7 +3715,7 @@ public:
} // anonymous namespace
-static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+static void lcl_sendDialogEvent(unsigned long long int nWindowId, const char* pArguments)
{
SolarMutexGuard aGuard;
@@ -3793,6 +3798,17 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
pWindow->Resize();
}
+
+static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+{
+ lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
+static void lo_sendDialogEvent(LibreOfficeKit* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+{
+ lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pCommand, const char* pArguments, bool bNotifyWhenFinished)
{
comphelper::ProfileZone aZone("doc_postUnoCommand");
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
index f4244def5a6b..2279260d0e90 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -110,6 +110,11 @@ struct _LibreOfficeKitClass
LibreOfficeKitPollCallback pPollCallback,
LibreOfficeKitWakeCallback pWakeCallback,
void* pData);
+
+ /// @see lok::Office::sendDialogEvent
+ void (*sendDialogEvent) (LibreOfficeKit* pThis,
+ unsigned long long int nLOKWindowId,
+ const char* pArguments);
};
#define LIBREOFFICEKIT_DOCUMENT_HAS(pDoc,member) LIBREOFFICEKIT_HAS_MEMBER(LibreOfficeKitDocumentClass,member,(pDoc)->pClass->nSize)
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx
index 23b79c742c09..962270452e20 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
@@ -979,6 +979,17 @@ public:
{
mpThis->pClass->runLoop(mpThis, pPollCallback, pWakeCallback, pData);
}
+
+ /**
+ * Posts a dialog event for the window with given id
+ *
+ * @param nWindowId id of the window to notify
+ * @param pArguments arguments of the event.
+ */
+ void sendDialogEvent(unsigned long long int nWindowId, const char* pArguments = NULL)
+ {
+ mpThis->pClass->sendDialogEvent(mpThis, nWindowId, pArguments);
+ }
};
/// Factory method to create a lok::Office instance.
More information about the Libreoffice-commits
mailing list