1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
crate::ix!();
//-------------------------------------------[.cpp/bitcoin/src/qt/peertablesortproxy.h]
//-------------------------------------------[.cpp/bitcoin/src/qt/peertablesortproxy.cpp]
#[Q_OBJECT]
pub struct PeerTableSortProxy {
base: QSortFilterProxyModel,
}
impl PeerTableSortProxy {
pub fn new(parent: *mut QObject) -> Self {
todo!();
/*
: QSortFilterProxyModel(parent)
*/
}
pub fn less_than(&self,
left_index: &QModelIndex,
right_index: &QModelIndex) -> bool {
todo!();
/*
const NodeStats left_stats = Assert(sourceModel()->data(left_index, PeerTableModel::StatsRole).value<NodeCombinedStats*>())->nodeStats;
const NodeStats right_stats = Assert(sourceModel()->data(right_index, PeerTableModel::StatsRole).value<NodeCombinedStats*>())->nodeStats;
switch (static_cast<PeerTableModel::ColumnIndex>(left_index.column())) {
case PeerTableModel::NetNodeId:
return left_stats.nodeid < right_stats.nodeid;
case PeerTableModel::Address:
return left_stats.m_addr_name.compare(right_stats.m_addr_name) < 0;
case PeerTableModel::Direction:
return left_stats.fInbound > right_stats.fInbound; // default sort Inbound, then Outbound
case PeerTableModel::ConnectionType:
return left_stats.m_conn_type < right_stats.m_conn_type;
case PeerTableModel::Network:
return left_stats.m_network < right_stats.m_network;
case PeerTableModel::Ping:
return left_stats.m_min_ping_time < right_stats.m_min_ping_time;
case PeerTableModel::Sent:
return left_stats.nSendBytes < right_stats.nSendBytes;
case PeerTableModel::Received:
return left_stats.nRecvBytes < right_stats.nRecvBytes;
case PeerTableModel::Subversion:
return left_stats.cleanSubVer.compare(right_stats.cleanSubVer) < 0;
} // no default case, so the compiler can warn about missing cases
assert(false);
*/
}
}