X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferhotlistfilter.cpp;h=c5b1001b17abc4d010488773425b85f33a2e1ca6;hp=42dc813f2cced9cf6d14afcbc2f99001bfdd3d0b;hb=edc55b1f86cf613a332eeeb5d85537a54120dfa5;hpb=5b686746c880e5cda6d5de3e08180ea4332ff222 diff --git a/src/uisupport/bufferhotlistfilter.cpp b/src/uisupport/bufferhotlistfilter.cpp index 42dc813f..c5b1001b 100644 --- a/src/uisupport/bufferhotlistfilter.cpp +++ b/src/uisupport/bufferhotlistfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2012 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,16 +22,23 @@ #include "networkmodel.h" -BufferHotListFilter::BufferHotListFilter(QAbstractItemModel *source, QObject *parent) +BufferHotListFilter::BufferHotListFilter(QAbstractItemModel* source, QObject* parent) : QSortFilterProxyModel(parent) { setSourceModel(source); setDynamicSortFilter(true); - sort(0, Qt::DescendingOrder); // enable sorting... this is "usually" triggered by a enabling setSortingEnabled(true) on a view; + sort(0, Qt::DescendingOrder); // enable sorting... this is "usually" triggered by a enabling setSortingEnabled(true) on a view; } +BufferId BufferHotListFilter::hottestBuffer() +{ + invalidate(); + sort(0, Qt::DescendingOrder); + QModelIndex topIndex = index(0, 0); + return data(topIndex, NetworkModel::BufferIdRole).value(); +} -bool BufferHotListFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const +bool BufferHotListFilter::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const { Q_ASSERT(sourceModel()); QModelIndex source_index = sourceModel()->index(source_row, 0, source_parent); @@ -50,8 +57,7 @@ bool BufferHotListFilter::filterAcceptsRow(int source_row, const QModelIndex &so return true; } - -bool BufferHotListFilter::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const +bool BufferHotListFilter::lessThan(const QModelIndex& source_left, const QModelIndex& source_right) const { int leftActivity = sourceModel()->data(source_left, NetworkModel::BufferActivityRole).toInt(); int rightActivity = sourceModel()->data(source_right, NetworkModel::BufferActivityRole).toInt(); @@ -60,10 +66,9 @@ bool BufferHotListFilter::lessThan(const QModelIndex &source_left, const QModelI MsgId leftUnreadMsgId = sourceModel()->data(source_left, NetworkModel::BufferFirstUnreadMsgIdRole).value(); MsgId rightUnreadMsgId = sourceModel()->data(source_right, NetworkModel::BufferFirstUnreadMsgIdRole).value(); - return leftUnreadMsgId > rightUnreadMsgId; // newer messages are treated to be "less" + return leftUnreadMsgId > rightUnreadMsgId; // newer messages are treated to be "less" } - // QVariant BufferHotListFilter::data(const QModelIndex &index, int role) const { // QVariant d = QSortFilterProxyModel::data(index, role);