X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorebuffersyncer.cpp;h=d7b3b5c4cdedd57a7c0e0bf5a0e7922e5de0a7c0;hp=a493160b7b9cc682b5982d7b70243b3009221db4;hb=52209badc8e769e50aa3019b63689dda0e79e9d0;hpb=c1cf157116de7fc3da96203aa6f03c38c7ebb650 diff --git a/src/core/corebuffersyncer.cpp b/src/core/corebuffersyncer.cpp index a493160b..d7b3b5c4 100644 --- a/src/core/corebuffersyncer.cpp +++ b/src/core/corebuffersyncer.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,10 +20,15 @@ #include "corebuffersyncer.h" +#include +#include +#include + #include "core.h" #include "corenetwork.h" #include "coresession.h" #include "ircchannel.h" +#include "util.h" class PurgeEvent : public QEvent { @@ -184,15 +189,14 @@ void CoreBufferSyncer::requestPurgeBufferIds() void CoreBufferSyncer::purgeBufferIds() { _purgeBuffers = false; - QList bufferInfos = Core::requestBuffers(_coreSession->user()); - QSet actualBuffers; - foreach (BufferInfo bufferInfo, bufferInfos) { - actualBuffers << bufferInfo.bufferId(); - } + auto bufferInfos = Core::requestBuffers(_coreSession->user()); + std::set actualBuffers; + std::transform(bufferInfos.cbegin(), bufferInfos.cend(), std::inserter(actualBuffers, actualBuffers.end()), + [](auto&& bufferInfo) { return bufferInfo.bufferId(); }); - QSet storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet(); + QSet storedIds = toQSet(lastSeenBufferIds()) + toQSet(markerLineBufferIds()); foreach (BufferId bufferId, storedIds) { - if (!actualBuffers.contains(bufferId)) { + if (actualBuffers.find(bufferId) == actualBuffers.end()) { BufferSyncer::removeBuffer(bufferId); } }