loleaflet/src/control/Control.ContextMenu.js | 4 +--- wsd/ClientSession.cpp | 4 +++- wsd/ClientSession.hpp | 10 +++++++++- wsd/DocumentBroker.cpp | 1 + 4 files changed, 14 insertions(+), 5 deletions(-)
New commits: commit c1dbc3a117ef77557db10c98a9d5ca43bb2065f6 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Thu Apr 20 00:08:13 2017 -0400 wsd: rely only on loaded sessions for saving If a session is not loaded, it might never do so. We should skip them when deciding whether to save using a disconnecting session or rely on another. This is to avoid failing to save when the remaining sessions never really load the document at all, and are therefore useless. Change-Id: I4e7127e12960a31e9f66e835bb63fb2347390711 Reviewed-on: https://gerrit.libreoffice.org/36710 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> (cherry picked from commit f326a058d41f6a0cc334f8458d98ca68cc40f189) Reviewed-on: https://gerrit.libreoffice.org/36713 Reviewed-by: Jan Holesovsky <ke...@collabora.com> Tested-by: Jan Holesovsky <ke...@collabora.com> diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp index 414f8b94..8be60603 100644 --- a/wsd/ClientSession.cpp +++ b/wsd/ClientSession.cpp @@ -37,7 +37,8 @@ ClientSession::ClientSession(const std::string& id, _docBroker(docBroker), _uriPublic(uriPublic), _isDocumentOwner(false), - _isAttached(false) + _isAttached(false), + _isLoaded(false) { const size_t curConnections = ++LOOLWSD::NumConnections; LOG_INF("ClientSession ctor [" << getName() << "], current number of connections: " << curConnections); @@ -631,6 +632,7 @@ bool ClientSession::handleKitToClientMessage(const char* buffer, const int lengt } else if (tokens[0] == "status:") { + setLoaded(); docBroker->setLoaded(); // Forward the status response to the client. diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp index 9cd67533..58ca0bb0 100644 --- a/wsd/ClientSession.hpp +++ b/wsd/ClientSession.hpp @@ -34,10 +34,14 @@ public: void setReadOnly() override; - /// Returns true if a document is loaded (i.e. we got status message). + /// Returns true if this session is added to a DocBroker. bool isAttached() const { return _isAttached; } void setAttached() { _isAttached = true; } + /// Returns true if this session has loaded a view (i.e. we got status message). + bool isLoaded() const { return _isLoaded; } + void setLoaded() { _isLoaded = true; } + const std::string getUserId() const { return _userId; } void setUserId(const std::string& userId) { _userId = userId; } void setUserName(const std::string& userName) { _userName = userName; } @@ -139,8 +143,12 @@ private: /// The socket to which the converted (saveas) doc is sent. std::shared_ptr<StreamSocket> _saveAsSocket; + /// If we are added to a DocBroker. bool _isAttached; + /// If we have loaded a view. + bool _isLoaded; + /// Wopi FileInfo object std::unique_ptr<WopiStorage::WOPIFileInfo> _wopiFileInfo; diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp index 1afd30f0..0c60326d 100644 --- a/wsd/DocumentBroker.cpp +++ b/wsd/DocumentBroker.cpp @@ -1216,6 +1216,7 @@ void DocumentBroker::destroyIfLastEditor(const std::string& id) for (const auto& it : _sessions) { if (it.second->getId() != id && + it.second->isLoaded() && !it.second->isReadOnly()) { // Found another editable. commit e51611f289ecbc64813dc019b2a9e015d6fa0a6a Author: Henry Castro <hcas...@collabora.com> Date: Wed Apr 19 20:14:00 2017 -0400 loleaflet: remove unnecessary spreadsheet context menu items It is replaced by interactive client side annotations Change-Id: Ib21926bea1cf125c82b9254c536d70ec94d95f91 Reviewed-on: https://gerrit.libreoffice.org/36706 Reviewed-by: Jan Holesovsky <ke...@collabora.com> Tested-by: Jan Holesovsky <ke...@collabora.com> diff --git a/loleaflet/src/control/Control.ContextMenu.js b/loleaflet/src/control/Control.ContextMenu.js index 4961f892..70f726f9 100644 --- a/loleaflet/src/control/Control.ContextMenu.js +++ b/loleaflet/src/control/Control.ContextMenu.js @@ -35,9 +35,7 @@ L.Control.ContextMenu = L.Control.extend({ 'UpdateCurIndex','RemoveTableOf', 'ReplyComment', 'DeleteComment', 'DeleteAuthor', 'DeleteAllNotes'], - spreadsheet: ['MergeCells', 'SplitCells', - 'InsertAnnotation', 'EditAnnotation', 'DeleteNote', 'ShowNote', 'HideNote', - 'RecalcPivotTable'], + spreadsheet: ['MergeCells', 'SplitCells', 'RecalcPivotTable'], presentation: [], drawing: [] _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits