 |
Bitcoin Core
21.99.0
P2P Digital Currency
|
Go to the documentation of this file.
23 if (
order == Qt::DescendingOrder)
24 std::swap(pLeft, pRight);
67 node.getNodesStats(nodes_stats);
69 for (
const auto& node_stats : nodes_stats)
72 stats.
nodeStats = std::get<0>(node_stats);
87 mapNodeRows.insert(std::pair<NodeId, int>(stats.nodeStats.nodeid, row++));
105 QAbstractTableModel(parent),
112 timer =
new QTimer(
this);
137 if (parent.isValid()) {
145 if (parent.isValid()) {
159 if (role == Qt::DisplayRole) {
180 }
else if (role == Qt::TextAlignmentRole) {
187 return QVariant(Qt::AlignCenter);
191 return QVariant(Qt::AlignRight | Qt::AlignVCenter);
197 switch (
index.column()) {
198 case NetNodeId:
return QVariant::fromValue(rec);
199 default:
return QVariant();
208 if(orientation == Qt::Horizontal)
210 if(role == Qt::DisplayRole && section <
columns.size())
220 if (!
index.isValid())
return Qt::NoItemFlags;
222 Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
232 return createIndex(row, column,
data);
233 return QModelIndex();
238 Q_EMIT layoutAboutToBeChanged();
240 Q_EMIT layoutChanged();
245 std::map<NodeId, int>::iterator
it =
priv->mapNodeRows.find(nodeid);
246 if (
it ==
priv->mapNodeRows.end())
254 priv->sortColumn = column;
255 priv->sortOrder = order;
PeerTableModel(interfaces::Node &node, QObject *parent)
std::map< NodeId, int > mapNodeRows
Index of rows by node ID.
QVariant data(const QModelIndex &index, int role) const override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
int sortColumn
Column to sort nodes by (default to unsorted)
bool operator()(const CNodeCombinedStats &left, const CNodeCombinedStats &right) const
QModelIndex index(int row, int column, const QModelIndex &parent) const override
Qt::SortOrder sortOrder
Order (ascending or descending) to sort nodes by.
void refreshPeers(interfaces::Node &node)
Pull a full list of peers from vNodes into our cache.
std::chrono::microseconds m_min_ping_time
std::unique_ptr< PeerTablePriv > priv
QString ConnectionTypeToQString(ConnectionType conn_type, bool prepend_direction)
Convert enum ConnectionType to QString.
std::vector< std::tuple< CNodeStats, bool, CNodeStateStats > > NodesStats
Get stats for connected nodes.
Qt::ItemFlags flags(const QModelIndex &index) const override
interfaces::Node & m_node
bool fNodeStateStatsAvailable
QString formatBytes(uint64_t bytes)
ConnectionType m_conn_type
Top-level interface for a bitcoin node (bitcoind process).
QList< CNodeCombinedStats > cachedNodeStats
Local cache of peer information.
const QStringList columns
QString NetworkToQString(Network net)
Convert enum Network to QString.
void sort(int column, Qt::SortOrder order) override
int getRowByNodeId(NodeId nodeid)
QString formatPingTime(std::chrono::microseconds ping_time)
Format a CNodeStats.m_last_ping_time into a user-readable string or display N/A, if 0.
assert(std::addressof(::ChainstateActive().CoinsTip())==std::addressof(coins_cache))
CNodeCombinedStats * index(int idx)
int columnCount(const QModelIndex &parent) const override
static const int MODEL_UPDATE_DELAY
int rowCount(const QModelIndex &parent) const override
CNodeStateStats nodeStateStats