X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fbufferhotlistfilter.cpp;h=fcd12a9fb0c650c0a9ffb9a827ce002bab71cfac;hb=082cb8c8eb6db90cbb2166a0098874e76d5c6ad9;hp=da68ebac69f38675b4ffa126c033f82e3b7f93cc;hpb=04315f46a16fc3627218377071e008b6b9744992;p=quassel.git diff --git a/src/uisupport/bufferhotlistfilter.cpp b/src/uisupport/bufferhotlistfilter.cpp index da68ebac..fcd12a9f 100644 --- a/src/uisupport/bufferhotlistfilter.cpp +++ b/src/uisupport/bufferhotlistfilter.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 by the Quassel Project * + * Copyright (C) 2005-2020 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);