X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferhotlistfilter.cpp;h=5d9da8dbda78d027bc3942ab3fabf00b42f561bc;hp=6297639dc09458fd9fdb0df4306fbf25289961f1;hb=c1cf157116de7fc3da96203aa6f03c38c7ebb650;hpb=694f9bfbf7f1af19108461c7e00d133e55082bce diff --git a/src/uisupport/bufferhotlistfilter.cpp b/src/uisupport/bufferhotlistfilter.cpp index 6297639d..5d9da8db 100644 --- a/src/uisupport/bufferhotlistfilter.cpp +++ b/src/uisupport/bufferhotlistfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,23 +15,30 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "bufferhotlistfilter.h" #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);