if (!_bufferHotList->rowCount())
return;
- QModelIndex topIndex = _bufferHotList->index(0, 0);
- BufferId bufferId = _bufferHotList->data(topIndex, NetworkModel::BufferIdRole).value<BufferId>();
- Client::bufferModel()->switchToBuffer(bufferId);
+ Client::bufferModel()->switchToBuffer(_bufferHotList->hottestBuffer());
}
void MainWin::on_actionDebugHotList_triggered()
{
+ _bufferHotList->invalidate();
+ _bufferHotList->sort(0, Qt::DescendingOrder);
+
QTreeView *view = new QTreeView;
view->setAttribute(Qt::WA_DeleteOnClose);
view->setModel(_bufferHotList);
#include "networkmodel.h"
+
BufferHotListFilter::BufferHotListFilter(QAbstractItemModel *source, QObject *parent)
: QSortFilterProxyModel(parent)
{
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
{
#define BUFFERHOTLISTFILTER_H
#include <QSortFilterProxyModel>
+#include "types.h"
class BufferHotListFilter : public QSortFilterProxyModel
{
BufferHotListFilter(QAbstractItemModel *source, QObject *parent = 0);
virtual inline int columnCount(const QModelIndex &) const { return 1; }
+ BufferId hottestBuffer();
// QVariant data(const QModelIndex &index, int role) const;
protected: