/***************************************************************************
- * Copyright (C) 2005-2019 by the Quassel Project *
+ * Copyright (C) 2005-2022 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "clientbacklogmanager.h"
+#include <algorithm>
#include <ctime>
#include <QDebug>
#include "backlogrequester.h"
#include "backlogsettings.h"
#include "client.h"
+#include "util.h"
ClientBacklogManager::ClientBacklogManager(QObject* parent)
: BacklogManager(parent)
BacklogSettings settings;
switch (settings.requesterType()) {
+ case BacklogRequester::AsNeeded:
+ _requester = new AsNeededBacklogRequester(this);
+ break;
case BacklogRequester::GlobalUnread:
_requester = new GlobalUnreadBacklogRequester(this);
break;
BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList& bufferIds)
{
BufferIdList newBuffers;
- QSet<BufferId> availableBuffers = Client::networkModel()->allBufferIds().toSet();
+ QSet<BufferId> availableBuffers = toQSet(Client::networkModel()->allBufferIds());
foreach (BufferId bufferId, bufferIds) {
if (_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId))
continue;
void ClientBacklogManager::checkForBacklog(const QList<BufferId>& bufferIds)
{
- // we ingore all backlogrequests until we had our initial request
+ // we ignore all backlogrequests until we had our initial request
if (!_initBacklogRequested) {
return;
}
break;
case BacklogRequester::PerBufferUnread:
case BacklogRequester::PerBufferFixed:
+ case BacklogRequester::AsNeeded:
default: {
BufferIdList buffers = filterNewBufferIds(bufferIds);
if (!buffers.isEmpty())
clock_t start_t = clock();
if (sort)
- qSort(msgs);
+ std::sort(msgs.begin(), msgs.end());
Client::messageProcessor()->process(msgs);
clock_t end_t = clock();