[Libreoffice-commits] online.git: 2 commits - loolwsd/LOOLSession.cpp
Miklos Vajna
vmiklos at collabora.co.uk
Thu Nov 19 01:10:37 PST 2015
loolwsd/LOOLSession.cpp | 43 ++++++++++++++++++++++++++++++++++---------
1 file changed, 34 insertions(+), 9 deletions(-)
New commits:
commit 57199a36cdc2ad802f8d7e944e6fc4ae830fab26
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Nov 19 10:08:48 2015 +0100
loolwsd: route rendering options to initializeForRendering()
diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index a8d814e..efe4cf4 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -1026,7 +1026,16 @@ bool ChildProcessSession::loadDocument(const char *buffer, int length, StringTok
return false;
}
- _loKitDocument->pClass->initializeForRendering(_loKitDocument, nullptr);
+ std::string renderingOptions;
+ if (!_docOptions.empty())
+ {
+ Poco::JSON::Parser parser;
+ Poco::Dynamic::Var var = parser.parse(_docOptions);
+ Poco::JSON::Object::Ptr object = var.extract<Poco::JSON::Object::Ptr>();
+ renderingOptions = object->get("rendering").toString();
+ }
+
+ _loKitDocument->pClass->initializeForRendering(_loKitDocument, (renderingOptions.empty() ? nullptr : renderingOptions.c_str()));
if ( _docType != "text" && part != -1)
{
commit 93c0d29c5c41453652055fb793711c743d6ebec7
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Nov 19 09:29:58 2015 +0100
loolwsd: accept load options in ChildProcessSession::loadDocument()
diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index 41b89f3..a8d814e 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -682,7 +682,7 @@ void MasterProcessSession::dispatchChild()
_peer = childSession;
childSession->_peer = shared_from_this();
- std::string loadRequest = "load" + (_loadPart >= 0 ? " part=" + std::to_string(_loadPart) : "") + " url=" + _docURL;
+ std::string loadRequest = "load" + (_loadPart >= 0 ? " part=" + std::to_string(_loadPart) : "") + " url=" + _docURL + (!_docOptions.empty() ? " options=" + _docOptions : "");
forwardToPeer(loadRequest.c_str(), loadRequest.size());
}
@@ -961,21 +961,37 @@ extern "C"
bool ChildProcessSession::loadDocument(const char *buffer, int length, StringTokenizer& tokens)
{
int part = -1;
- if (tokens.count() < 2 || tokens.count() > 4)
+ if (tokens.count() < 2)
{
sendTextFrame("error: cmd=load kind=syntax");
return false;
}
- if (tokens.count() > 2 && tokens[2].find("url=") == 0)
+ // First token is the "load" command itself.
+ size_t offset = 1;
+ if (tokens.count() > 2 && tokens[1].find("part=") == 0)
{
getTokenInteger(tokens[1], "part", part);
- _docURL = tokens[2].substr(strlen("url="));
+ ++offset;
+ }
+
+ for (size_t i = offset; i < tokens.count(); ++i)
+ {
+ if (tokens[i].find("url=") == 0)
+ {
+ _docURL = tokens[i].substr(strlen("url="));
+ ++offset;
+ }
+ }
+
+ if (tokens.count() > offset)
+ {
+ if (getTokenString(tokens[offset], "options", _docOptions))
+ {
+ if (tokens.count() > offset + 1)
+ _docOptions += Poco::cat(std::string(" "), tokens.begin() + offset + 1, tokens.end());
+ }
}
- else if (tokens[1].find("url=") == 0)
- _docURL = tokens[1].substr(strlen("url="));
- else
- _docURL = tokens[1];
URI aUri;
try
More information about the Libreoffice-commits
mailing list