@@ -1018,11 +1018,9 @@ void RPCConsole::updateTrafficStats(quint64 totalBytesIn, quint64 totalBytesOut)
10181018
10191019void RPCConsole::peerLayoutAboutToChange ()
10201020{
1021- QModelIndexList selected = ui->peerWidget ->selectionModel ()->selectedIndexes ();
10221021 cachedNodeids.clear ();
1023- for (int i = 0 ; i < selected.size (); i++)
1024- {
1025- const CNodeCombinedStats *stats = clientModel->getPeerTableModel ()->getNodeStats (selected.at (i).row ());
1022+ for (const QModelIndex& peer : GUIUtil::getEntryData (ui->peerWidget , PeerTableModel::NetNodeId)) {
1023+ const auto stats = peer.data (PeerTableModel::StatsRole).value <CNodeCombinedStats*>();
10261024 cachedNodeids.append (stats->nodeStats .nodeid );
10271025 }
10281026}
@@ -1081,15 +1079,13 @@ void RPCConsole::peerLayoutChanged()
10811079
10821080void RPCConsole::updateDetailWidget ()
10831081{
1084- QModelIndexList selected_rows;
1085- auto selection_model = ui->peerWidget ->selectionModel ();
1086- if (selection_model) selected_rows = selection_model->selectedRows ();
1087- if (!clientModel || !clientModel->getPeerTableModel () || selected_rows.size () != 1 ) {
1082+ const QList<QModelIndex> selected_peers = GUIUtil::getEntryData (ui->peerWidget , PeerTableModel::NetNodeId);
1083+ if (!clientModel || !clientModel->getPeerTableModel () || selected_peers.size () != 1 ) {
10881084 ui->detailWidget ->hide ();
10891085 ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
10901086 return ;
10911087 }
1092- const CNodeCombinedStats * stats = clientModel-> getPeerTableModel ()-> getNodeStats (selected_rows .first ().row () );
1088+ const auto stats = selected_peers .first ().data (PeerTableModel::StatsRole). value <CNodeCombinedStats*>( );
10931089 // update the detail ui with latest node information
10941090 QString peerAddrDetails (QString::fromStdString (stats->nodeStats .addrName ) + " " );
10951091 peerAddrDetails += tr (" (peer id: %1)" ).arg (QString::number (stats->nodeStats .nodeid ));
@@ -1202,19 +1198,9 @@ void RPCConsole::banSelectedNode(int bantime)
12021198 if (!clientModel)
12031199 return ;
12041200
1205- // Get selected peer addresses
1206- QList<QModelIndex> nodes = GUIUtil::getEntryData (ui->peerWidget , PeerTableModel::NetNodeId);
1207- for (int i = 0 ; i < nodes.count (); i++)
1208- {
1209- // Get currently selected peer address
1210- NodeId id = nodes.at (i).data ().toLongLong ();
1211-
1212- // Get currently selected peer address
1213- int detailNodeRow = clientModel->getPeerTableModel ()->getRowByNodeId (id);
1214- if (detailNodeRow < 0 ) return ;
1215-
1201+ for (const QModelIndex& peer : GUIUtil::getEntryData (ui->peerWidget , PeerTableModel::NetNodeId)) {
12161202 // Find possible nodes, ban it and clear the selected node
1217- const CNodeCombinedStats * stats = clientModel-> getPeerTableModel ()-> getNodeStats (detailNodeRow );
1203+ const auto stats = peer. data (PeerTableModel::StatsRole). value <CNodeCombinedStats*>( );
12181204 if (stats) {
12191205 m_node.ban (stats->nodeStats .addr , bantime);
12201206 m_node.disconnectByAddress (stats->nodeStats .addr );
0 commit comments