[Libreoffice-commits] core.git: Branch 'feature/jsdialogs' - include/LibreOfficeKit sfx2/source
Szymon Kłos (via logerrit)
logerrit at kemper.freedesktop.org
Tue Sep 24 15:31:01 UTC 2019
include/LibreOfficeKit/LibreOfficeKitEnums.h | 8 ++++++++
sfx2/source/sidebar/Deck.cxx | 13 +++++++++++++
2 files changed, 21 insertions(+)
New commits:
commit 6301b0ca1132f88c14627fae68ee3460ddf546d2
Author: Szymon Kłos <szymon.klos at collabora.com>
AuthorDate: Tue Sep 24 17:29:53 2019 +0200
Commit: Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Sep 24 17:29:53 2019 +0200
jsdialogs: send JSON to the client
Change-Id: If43a774e1e3a4bff4a8ec862f0091d60477090d4
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 44bf83eab205..9a282a2e5a27 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -685,6 +685,12 @@ typedef enum
* cell.
*/
LOK_CALLBACK_TABLE_SELECTED = 44,
+
+ /**
+ * Callback related to native dialogs generated in JavaScript from
+ * the description.
+ */
+ LOK_CALLBACK_JSDIALOG = 45,
}
LibreOfficeKitCallbackType;
@@ -803,6 +809,8 @@ static inline const char* lokCallbackTypeToString(int nType)
return "LOK_CALLBACK_CELL_AUTO_FILL_AREA";
case LOK_CALLBACK_TABLE_SELECTED:
return "LOK_CALLBACK_TABLE_SELECTED";
+ case LOK_CALLBACK_JSDIALOG:
+ return "LOK_CALLBACK_JSDIALOG";
}
assert(!"Unknown LibreOfficeKitCallbackType type.");
diff --git a/sfx2/source/sidebar/Deck.cxx b/sfx2/source/sidebar/Deck.cxx
index d00a214e0fed..5bc09fdfc2f5 100644
--- a/sfx2/source/sidebar/Deck.cxx
+++ b/sfx2/source/sidebar/Deck.cxx
@@ -38,6 +38,8 @@
#include <vcl/IDialogRenderable.hxx>
#include <tools/svborder.hxx>
#include <sal/log.hxx>
+#include <boost/property_tree/json_parser.hpp>
+#include <LibreOfficeKit/LibreOfficeKitEnums.h>
using namespace css;
using namespace css::uno;
@@ -201,6 +203,17 @@ void Deck::Resize()
aItems.emplace_back(std::make_pair("position", Point(GetOutOffXPixel(), GetOutOffYPixel()).toString()));
aItems.emplace_back(std::make_pair("size", GetSizePixel().toString()));
pNotifier->notifyWindow(GetLOKWindowId(), "size_changed", aItems);
+
+ try
+ {
+ std::stringstream aStream;
+ boost::property_tree::write_json(aStream, DumpAsPropertyTree());
+ pNotifier->libreOfficeKitViewCallback(LOK_CALLBACK_JSDIALOG, aStream.str().c_str());
+ }
+ catch(boost::property_tree::json_parser::json_parser_error& rError)
+ {
+ SAL_WARN("sfx.sidebar", rError.message());
+ }
}
}
More information about the Libreoffice-commits
mailing list