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.
12 files changed:
Q_ASSERT(backlogManager);
}
Q_ASSERT(backlogManager);
}
-void BacklogRequester::setWaitingBuffers(const QSet<BufferId>& buffers)
+void BacklogRequester::setWaitingBuffers(const BufferIdList& buffers)
- _buffersWaiting = buffers;
- _totalBuffers = _buffersWaiting.count();
-}
-
-void BacklogRequester::addWaitingBuffer(BufferId buffer)
-{
- _buffersWaiting << buffer;
- _totalBuffers++;
+ _buffersWaiting = {buffers.begin(), buffers.end()};
+ _totalBuffers = int(_buffersWaiting.size());
}
bool BacklogRequester::buffer(BufferId bufferId, const MessageList& messages)
{
_bufferedMessages << messages;
}
bool BacklogRequester::buffer(BufferId bufferId, const MessageList& messages)
{
_bufferedMessages << messages;
- _buffersWaiting.remove(bufferId);
- return !_buffersWaiting.isEmpty();
+ _buffersWaiting.erase(bufferId);
+ return !_buffersWaiting.empty();
}
BufferIdList BacklogRequester::allBufferIds() const
{
QSet<BufferId> bufferIds = Client::bufferViewOverlay()->bufferIds();
bufferIds += Client::bufferViewOverlay()->tempRemovedBufferIds();
}
BufferIdList BacklogRequester::allBufferIds() const
{
QSet<BufferId> bufferIds = Client::bufferViewOverlay()->bufferIds();
bufferIds += Client::bufferViewOverlay()->tempRemovedBufferIds();
- return bufferIds.toList();
+ return bufferIds.values();
}
void BacklogRequester::flushBuffer()
{
}
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;
}
_bufferedMessages.clear();
_totalBuffers = 0;
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef BACKLOGREQUESTER_H
-#define BACKLOGREQUESTER_H
+#pragma once
+
+#include <set>
inline RequesterType type() { return _requesterType; }
inline const QList<Message>& bufferedMessages() { return _bufferedMessages; }
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
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;
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;
ClientBacklogManager* backlogManager;
RequesterType _requesterType;
MessageList _bufferedMessages;
int _totalBuffers;
RequesterType _requesterType;
MessageList _bufferedMessages;
int _totalBuffers;
- QSet<BufferId> _buffersWaiting;
+ std::set<BufferId> _buffersWaiting;
};
// ========================================
};
// ========================================
int _limit;
int _additional;
};
int _limit;
int _additional;
};
-
-#endif // BACKLOGREQUESTER_H
#include "clientbacklogmanager.h"
#include "clientbufferviewmanager.h"
#include "networkmodel.h"
#include "clientbacklogmanager.h"
#include "clientbufferviewmanager.h"
#include "networkmodel.h"
const int BufferViewOverlay::_updateEventId = QEvent::registerEventType();
const int BufferViewOverlay::_updateEventId = QEvent::registerEventType();
if (Client::networkModel()->networkId(bufferId) == config->networkId())
buffers << bufferId;
}
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 {
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);
}
}
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);
// 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
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);
buffers.intersect(availableBuffers);
#include "backlogrequester.h"
#include "backlogsettings.h"
#include "client.h"
#include "backlogrequester.h"
#include "backlogsettings.h"
#include "client.h"
ClientBacklogManager::ClientBacklogManager(QObject* parent)
: BacklogManager(parent)
ClientBacklogManager::ClientBacklogManager(QObject* parent)
: BacklogManager(parent)
BufferIdList ClientBacklogManager::filterNewBufferIds(const BufferIdList& bufferIds)
{
BufferIdList newBuffers;
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;
foreach (BufferId bufferId, bufferIds) {
if (_buffersRequested.contains(bufferId) || !availableBuffers.contains(bufferId))
continue;
#include "clientignorelistmanager.h"
#include "messagemodel.h"
#include "networkmodel.h"
#include "clientignorelistmanager.h"
#include "messagemodel.h"
#include "networkmodel.h"
MessageFilter::MessageFilter(QAbstractItemModel* source, QObject* parent)
: QSortFilterProxyModel(parent)
MessageFilter::MessageFilter(QAbstractItemModel* source, QObject* parent)
: QSortFilterProxyModel(parent)
MessageFilter::MessageFilter(MessageModel* source, const QList<BufferId>& buffers, 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();
, _messageTypeFilter(0)
{
init();
if (_validBuffers.isEmpty())
return "*";
if (_validBuffers.isEmpty())
return "*";
- QList<BufferId> bufferIds = _validBuffers.toList();
+ QList<BufferId> bufferIds = _validBuffers.values();
std::sort(bufferIds.begin(), bufferIds.end());
QStringList bufferIdStrings;
std::sort(bufferIds.begin(), bufferIds.end());
QStringList bufferIdStrings;
- QList<IrcChannel*> channels = _channels.toList();
+ QList<IrcChannel*> channels = _channels.values();
_channels.clear();
foreach (IrcChannel* channel, channels) {
disconnect(channel, nullptr, this, nullptr);
_channels.clear();
foreach (IrcChannel* channel, channels) {
disconnect(channel, nullptr, this, nullptr);
#include "common-export.h"
#include <QList>
#include "common-export.h"
#include <QList>
#include <QString>
#include <QVariant>
#include <QString>
#include <QVariant>
COMMON_EXPORT uint editingDistance(const QString& s1, const QString& s2);
COMMON_EXPORT uint editingDistance(const QString& s1, const QString& s2);
+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>
QVariantList toVariantList(const QList<T>& list)
{
template<typename T>
QVariantList toVariantList(const QList<T>& list)
{
#include "corenetwork.h"
#include "coresession.h"
#include "ircchannel.h"
#include "corenetwork.h"
#include "coresession.h"
#include "ircchannel.h"
class PurgeEvent : public QEvent
{
class PurgeEvent : public QEvent
{
std::transform(bufferInfos.cbegin(), bufferInfos.cend(), std::inserter(actualBuffers, actualBuffers.end()),
[](auto&& bufferInfo) { return bufferInfo.bufferId(); });
std::transform(bufferInfos.cbegin(), bufferInfos.cend(), std::inserter(actualBuffers, actualBuffers.end()),
[](auto&& bufferInfo) { return bufferInfo.bufferId(); });
- QSet<BufferId> storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet();
+ QSet<BufferId> storedIds = toQSet(lastSeenBufferIds()) + toQSet(markerLineBufferIds());
foreach (BufferId bufferId, storedIds) {
if (actualBuffers.find(bufferId) == actualBuffers.end()) {
BufferSyncer::removeBuffer(bufferId);
foreach (BufferId bufferId, storedIds) {
if (actualBuffers.find(bufferId) == actualBuffers.end()) {
BufferSyncer::removeBuffer(bufferId);
#include "messagefilter.h"
#include "qtui.h"
#include "qtuistyle.h"
#include "messagefilter.h"
#include "qtui.h"
#include "qtuistyle.h"
ChatView::ChatView(BufferId bufferId, QWidget* parent)
: QGraphicsView(parent)
ChatView::ChatView(BufferId bufferId, QWidget* parent)
: QGraphicsView(parent)
QList<ChatLine*> ChatView::visibleChatLinesSorted(Qt::ItemSelectionMode mode) const
{
QList<ChatLine*> ChatView::visibleChatLinesSorted(Qt::ItemSelectionMode mode) const
{
- QList<ChatLine*> result = visibleChatLines(mode).toList();
+ QList<ChatLine*> result = visibleChatLines(mode).values();
std::sort(result.begin(), result.end(), chatLinePtrLessThan);
return result;
}
std::sort(result.begin(), result.end(), chatLinePtrLessThan);
return result;
}
if (line)
chatLines << line;
}
if (line)
chatLines << line;
}
- foreach (ChatLine* line, QList<ChatLine*>(chatLines.toList())) {
+ foreach (ChatLine* line, chatLines) {
updateHighlights(line);
}
}
updateHighlights(line);
}
}
if (line)
chatLines << line;
}
if (line)
chatLines << line;
}
- QList<ChatLine*> chatLineList(chatLines.toList());
- foreach (ChatLine* line, chatLineList) {
+ foreach (ChatLine* line, chatLines) {
repositionHighlights(line);
}
}
repositionHighlights(line);
}
}
#include "client.h"
#include "icon.h"
#include "networkmodel.h"
#include "client.h"
#include "icon.h"
#include "networkmodel.h"
ChatMonitorSettingsPage::ChatMonitorSettingsPage(QWidget* parent)
: SettingsPage(tr("Interface"), tr("Chat Monitor"), parent)
ChatMonitorSettingsPage::ChatMonitorSettingsPage(QWidget* parent)
: SettingsPage(tr("Interface"), tr("Chat Monitor"), parent)
if (_configActive->bufferList().count() != settings["Buffers"].toList().count())
return true;
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>();
QSet<BufferId> settingsBufs;
foreach (QVariant v, settings["Buffers"].toList())
settingsBufs << v.value<BufferId>();
#include "graphicalui.h"
#include "networkmodel.h"
#include "uistyle.h"
#include "graphicalui.h"
#include "networkmodel.h"
#include "uistyle.h"
/*****************************************
* The Filter for the Tree View
/*****************************************
* The Filter for the Tree View
return;
if (enable == false) {
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))
QSet<BufferId>::const_iterator iter;
for (iter = _toTempRemove.constBegin(); iter != _toTempRemove.constEnd(); ++iter) {
if (config()->temporarilyRemovedBuffers().contains(*iter))