From: Manuel Nickschas Date: Tue, 7 Jan 2020 19:31:31 +0000 (+0100) Subject: [PATCH 4/6] qa: Avoid deprecation warnings for QList/QSet conversions X-Git-Tag: archive/raspbian/1%0.13.1-4+rpi1^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c5970209ba3a4c3e46cdab2f1bb6da7df0fc9c29;p=quassel.git [PATCH 4/6] qa: Avoid deprecation warnings for QList/QSet conversions 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 --- diff --git a/src/client/backlogrequester.cpp b/src/client/backlogrequester.cpp index c3aef33..f26766a 100644 --- a/src/client/backlogrequester.cpp +++ b/src/client/backlogrequester.cpp @@ -35,26 +35,18 @@ BacklogRequester::BacklogRequester(bool buffering, RequesterType requesterType, Q_ASSERT(backlogManager); } - -void BacklogRequester::setWaitingBuffers(const QSet &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(); } @@ -62,15 +54,14 @@ BufferIdList BacklogRequester::allBufferIds() const { QSet 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; diff --git a/src/client/backlogrequester.h b/src/client/backlogrequester.h index a27a221..be9f7ef 100644 --- a/src/client/backlogrequester.h +++ b/src/client/backlogrequester.h @@ -18,8 +18,9 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef BACKLOGREQUESTER_H -#define BACKLOGREQUESTER_H +#pragma once + +#include #include @@ -47,7 +48,7 @@ public: inline RequesterType type() { return _requesterType; } inline const QList &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 @@ -59,9 +60,7 @@ public: protected: BufferIdList allBufferIds() const; - inline void setWaitingBuffers(const QList &buffers) { setWaitingBuffers(buffers.toSet()); } - void setWaitingBuffers(const QSet &buffers); - void addWaitingBuffer(BufferId buffer); + void setWaitingBuffers(const BufferIdList& buffers); ClientBacklogManager *backlogManager; @@ -70,7 +69,7 @@ private: RequesterType _requesterType; MessageList _bufferedMessages; int _totalBuffers; - QSet _buffersWaiting; + std::set _buffersWaiting; }; @@ -117,6 +116,3 @@ private: int _limit; int _additional; }; - - -#endif //BACKLOGREQUESTER_H diff --git a/src/client/bufferviewoverlay.cpp b/src/client/bufferviewoverlay.cpp index ea02af2..e79d4c8 100644 --- a/src/client/bufferviewoverlay.cpp +++ b/src/client/bufferviewoverlay.cpp @@ -27,6 +27,7 @@ #include "clientbacklogmanager.h" #include "clientbufferviewmanager.h" #include "networkmodel.h" +#include "util.h" const int BufferViewOverlay::_updateEventId = QEvent::registerEventType(); @@ -101,13 +102,13 @@ void BufferViewOverlay::addView(int viewId) 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); } @@ -224,12 +225,12 @@ void BufferViewOverlay::updateHelper() // 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 availableBuffers = Client::networkModel()->allBufferIds().toSet(); + QSet availableBuffers = toQSet(Client::networkModel()->allBufferIds()); buffers.intersect(availableBuffers); diff --git a/src/client/clientbacklogmanager.cpp b/src/client/clientbacklogmanager.cpp index 29bbde0..ee4ad98 100644 --- a/src/client/clientbacklogmanager.cpp +++ b/src/client/clientbacklogmanager.cpp @@ -24,6 +24,7 @@ #include "backlogsettings.h" #include "backlogrequester.h" #include "client.h" +#include "util.h" #include @@ -119,8 +120,8 @@ void ClientBacklogManager::requestInitialBacklog() BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList &bufferIds) { BufferIdList newBuffers; - QSet availableBuffers = Client::networkModel()->allBufferIds().toSet(); - foreach(BufferId bufferId, bufferIds) { + QSet availableBuffers = toQSet(Client::networkModel()->allBufferIds()); + foreach (BufferId bufferId, bufferIds) { if (_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId)) continue; newBuffers << bufferId; diff --git a/src/client/messagefilter.cpp b/src/client/messagefilter.cpp index 20b997b..2889b13 100644 --- a/src/client/messagefilter.cpp +++ b/src/client/messagefilter.cpp @@ -28,6 +28,7 @@ #include "messagemodel.h" #include "networkmodel.h" #include "clientignorelistmanager.h" +#include "util.h" MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent) : QSortFilterProxyModel(parent), @@ -40,7 +41,7 @@ MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent) MessageFilter::MessageFilter(MessageModel *source, const QList &buffers, QObject *parent) : QSortFilterProxyModel(parent), - _validBuffers(buffers.toSet()), + _validBuffers(toQSet(buffers)), _messageTypeFilter(0) { init(); @@ -119,7 +120,7 @@ QString MessageFilter::idString() const if (_validBuffers.isEmpty()) return "*"; - QList bufferIds = _validBuffers.toList(); + QList bufferIds = _validBuffers.values(); qSort(bufferIds); QStringList bufferIdStrings; diff --git a/src/common/ircuser.cpp b/src/common/ircuser.cpp index aa10735..a0936ed 100644 --- a/src/common/ircuser.cpp +++ b/src/common/ircuser.cpp @@ -353,7 +353,7 @@ void IrcUser::partChannel(const QString &channelname) void IrcUser::quit() { - QList channels = _channels.toList(); + QList channels = _channels.values(); _channels.clear(); foreach(IrcChannel *channel, channels) { disconnect(channel, 0, this, 0); diff --git a/src/common/util.h b/src/common/util.h index 3f67129..c0cf18d 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -21,6 +21,7 @@ #pragma once #include +#include #include #include @@ -59,6 +60,16 @@ QVariantList toVariantList(const QList &list) } +template +QSet toQSet(const QList& list) +{ +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + return list.toSet(); +#else + return {list.begin(), list.end()}; +#endif +} + template QList fromVariantList(const QVariantList &variants) { diff --git a/src/core/corebuffersyncer.cpp b/src/core/corebuffersyncer.cpp index 3fbbe29..7409ccd 100644 --- a/src/core/corebuffersyncer.cpp +++ b/src/core/corebuffersyncer.cpp @@ -24,6 +24,7 @@ #include "coresession.h" #include "corenetwork.h" #include "ircchannel.h" +#include "util.h" class PurgeEvent : public QEvent { @@ -193,7 +194,7 @@ void CoreBufferSyncer::purgeBufferIds() actualBuffers << bufferInfo.bufferId(); } - QSet storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet(); + QSet storedIds = toQSet(lastSeenBufferIds()) + toQSet(markerLineBufferIds()); foreach(BufferId bufferId, storedIds) { if (!actualBuffers.contains(bufferId)) { BufferSyncer::removeBuffer(bufferId); diff --git a/src/qtui/chatview.cpp b/src/qtui/chatview.cpp index cd8f0c5..45c87e5 100644 --- a/src/qtui/chatview.cpp +++ b/src/qtui/chatview.cpp @@ -31,6 +31,7 @@ #include "qtui.h" #include "qtuistyle.h" #include "clientignorelistmanager.h" +#include "util.h" #include "chatline.h" @@ -316,7 +317,7 @@ QSet ChatView::visibleChatLines(Qt::ItemSelectionMode mode) const QList ChatView::visibleChatLinesSorted(Qt::ItemSelectionMode mode) const { - QList result = visibleChatLines(mode).toList(); + QList result = visibleChatLines(mode).values(); qSort(result.begin(), result.end(), chatLinePtrLessThan); return result; } diff --git a/src/qtui/chatviewsearchcontroller.cpp b/src/qtui/chatviewsearchcontroller.cpp index c595f10..4e80411 100644 --- a/src/qtui/chatviewsearchcontroller.cpp +++ b/src/qtui/chatviewsearchcontroller.cpp @@ -128,7 +128,7 @@ void ChatViewSearchController::updateHighlights(bool reuse) if (line) chatLines << line; } - foreach(ChatLine *line, QList(chatLines.toList())) { + foreach (ChatLine* line, chatLines) { updateHighlights(line); } } @@ -314,8 +314,7 @@ void ChatViewSearchController::repositionHighlights() if (line) chatLines << line; } - QList chatLineList(chatLines.toList()); - foreach(ChatLine *line, chatLineList) { + foreach (ChatLine* line, chatLines) { repositionHighlights(line); } } diff --git a/src/qtui/settingspages/chatmonitorsettingspage.cpp b/src/qtui/settingspages/chatmonitorsettingspage.cpp index bb1c35d..d6e5119 100644 --- a/src/qtui/settingspages/chatmonitorsettingspage.cpp +++ b/src/qtui/settingspages/chatmonitorsettingspage.cpp @@ -28,6 +28,7 @@ #include "bufferview.h" #include "bufferviewfilter.h" #include "chatviewsettings.h" +#include "util.h" #include @@ -196,7 +197,7 @@ bool ChatMonitorSettingsPage::testHasChanged() if (_configActive->bufferList().count() != settings["Buffers"].toList().count()) return true; - QSet uiBufs = _configActive->bufferList().toSet(); + QSet uiBufs = toQSet(_configActive->bufferList()); QSet settingsBufs; foreach(QVariant v, settings["Buffers"].toList()) settingsBufs << v.value(); diff --git a/src/uisupport/bufferviewfilter.cpp b/src/uisupport/bufferviewfilter.cpp index 8c66f23..ff248af 100644 --- a/src/uisupport/bufferviewfilter.cpp +++ b/src/uisupport/bufferviewfilter.cpp @@ -32,6 +32,7 @@ #include "graphicalui.h" #include "networkmodel.h" #include "uistyle.h" +#include "util.h" /***************************************** @@ -159,7 +160,7 @@ void BufferViewFilter::enableEditMode(bool enable) return; if (enable == false) { - addBuffers(QList::fromSet(_toAdd)); + addBuffers(_toAdd.values()); QSet::const_iterator iter; for (iter = _toTempRemove.constBegin(); iter != _toTempRemove.constEnd(); ++iter) { if (config()->temporarilyRemovedBuffers().contains(*iter))