#include "networkmodel.h"
BufferHotListFilter::BufferHotListFilter(QAbstractItemModel *source, QObject *parent)
- : QSortFilterProxyModel(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;
+ setSourceModel(source);
+ setDynamicSortFilter(true);
+ sort(0, Qt::DescendingOrder); // enable sorting... this is "usually" triggered by a enabling setSortingEnabled(true) on a view;
}
-bool BufferHotListFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const {
- Q_ASSERT(sourceModel());
- QModelIndex source_index = sourceModel()->index(source_row, 0, source_parent);
- MsgId firstUnreadMsgId = sourceModel()->data(source_index, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
- if(!firstUnreadMsgId.isValid())
- return false;
+bool BufferHotListFilter::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
+{
+ Q_ASSERT(sourceModel());
+ QModelIndex source_index = sourceModel()->index(source_row, 0, source_parent);
+
+ MsgId firstUnreadMsgId = sourceModel()->data(source_index, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
+ if (!firstUnreadMsgId.isValid())
+ return false;
- // filter out statusbuffers (it's accessable as networkitem)
- BufferInfo::Type bufferType = (BufferInfo::Type)sourceModel()->data(source_index, NetworkModel::BufferTypeRole).toInt();
- if(bufferType == BufferInfo::StatusBuffer) {
- NetworkModel::ItemType itemType = (NetworkModel::ItemType)sourceModel()->data(source_index, NetworkModel::ItemTypeRole).toInt();
- return itemType == NetworkModel::NetworkItemType;
- }
+ // filter out statusbuffers (it's accessable as networkitem)
+ BufferInfo::Type bufferType = (BufferInfo::Type)sourceModel()->data(source_index, NetworkModel::BufferTypeRole).toInt();
+ if (bufferType == BufferInfo::StatusBuffer) {
+ NetworkModel::ItemType itemType = (NetworkModel::ItemType)sourceModel()->data(source_index, NetworkModel::ItemTypeRole).toInt();
+ return itemType == NetworkModel::NetworkItemType;
+ }
- return true;
+ return true;
}
-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();
- if(leftActivity != rightActivity)
- return leftActivity < rightActivity;
- 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"
+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();
+ if (leftActivity != rightActivity)
+ return leftActivity < rightActivity;
+
+ 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"
}
+
// QVariant BufferHotListFilter::data(const QModelIndex &index, int role) const {
// QVariant d = QSortFilterProxyModel::data(index, role);
// if(role == Qt::DisplayRole) {
-// int activity = QSortFilterProxyModel::data(index, NetworkModel::BufferActivityRole).toInt();
+// int activity = QSortFilterProxyModel::data(index, NetworkModel::BufferActivityRole).toInt();
// MsgId unreadMsgId = QSortFilterProxyModel::data(index, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
// return QString("%1 %2 %3").arg(d.toString()).arg(activity).arg(unreadMsgId.toInt());
// }