X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fmessagefilter.cpp;h=64ea2a4d5f507ec760c5bd2a3356ed40feb1c985;hb=db00831bca59a012242d1ad5fac52a20c6cd2956;hp=18aedd21303f4e3591ff4e7b4430f34e898b3343;hpb=2c8434f74c68194d56f2084f637419123e61d18b;p=quassel.git diff --git a/src/client/messagefilter.cpp b/src/client/messagefilter.cpp index 18aedd21..64ea2a4d 100644 --- a/src/client/messagefilter.cpp +++ b/src/client/messagefilter.cpp @@ -22,32 +22,30 @@ #include +#include "buffermodel.h" #include "buffersettings.h" #include "client.h" -#include "buffermodel.h" +#include "clientignorelistmanager.h" #include "messagemodel.h" #include "networkmodel.h" -#include "clientignorelistmanager.h" -MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent) - : QSortFilterProxyModel(parent), - _messageTypeFilter(0) +MessageFilter::MessageFilter(QAbstractItemModel* source, QObject* parent) + : QSortFilterProxyModel(parent) + , _messageTypeFilter(0) { init(); setSourceModel(source); } - -MessageFilter::MessageFilter(MessageModel *source, const QList &buffers, QObject *parent) - : QSortFilterProxyModel(parent), - _validBuffers(buffers.toSet()), - _messageTypeFilter(0) +MessageFilter::MessageFilter(MessageModel* source, const QList& buffers, QObject* parent) + : QSortFilterProxyModel(parent) + , _validBuffers(buffers.toSet()) + , _messageTypeFilter(0) { init(); setSourceModel(source); } - void MessageFilter::init() { setDynamicSortFilter(true); @@ -70,7 +68,6 @@ void MessageFilter::init() mySettings.notify("hasMessageTypeFilter", this, &MessageFilter::messageTypeFilterChanged); } - void MessageFilter::messageTypeFilterChanged() { int newFilter; @@ -88,7 +85,6 @@ void MessageFilter::messageTypeFilterChanged() } } - void MessageFilter::messageRedirectionChanged() { BufferSettings bufferSettings; @@ -113,7 +109,6 @@ void MessageFilter::messageRedirectionChanged() invalidateFilter(); } - QString MessageFilter::idString() const { if (_validBuffers.isEmpty()) @@ -123,14 +118,13 @@ QString MessageFilter::idString() const qSort(bufferIds); QStringList bufferIdStrings; - foreach(BufferId id, bufferIds) - bufferIdStrings << QString::number(id.toInt()); + foreach (BufferId id, bufferIds) + bufferIdStrings << QString::number(id.toInt()); return bufferIdStrings.join("|"); } - -bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const +bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const { Q_UNUSED(sourceParent); QModelIndex sourceIdx = sourceModel()->index(sourceRow, 2); @@ -159,7 +153,8 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar // ignorelist handling // only match if message is not flagged as server msg if (!(flags & Message::ServerMsg) && Client::ignoreListManager() - && Client::ignoreListManager()->match(sourceIdx.data(MessageModel::MessageRole).value(), Client::networkModel()->networkName(bufferId))) + && Client::ignoreListManager()->match(sourceIdx.data(MessageModel::MessageRole).value(), + Client::networkModel()->networkName(bufferId))) return false; if (flags & Message::Redirected) { @@ -224,10 +219,8 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar return false; // Extract timestamp and nickname from the new quit message - qint64 messageTimestamp = sourceModel()->data(sourceIdx, MessageModel::TimestampRole) - .value().toMSecsSinceEpoch(); - QString quiter = nickFromMask(sourceModel()->data(sourceIdx, MessageModel::MessageRole) - .value().sender()).toLower(); + qint64 messageTimestamp = sourceModel()->data(sourceIdx, MessageModel::TimestampRole).value().toMSecsSinceEpoch(); + QString quiter = nickFromMask(sourceModel()->data(sourceIdx, MessageModel::MessageRole).value().sender()).toLower(); // Check that nickname matches query name if (quiter != bufferName().toLower()) @@ -236,22 +229,21 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar // Check if a quit message was already forwarded within +/- 1000 ms static constexpr qint64 MAX_QUIT_DELTA_MS = 1 * 1000; // No need to check if it's the appropriate buffer, each query has a unique message filter - if (std::binary_search(_filteredQuitMsgTime.begin(), _filteredQuitMsgTime.end(), - messageTimestamp, - [](qint64 a, qint64 b) { return ((a + MAX_QUIT_DELTA_MS) < b); } )) { + if (std::binary_search(_filteredQuitMsgTime.begin(), _filteredQuitMsgTime.end(), messageTimestamp, [](qint64 a, qint64 b) { + return ((a + MAX_QUIT_DELTA_MS) < b); + })) { // New element is less than if at least 1000 ms older/newer // Match found, no need to forward another quit message return false; } // Mark query as having a quit message inserted - auto *that = const_cast(this); + auto* that = const_cast(this); that->_filteredQuitMsgTime.insert(messageTimestamp); return true; } } - void MessageFilter::requestBacklog() { QSet::const_iterator bufferIdIter = _validBuffers.constBegin();