/***************************************************************************
- * Copyright (C) 2005-08 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 *
* 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<BufferId>();
+}
-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);
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();
MsgId leftUnreadMsgId = sourceModel()->data(source_left, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
MsgId rightUnreadMsgId = sourceModel()->data(source_right, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
- 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);