X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fmessagefilter.cpp;h=79d6e9ddcecd879ebba9798c3a7f0bf10ae946c2;hp=238c7d57f1c5fdb5106b6f1d48b350e9ea595a5b;hb=114f8a14b8bc82669ffda0599ce30fc299be9396;hpb=402f690fb8ca07adc2c063ba550d7e8fc0159ada diff --git a/src/client/messagefilter.cpp b/src/client/messagefilter.cpp index 238c7d57..79d6e9dd 100644 --- a/src/client/messagefilter.cpp +++ b/src/client/messagefilter.cpp @@ -27,8 +27,7 @@ MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent) : QSortFilterProxyModel(parent), - _messageTypeFilter(0), - _bufferType(BufferInfo::InvalidBuffer) + _messageTypeFilter(0) { init(); setSourceModel(source); @@ -37,8 +36,7 @@ MessageFilter::MessageFilter(QAbstractItemModel *source, QObject *parent) MessageFilter::MessageFilter(MessageModel *source, const QList &buffers, QObject *parent) : QSortFilterProxyModel(parent), _validBuffers(buffers.toSet()), - _messageTypeFilter(0), - _bufferType(BufferInfo::InvalidBuffer) + _messageTypeFilter(0) { init(); setSourceModel(source); @@ -110,19 +108,20 @@ bool MessageFilter::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePar return false; if(!(messageType & Message::Quit)) return false; + if(networkId() != Client::networkModel()->networkId(id)) + return false; uint messageTimestamp = sourceModel()->data(sourceIdx, MessageModel::TimestampRole).value().toTime_t(); - if(_filteredQuitMsgs.contains(messageTimestamp)) + QString quiter = sourceModel()->data(sourceIdx, Qt::DisplayRole).toString().section(' ', 0, 0, QString::SectionSkipEmpty).toLower(); + if(quiter != bufferName().toLower()) return false; - QString quiter = sourceModel()->data(sourceIdx, Qt::DisplayRole).toString().section(' ', 0, 0, QString::SectionSkipEmpty); - if(quiter.toLower() == bufferName().toLower()) { - MessageFilter *that = const_cast(this); - that->_filteredQuitMsgs << messageTimestamp; - return true; - } else { + if(_filteredQuitMsgs.contains(quiter, messageTimestamp)) return false; - } + + MessageFilter *that = const_cast(this); + that->_filteredQuitMsgs.insert(quiter, messageTimestamp); + return true; } } @@ -133,21 +132,3 @@ void MessageFilter::requestBacklog() { bufferIdIter++; } } - -const QString &MessageFilter::bufferName() const { - if(_bufferName.isEmpty()) { - MessageFilter *that = const_cast(this); - that->_bufferName = Client::networkModel()->bufferName(singleBufferId()); - return that->_bufferName; - } - return _bufferName; -} - -BufferInfo::Type MessageFilter::bufferType() const { - if(_bufferType == BufferInfo::InvalidBuffer) { - MessageFilter *that = const_cast(this); - that->_bufferType = Client::networkModel()->bufferType(singleBufferId()); - return that->_bufferType; - } - return _bufferType; -}