@@ -492,9 +492,7 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
492492 m_node.rpcSetTimerInterfaceIfUnset (rpcTimerInterface);
493493
494494 setTrafficGraphRange (INITIAL_TRAFFIC_GRAPH_MINS);
495-
496- ui->detailWidget ->hide ();
497- ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
495+ updateDetailWidget ();
498496
499497 consoleFontSize = settings.value (fontSizeSettingsKey, QFont ().pointSize ()).toInt ();
500498 clear ();
@@ -625,7 +623,7 @@ void RPCConsole::setClientModel(ClientModel *model)
625623 connect (disconnectAction, &QAction::triggered, this , &RPCConsole::disconnectSelectedNode);
626624
627625 // 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 );
629627 // peer table signal handling - update peer details when new nodes are added to the model
630628 connect (model->getPeerTableModel (), &PeerTableModel::layoutChanged, this , &RPCConsole::peerLayoutChanged);
631629 // peer table signal handling - cache selected node ids
@@ -1017,18 +1015,6 @@ void RPCConsole::updateTrafficStats(quint64 totalBytesIn, quint64 totalBytesOut)
10171015 ui->lblBytesOut ->setText (GUIUtil::formatBytes (totalBytesOut));
10181016}
10191017
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-
10321018void RPCConsole::peerLayoutAboutToChange ()
10331019{
10341020 QModelIndexList selected = ui->peerWidget ->selectionModel ()->selectedIndexes ();
@@ -1045,7 +1031,6 @@ void RPCConsole::peerLayoutChanged()
10451031 if (!clientModel || !clientModel->getPeerTableModel ())
10461032 return ;
10471033
1048- const CNodeCombinedStats *stats = nullptr ;
10491034 bool fUnselect = false ;
10501035 bool fReselect = false ;
10511036
@@ -1078,7 +1063,6 @@ void RPCConsole::peerLayoutChanged()
10781063 }
10791064
10801065 // get fresh stats on the detail node.
1081- stats = clientModel->getPeerTableModel ()->getNodeStats (detailNodeRow);
10821066 }
10831067
10841068 if (fUnselect && selectedRow >= 0 ) {
@@ -1092,13 +1076,19 @@ void RPCConsole::peerLayoutChanged()
10921076 ui->peerWidget ->selectRow (clientModel->getPeerTableModel ()->getRowByNodeId (cachedNodeids.at (i)));
10931077 }
10941078 }
1095-
1096- if (stats)
1097- updateNodeDetail (stats);
10981079}
10991080
1100- void RPCConsole::updateNodeDetail ( const CNodeCombinedStats *stats )
1081+ void RPCConsole::updateDetailWidget ( )
11011082{
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 ());
11021092 // update the detail ui with latest node information
11031093 QString peerAddrDetails (QString::fromStdString (stats->nodeStats .addrName ) + " " );
11041094 peerAddrDetails += tr (" (node id: %1)" ).arg (QString::number (stats->nodeStats .nodeid ));
@@ -1251,8 +1241,7 @@ void RPCConsole::clearSelectedNode()
12511241{
12521242 ui->peerWidget ->selectionModel ()->clearSelection ();
12531243 cachedNodeids.clear ();
1254- ui->detailWidget ->hide ();
1255- ui->peerHeading ->setText (tr (" Select a peer to view detailed information." ));
1244+ updateDetailWidget ();
12561245}
12571246
12581247void RPCConsole::showOrHideBanTableIfRequired ()
0 commit comments