mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-05-05 19:38:54 +02:00
Remove direct bitcoin calls from qt/peertablemodel.cpp
This commit is contained in:
committed by
John Newbery
parent
d7c2c95948
commit
e0b66a3b7c
@@ -8,6 +8,7 @@
|
||||
#include <qt/guiconstants.h>
|
||||
#include <qt/guiutil.h>
|
||||
|
||||
#include <interface/node.h>
|
||||
#include <validation.h> // for cs_main
|
||||
#include <sync.h>
|
||||
|
||||
@@ -56,38 +57,26 @@ public:
|
||||
std::map<NodeId, int> mapNodeRows;
|
||||
|
||||
/** Pull a full list of peers from vNodes into our cache */
|
||||
void refreshPeers()
|
||||
void refreshPeers(interface::Node& node)
|
||||
{
|
||||
{
|
||||
cachedNodeStats.clear();
|
||||
std::vector<CNodeStats> vstats;
|
||||
if(g_connman)
|
||||
g_connman->GetNodeStats(vstats);
|
||||
|
||||
interface::Node::NodesStats nodes_stats;
|
||||
node.getNodesStats(nodes_stats);
|
||||
#if QT_VERSION >= 0x040700
|
||||
cachedNodeStats.reserve(vstats.size());
|
||||
cachedNodeStats.reserve(nodes_stats.size());
|
||||
#endif
|
||||
for (const CNodeStats& nodestats : vstats)
|
||||
for (auto& node_stats : nodes_stats)
|
||||
{
|
||||
CNodeCombinedStats stats;
|
||||
stats.nodeStateStats.nMisbehavior = 0;
|
||||
stats.nodeStateStats.nSyncHeight = -1;
|
||||
stats.nodeStateStats.nCommonHeight = -1;
|
||||
stats.fNodeStateStatsAvailable = false;
|
||||
stats.nodeStats = nodestats;
|
||||
stats.nodeStats = std::get<0>(node_stats);
|
||||
stats.fNodeStateStatsAvailable = std::get<1>(node_stats);
|
||||
stats.nodeStateStats = std::get<2>(node_stats);
|
||||
cachedNodeStats.append(stats);
|
||||
}
|
||||
}
|
||||
|
||||
// Try to retrieve the CNodeStateStats for each node.
|
||||
{
|
||||
TRY_LOCK(cs_main, lockMain);
|
||||
if (lockMain)
|
||||
{
|
||||
for (CNodeCombinedStats &stats : cachedNodeStats)
|
||||
stats.fNodeStateStatsAvailable = GetNodeStateStats(stats.nodeStats.nodeid, stats.nodeStateStats);
|
||||
}
|
||||
}
|
||||
|
||||
if (sortColumn >= 0)
|
||||
// sort cacheNodeStats (use stable sort to prevent rows jumping around unnecessarily)
|
||||
qStableSort(cachedNodeStats.begin(), cachedNodeStats.end(), NodeLessThan(sortColumn, sortOrder));
|
||||
@@ -113,8 +102,9 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
PeerTableModel::PeerTableModel(ClientModel *parent) :
|
||||
PeerTableModel::PeerTableModel(interface::Node& node, ClientModel *parent) :
|
||||
QAbstractTableModel(parent),
|
||||
m_node(node),
|
||||
clientModel(parent),
|
||||
timer(0)
|
||||
{
|
||||
@@ -235,7 +225,7 @@ const CNodeCombinedStats *PeerTableModel::getNodeStats(int idx)
|
||||
void PeerTableModel::refresh()
|
||||
{
|
||||
Q_EMIT layoutAboutToBeChanged();
|
||||
priv->refreshPeers();
|
||||
priv->refreshPeers(m_node);
|
||||
Q_EMIT layoutChanged();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user