loolwsd/MessageQueue.cpp | 30 +----------------------------- loolwsd/MessageQueue.hpp | 39 ++++++++++++--------------------------- 2 files changed, 13 insertions(+), 56 deletions(-)
New commits: commit d9c90e30fd9f02a7287183d2b58195f547fb92da Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Sep 25 12:38:17 2016 -0400 loolwsd: move the editing view to the front Swapping the views makes the current front go to some random location, which isn't fair. Change-Id: I147aceb6bc5e5eb751a86d557d72ecdedb34af23 Reviewed-on: https://gerrit.libreoffice.org/29286 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/MessageQueue.hpp b/loolwsd/MessageQueue.hpp index 07df61d..0edbe2d 100644 --- a/loolwsd/MessageQueue.hpp +++ b/loolwsd/MessageQueue.hpp @@ -97,22 +97,24 @@ public: _cursorPositions[viewId] = cursorPosition; } - auto view = std::find(_viewOrder.begin(), _viewOrder.end(), viewId); + // Move to front, so the current front view + // becomes the second. + const auto view = std::find(_viewOrder.begin(), _viewOrder.end(), viewId); if (view != _viewOrder.end()) { - std::swap(_viewOrder.front(), *view); - } - else - { - _viewOrder.push_front(viewId); + _viewOrder.erase(view); } + + _viewOrder.push_front(viewId); } void removeCursorPosition(int viewId) { - auto it = std::find(_viewOrder.begin(), _viewOrder.end(), viewId); - if (it != _viewOrder.end()) - _viewOrder.erase(it); + const auto view = std::find(_viewOrder.begin(), _viewOrder.end(), viewId); + if (view != _viewOrder.end()) + { + _viewOrder.erase(view); + } _cursorPositions.erase(viewId); } commit 552a8a6f9b89196e40f37ec23a782a745a43de2e Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sun Sep 25 11:50:01 2016 -0400 loolwsd: removed BasicTileQueue which served no purpose Change-Id: If0a768dcc71e6a9957f52abe1f44b242ab3c836f Reviewed-on: https://gerrit.libreoffice.org/29285 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/MessageQueue.cpp b/loolwsd/MessageQueue.cpp index 01f06ac..da1bfba 100644 --- a/loolwsd/MessageQueue.cpp +++ b/loolwsd/MessageQueue.cpp @@ -74,34 +74,6 @@ void MessageQueue::clear_impl() _queue.clear(); } -void BasicTileQueue::put_impl(const Payload& value) -{ - const auto msg = std::string(&value[0], value.size()); - if (msg == "canceltiles") - { - Log::error("Unexpected canceltiles!"); - - // remove all the existing tiles from the queue - _queue.erase(std::remove_if(_queue.begin(), _queue.end(), - [](const Payload& v) - { - // must not remove the tiles with 'id=', they are special, used - // eg. for previews etc. - const auto tmp = std::string(&v[0], v.size()); - return (tmp.compare(0, 5, "tile ") == 0) && (tmp.find("id=") == std::string::npos); - } - ), - _queue.end()); - - // put the "canceltiles" in front of other messages - _queue.push_front(value); - } - else - { - MessageQueue::put_impl(value); - } -} - void TileQueue::put_impl(const Payload& value) { const auto msg = std::string(value.data(), value.size()); @@ -163,7 +135,7 @@ void TileQueue::put_impl(const Payload& value) } } - BasicTileQueue::put_impl(value); + MessageQueue::put_impl(value); } bool TileQueue::priority(const std::string& tileMsg) diff --git a/loolwsd/MessageQueue.hpp b/loolwsd/MessageQueue.hpp index 11bad5f..07df61d 100644 --- a/loolwsd/MessageQueue.hpp +++ b/loolwsd/MessageQueue.hpp @@ -66,26 +66,9 @@ protected: std::deque<Payload> _queue; }; -/** MessageQueue specialized for handling of tiles. - -Used for basic handling of incoming requests, only can remove tiles when it -gets a "canceltiles" command. -*/ -class BasicTileQueue : public MessageQueue -{ -protected: - virtual void put_impl(const Payload& value) override; -}; - /** MessageQueue specialized for priority handling of tiles. - -This class builds on BasicTileQueue, and additonaly provides de-duplication -of tile requests. - -TODO: we'll need to add reordering of the tiles at some stage here too - so -that the ones closest to the cursor position are returned first. */ -class TileQueue : public BasicTileQueue +class TileQueue : public MessageQueue { private: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits