@@ -492,9 +492,7 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
492
492
m_node.rpcSetTimerInterfaceIfUnset (rpcTimerInterface);
493
493
494
494
setTrafficGraphRange (INITIAL_TRAFFIC_GRAPH_MINS);
495
-
496
- ui->detailWidget ->hide ();
497
- ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
495
+ updateDetailWidget ();
498
496
499
497
consoleFontSize = settings.value (fontSizeSettingsKey, QFont ().pointSize ()).toInt ();
500
498
clear ();
@@ -625,7 +623,7 @@ void RPCConsole::setClientModel(ClientModel *model)
625
623
connect (disconnectAction, &QAction::triggered, this , &RPCConsole::disconnectSelectedNode);
626
624
627
625
// peer table signal handling - update peer details when selecting new node
628
- connect (ui->peerWidget ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &RPCConsole::peerSelected );
626
+ connect (ui->peerWidget ->selectionModel (), &QItemSelectionModel::selectionChanged, this , &RPCConsole::updateDetailWidget );
629
627
// peer table signal handling - update peer details when new nodes are added to the model
630
628
connect (model->getPeerTableModel (), &PeerTableModel::layoutChanged, this , &RPCConsole::peerLayoutChanged);
631
629
// peer table signal handling - cache selected node ids
@@ -1017,18 +1015,6 @@ void RPCConsole::updateTrafficStats(quint64 totalBytesIn, quint64 totalBytesOut)
1017
1015
ui->lblBytesOut ->setText (GUIUtil::formatBytes (totalBytesOut));
1018
1016
}
1019
1017
1020
- void RPCConsole::peerSelected (const QItemSelection &selected, const QItemSelection &deselected)
1021
- {
1022
- Q_UNUSED (deselected);
1023
-
1024
- if (!clientModel || !clientModel->getPeerTableModel () || selected.indexes ().isEmpty ())
1025
- return ;
1026
-
1027
- const CNodeCombinedStats *stats = clientModel->getPeerTableModel ()->getNodeStats (selected.indexes ().first ().row ());
1028
- if (stats)
1029
- updateNodeDetail (stats);
1030
- }
1031
-
1032
1018
void RPCConsole::peerLayoutAboutToChange ()
1033
1019
{
1034
1020
QModelIndexList selected = ui->peerWidget ->selectionModel ()->selectedIndexes ();
@@ -1045,7 +1031,6 @@ void RPCConsole::peerLayoutChanged()
1045
1031
if (!clientModel || !clientModel->getPeerTableModel ())
1046
1032
return ;
1047
1033
1048
- const CNodeCombinedStats *stats = nullptr ;
1049
1034
bool fUnselect = false ;
1050
1035
bool fReselect = false ;
1051
1036
@@ -1076,9 +1061,6 @@ void RPCConsole::peerLayoutChanged()
1076
1061
fUnselect = true ;
1077
1062
fReselect = true ;
1078
1063
}
1079
-
1080
- // get fresh stats on the detail node.
1081
- stats = clientModel->getPeerTableModel ()->getNodeStats (detailNodeRow);
1082
1064
}
1083
1065
1084
1066
if (fUnselect && selectedRow >= 0 ) {
@@ -1093,12 +1075,20 @@ void RPCConsole::peerLayoutChanged()
1093
1075
}
1094
1076
}
1095
1077
1096
- if (stats)
1097
- updateNodeDetail (stats);
1078
+ updateDetailWidget ();
1098
1079
}
1099
1080
1100
- void RPCConsole::updateNodeDetail ( const CNodeCombinedStats *stats )
1081
+ void RPCConsole::updateDetailWidget ( )
1101
1082
{
1083
+ QModelIndexList selected_rows;
1084
+ auto selection_model = ui->peerWidget ->selectionModel ();
1085
+ if (selection_model) selected_rows = selection_model->selectedRows ();
1086
+ if (!clientModel || !clientModel->getPeerTableModel () || selected_rows.size () != 1 ) {
1087
+ ui->detailWidget ->hide ();
1088
+ ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
1089
+ return ;
1090
+ }
1091
+ const CNodeCombinedStats *stats = clientModel->getPeerTableModel ()->getNodeStats (selected_rows.first ().row ());
1102
1092
// update the detail ui with latest node information
1103
1093
QString peerAddrDetails (QString::fromStdString (stats->nodeStats .addrName ) + " " );
1104
1094
peerAddrDetails += tr (" (node id: %1)" ).arg (QString::number (stats->nodeStats .nodeid ));
@@ -1251,8 +1241,7 @@ void RPCConsole::clearSelectedNode()
1251
1241
{
1252
1242
ui->peerWidget ->selectionModel ()->clearSelection ();
1253
1243
cachedNodeids.clear ();
1254
- ui->detailWidget ->hide ();
1255
- ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
1244
+ updateDetailWidget ();
1256
1245
}
1257
1246
1258
1247
void RPCConsole::showOrHideBanTableIfRequired ()
0 commit comments