11
11
12
12
#include < utility>
13
13
14
- #include < QDebug>
15
14
#include < QList>
16
15
#include < QTimer>
17
16
18
- bool NodeLessThan::operator ()(const CNodeCombinedStats &left, const CNodeCombinedStats &right) const
19
- {
20
- const CNodeStats *pLeft = &(left.nodeStats );
21
- const CNodeStats *pRight = &(right.nodeStats );
22
-
23
- if (order == Qt::DescendingOrder)
24
- std::swap (pLeft, pRight);
25
-
26
- switch (static_cast <PeerTableModel::ColumnIndex>(column)) {
27
- case PeerTableModel::NetNodeId:
28
- return pLeft->nodeid < pRight->nodeid ;
29
- case PeerTableModel::Address:
30
- return pLeft->addrName .compare (pRight->addrName ) < 0 ;
31
- case PeerTableModel::ConnectionType:
32
- return pLeft->m_conn_type < pRight->m_conn_type ;
33
- case PeerTableModel::Network:
34
- return pLeft->m_network < pRight->m_network ;
35
- case PeerTableModel::Ping:
36
- return pLeft->m_min_ping_time < pRight->m_min_ping_time ;
37
- case PeerTableModel::Sent:
38
- return pLeft->nSendBytes < pRight->nSendBytes ;
39
- case PeerTableModel::Received:
40
- return pLeft->nRecvBytes < pRight->nRecvBytes ;
41
- case PeerTableModel::Subversion:
42
- return pLeft->cleanSubVer .compare (pRight->cleanSubVer ) < 0 ;
43
- } // no default case, so the compiler can warn about missing cases
44
- assert (false );
45
- }
46
-
47
17
// private implementation
48
18
class PeerTablePriv
49
19
{
50
20
public:
51
21
/* * Local cache of peer information */
52
22
QList<CNodeCombinedStats> cachedNodeStats;
53
- /* * Column to sort nodes by (default to unsorted) */
54
- int sortColumn{-1 };
55
- /* * Order (ascending or descending) to sort nodes by */
56
- Qt::SortOrder sortOrder;
57
23
/* * Index of rows by node ID */
58
24
std::map<NodeId, int > mapNodeRows;
59
25
@@ -76,10 +42,6 @@ class PeerTablePriv
76
42
}
77
43
}
78
44
79
- if (sortColumn >= 0 )
80
- // sort cacheNodeStats (use stable sort to prevent rows jumping around unnecessarily)
81
- std::stable_sort (cachedNodeStats.begin (), cachedNodeStats.end (), NodeLessThan (sortColumn, sortOrder));
82
-
83
45
// build index map
84
46
mapNodeRows.clear ();
85
47
int row = 0 ;
@@ -245,10 +207,3 @@ int PeerTableModel::getRowByNodeId(NodeId nodeid)
245
207
246
208
return it->second ;
247
209
}
248
-
249
- void PeerTableModel::sort (int column, Qt::SortOrder order)
250
- {
251
- priv->sortColumn = column;
252
- priv->sortOrder = order;
253
- refresh ();
254
- }
0 commit comments