fix buffer sorting for hot buffer hotkey 83/head
authorm5 <micah@qwerjk.com>
Sun, 3 Aug 2014 00:03:14 +0000 (17:03 -0700)
committerm5 <micah@qwerjk.com>
Sun, 3 Aug 2014 00:03:14 +0000 (17:03 -0700)
src/qtui/mainwin.cpp
src/uisupport/bufferhotlistfilter.cpp
src/uisupport/bufferhotlistfilter.h

index 2a1ce6f..645ce36 100644 (file)
@@ -1607,9 +1607,7 @@ void MainWin::on_jumpHotBuffer_triggered()
     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());
 }
 
 
@@ -1660,6 +1658,9 @@ void MainWin::on_actionDebugNetworkModel_triggered()
 
 void MainWin::on_actionDebugHotList_triggered()
 {
+    _bufferHotList->invalidate();
+    _bufferHotList->sort(0, Qt::DescendingOrder);
+
     QTreeView *view = new QTreeView;
     view->setAttribute(Qt::WA_DeleteOnClose);
     view->setModel(_bufferHotList);
index b8ee379..e40f900 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "networkmodel.h"
 
+
 BufferHotListFilter::BufferHotListFilter(QAbstractItemModel *source, QObject *parent)
     : QSortFilterProxyModel(parent)
 {
@@ -30,6 +31,13 @@ BufferHotListFilter::BufferHotListFilter(QAbstractItemModel *source, QObject *pa
     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
 {
index 777ea5e..3254d80 100644 (file)
@@ -22,6 +22,7 @@
 #define BUFFERHOTLISTFILTER_H
 
 #include <QSortFilterProxyModel>
+#include "types.h"
 
 class BufferHotListFilter : public QSortFilterProxyModel
 {
@@ -31,6 +32,7 @@ public:
     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: