loolwsd/ChildProcessSession.cpp | 9 +++----- loolwsd/LOKitHelper.hpp | 42 ++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 21 deletions(-)
New commits: commit 1a896de0a771e7bba3ceaf919490ac34d7a4da62 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sat May 7 23:27:15 2016 -0400 loolwsd: getStatus and status formatting cleanup Change-Id: Ifd842d7ded1be1f4c89d8371790f19a3909c9729 Reviewed-on: https://gerrit.libreoffice.org/24744 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/ChildProcessSession.cpp b/loolwsd/ChildProcessSession.cpp index 42dc2a6..cb4b16c 100644 --- a/loolwsd/ChildProcessSession.cpp +++ b/loolwsd/ChildProcessSession.cpp @@ -654,15 +654,14 @@ bool ChildProcessSession::getStatus(const char* /*buffer*/, int /*length*/) if (_multiView) _loKitDocument->pClass->setView(_loKitDocument, _viewId); - const std::string status = "status: " + LOKitHelper::documentStatus(_loKitDocument); - StringTokenizer tokens(status, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM); - if (!getTokenString(tokens[1], "type", _docType)) + const auto status = LOKitHelper::documentStatus(_loKitDocument); + if (status.empty()) { - Log::error("failed to get document type from status [" + status + "]."); + Log::error("Failed to get document status."); return false; } - sendTextFrame(status); + sendTextFrame("status: " + status); return true; } diff --git a/loolwsd/LOKitHelper.hpp b/loolwsd/LOKitHelper.hpp index 84b0e61..e621e67 100644 --- a/loolwsd/LOKitHelper.hpp +++ b/loolwsd/LOKitHelper.hpp @@ -11,6 +11,7 @@ #define INCLUDED_LOKITHELPER_HPP #include <string> +#include <sstream> #define LOK_USE_UNSTABLE_API #include <LibreOfficeKit/LibreOfficeKit.h> @@ -98,27 +99,36 @@ namespace LOKitHelper inline std::string documentStatus(LibreOfficeKitDocument *loKitDocument) { - std::string typeString(documentTypeToString(static_cast<LibreOfficeKitDocumentType>(loKitDocument->pClass->getDocumentType(loKitDocument)))); - long width, height, parts; + const auto type = static_cast<LibreOfficeKitDocumentType>(loKitDocument->pClass->getDocumentType(loKitDocument)); + + const auto parts = loKitDocument->pClass->getParts(loKitDocument); + std::ostringstream oss; + oss << " type=" << documentTypeToString(type) + << " parts=" << parts + << " current=" << loKitDocument->pClass->getPart(loKitDocument); + + long width, height; loKitDocument->pClass->getDocumentSize(loKitDocument, &width, &height); - parts = loKitDocument->pClass->getParts(loKitDocument); - std::string status = - ("type=" + typeString + " " - "parts=" + std::to_string(parts) + " " - "current=" + std::to_string(loKitDocument->pClass->getPart(loKitDocument)) + " " - "width=" + std::to_string(width) + " " - "height=" + std::to_string(height)); - if (typeString == "spreadsheet" || typeString == "presentation") + oss << " width=" << width + << " height=" << height; + + if (type == LOK_DOCTYPE_SPREADSHEET || type == LOK_DOCTYPE_PRESENTATION) { - for (int i = 0; i < parts; i++) + for (auto i = 0; i < parts; ++i) { - status += "\n"; - status += typeString == "presentation" ? - loKitDocument->pClass->getPartHash(loKitDocument, i): - loKitDocument->pClass->getPartName(loKitDocument, i); + oss << "\n"; + if (type == LOK_DOCTYPE_PRESENTATION) + { + oss << loKitDocument->pClass->getPartHash(loKitDocument, i); + } + else + { + oss << loKitDocument->pClass->getPartName(loKitDocument, i); + } } } - return status; + + return oss.str(); } }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits