From
52209badc8e769e50aa3019b63689dda0e79e9d0 Mon Sep 17 00:00:00 2001
Bug: https://bugs.quassel-irc.org/issues/1544
Bug-Ubuntu: https://bugs.launchpad.net/quassel/+bug/
1885436
Origin: upstream, https://github.com/quassel/quassel/pull/518
Origin: upstream, https://github.com/quassel/quassel/commit/
52209badc8e769e50aa3019b63689dda0e79e9d0
Qt 5.14 deprecated the explicit functions for converting between
QSet and QList, preferring instead the use of range-based ctors.
Unfortunately, those ctors were only added in Qt 5.14, so we can't
use them when compiling against older versions.
Add a util function for QList->QSet to keep the version check in
a single place. Replace the other direction by using QSet::values().
In some cases, conversions could be avoided altogether, or an STL
container be used easily, so do that.
Gbp-Pq: Topic qt514
Gbp-Pq: Name 0004-qa-Avoid-deprecation-warnings-for-QList-QSet-convers.patch
Q_ASSERT(backlogManager);
}
-
-void BacklogRequester::setWaitingBuffers(const QSet<BufferId> &buffers)
-{
- _buffersWaiting = buffers;
- _totalBuffers = _buffersWaiting.count();
-}
-
-
-void BacklogRequester::addWaitingBuffer(BufferId buffer)
+void BacklogRequester::setWaitingBuffers(const BufferIdList& buffers)
{
- _buffersWaiting << buffer;
- _totalBuffers++;
+ _buffersWaiting = {buffers.begin(), buffers.end()};
+ _totalBuffers = int(_buffersWaiting.size());
}
bool BacklogRequester::buffer(BufferId bufferId, const MessageList &messages)
{
_bufferedMessages << messages;
- _buffersWaiting.remove(bufferId);
- return !_buffersWaiting.isEmpty();
+ _buffersWaiting.erase(bufferId);
+ return !_buffersWaiting.empty();
}
{
QSet<BufferId> bufferIds = Client::bufferViewOverlay()->bufferIds();
bufferIds += Client::bufferViewOverlay()->tempRemovedBufferIds();
- return bufferIds.toList();
+ return bufferIds.values();
}
void BacklogRequester::flushBuffer()
{
- if (!_buffersWaiting.isEmpty()) {
- qWarning() << Q_FUNC_INFO << "was called before all backlog was received:"
- << _buffersWaiting.count() << "buffers are waiting.";
+ if (!_buffersWaiting.empty()) {
+ qWarning() << Q_FUNC_INFO << "was called before all backlog was received:" << _buffersWaiting.size() << "buffers are waiting.";
}
_bufferedMessages.clear();
_totalBuffers = 0;
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef BACKLOGREQUESTER_H
-#define BACKLOGREQUESTER_H
+#pragma once
+
+#include <set>
#include <QList>
inline RequesterType type() { return _requesterType; }
inline const QList<Message> &bufferedMessages() { return _bufferedMessages; }
- inline int buffersWaiting() const { return _buffersWaiting.count(); }
+ inline int buffersWaiting() const { return int(_buffersWaiting.size()); }
inline int totalBuffers() const { return _totalBuffers; }
bool buffer(BufferId bufferId, const MessageList &messages); //! returns false if it was the last missing backlogpart
protected:
BufferIdList allBufferIds() const;
- inline void setWaitingBuffers(const QList<BufferId> &buffers) { setWaitingBuffers(buffers.toSet()); }
- void setWaitingBuffers(const QSet<BufferId> &buffers);
- void addWaitingBuffer(BufferId buffer);
+ void setWaitingBuffers(const BufferIdList& buffers);
ClientBacklogManager *backlogManager;
RequesterType _requesterType;
MessageList _bufferedMessages;
int _totalBuffers;
- QSet<BufferId> _buffersWaiting;
+ std::set<BufferId> _buffersWaiting;
};
int _limit;
int _additional;
};
-
-
-#endif //BACKLOGREQUESTER_H
#include "clientbacklogmanager.h"
#include "clientbufferviewmanager.h"
#include "networkmodel.h"
+#include "util.h"
const int BufferViewOverlay::_updateEventId = QEvent::registerEventType();
if (Client::networkModel()->networkId(bufferId) == config->networkId())
buffers << bufferId;
}
- foreach(BufferId bufferId, config->temporarilyRemovedBuffers().toList()) {
+ for (BufferId bufferId : config->temporarilyRemovedBuffers()) {
if (Client::networkModel()->networkId(bufferId) == config->networkId())
buffers << bufferId;
}
}
else {
- buffers = BufferIdList::fromSet(config->bufferList().toSet() + config->temporarilyRemovedBuffers());
+ buffers = (toQSet(config->bufferList()) + config->temporarilyRemovedBuffers()).values();
}
Client::backlogManager()->checkForBacklog(buffers);
}
// we have to apply several filters before we can add a buffer to a category (visible, removed, ...)
buffers += filterBuffersByConfig(config->bufferList(), config);
- tempRemovedBuffers += filterBuffersByConfig(config->temporarilyRemovedBuffers().toList(), config);
+ tempRemovedBuffers += filterBuffersByConfig(config->temporarilyRemovedBuffers().values(), config);
removedBuffers += config->removedBuffers();
}
// prune the sets from overlap
- QSet<BufferId> availableBuffers = Client::networkModel()->allBufferIds().toSet();
+ QSet<BufferId> availableBuffers = toQSet(Client::networkModel()->allBufferIds());
buffers.intersect(availableBuffers);
#include "backlogsettings.h"
#include "backlogrequester.h"
#include "client.h"
+#include "util.h"
#include <ctime>
BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &bufferIds)
{
BufferIdList newBuffers;
- QSet<BufferId> availableBuffers = Client::networkModel()->allBufferIds().toSet();
- foreach(BufferId bufferId, bufferIds) {
+ QSet<BufferId> availableBuffers = toQSet(Client::networkModel()->allBufferIds());
+ foreach (BufferId bufferId, bufferIds) {
if (_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId))
continue;
newBuffers << bufferId;
#include "messagemodel.h"
#include "networkmodel.h"
#include "clientignorelistmanager.h"
+#include "util.h"
MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent)
: QSortFilterProxyModel(parent),
MessageFilter::MessageFilter(MessageModel *source, const QList<BufferId> &buffers, QObject *parent)
: QSortFilterProxyModel(parent),
- _validBuffers(buffers.toSet()),
+ _validBuffers(toQSet(buffers)),
_messageTypeFilter(0)
{
init();
if (_validBuffers.isEmpty())
return "*";
- QList<BufferId> bufferIds = _validBuffers.toList();
+ QList<BufferId> bufferIds = _validBuffers.values();
qSort(bufferIds);
QStringList bufferIdStrings;
void IrcUser::quit()
{
- QList<IrcChannel *> channels = _channels.toList();
+ QList<IrcChannel*> channels = _channels.values();
_channels.clear();
foreach(IrcChannel *channel, channels) {
disconnect(channel, 0, this, 0);
#pragma once
#include <QList>
+#include <QSet>
#include <QString>
#include <QVariant>
}
+template<typename T>
+QSet<T> toQSet(const QList<T>& list)
+{
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+ return list.toSet();
+#else
+ return {list.begin(), list.end()};
+#endif
+}
+
template<typename T>
QList<T> fromVariantList(const QVariantList &variants)
{
#include "coresession.h"
#include "corenetwork.h"
#include "ircchannel.h"
+#include "util.h"
class PurgeEvent : public QEvent
{
actualBuffers << bufferInfo.bufferId();
}
- QSet<BufferId> storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet();
+ QSet<BufferId> storedIds = toQSet(lastSeenBufferIds()) + toQSet(markerLineBufferIds());
foreach(BufferId bufferId, storedIds) {
if (!actualBuffers.contains(bufferId)) {
BufferSyncer::removeBuffer(bufferId);
#include "qtui.h"
#include "qtuistyle.h"
#include "clientignorelistmanager.h"
+#include "util.h"
#include "chatline.h"
QList<ChatLine *> ChatView::visibleChatLinesSorted(Qt::ItemSelectionMode mode) const
{
- QList<ChatLine *> result = visibleChatLines(mode).toList();
+ QList<ChatLine *> result = visibleChatLines(mode).values();
qSort(result.begin(), result.end(), chatLinePtrLessThan);
return result;
}
if (line)
chatLines << line;
}
- foreach(ChatLine *line, QList<ChatLine *>(chatLines.toList())) {
+ foreach (ChatLine* line, chatLines) {
updateHighlights(line);
}
}
if (line)
chatLines << line;
}
- QList<ChatLine *> chatLineList(chatLines.toList());
- foreach(ChatLine *line, chatLineList) {
+ foreach (ChatLine* line, chatLines) {
repositionHighlights(line);
}
}
#include "bufferview.h"
#include "bufferviewfilter.h"
#include "chatviewsettings.h"
+#include "util.h"
#include <QVariant>
if (_configActive->bufferList().count() != settings["Buffers"].toList().count())
return true;
- QSet<BufferId> uiBufs = _configActive->bufferList().toSet();
+ QSet<BufferId> uiBufs = toQSet(_configActive->bufferList());
QSet<BufferId> settingsBufs;
foreach(QVariant v, settings["Buffers"].toList())
settingsBufs << v.value<BufferId>();
#include "graphicalui.h"
#include "networkmodel.h"
#include "uistyle.h"
+#include "util.h"
/*****************************************
return;
if (enable == false) {
- addBuffers(QList<BufferId>::fromSet(_toAdd));
+ addBuffers(_toAdd.values());
QSet<BufferId>::const_iterator iter;
for (iter = _toTempRemove.constBegin(); iter != _toTempRemove.constEnd(); ++iter) {
if (config()->temporarilyRemovedBuffers().contains(*iter))