@@ -649,7 +649,7 @@ void RPCConsole::setClientModel(ClientModel *model)
649649 connect (unbanAction, &QAction::triggered, this , &RPCConsole::unbanSelectedNode);
650650
651651 // ban table signal handling - clear peer details when clicking a peer in the ban table
652- connect (ui->banlistWidget , &QTableView::clicked, this , &RPCConsole::clearSelectedNode );
652+ connect (ui->banlistWidget , &QTableView::clicked, ui-> peerWidget -> selectionModel () , &QItemSelectionModel::clearSelection );
653653 // ban table signal handling - ensure ban table is shown or hidden (if empty)
654654 connect (model->getBanTableModel (), &BanTableModel::layoutChanged, this , &RPCConsole::showOrHideBanTableIfRequired);
655655 showOrHideBanTableIfRequired ();
@@ -1118,8 +1118,9 @@ void RPCConsole::disconnectSelectedNode()
11181118 // Get currently selected peer address
11191119 NodeId id = nodes.at (i).data ().toLongLong ();
11201120 // Find the node, disconnect it and clear the selected node
1121- if (m_node.disconnectById (id))
1122- clearSelectedNode ();
1121+ if (m_node.disconnectById (id)) {
1122+ clearSelectedNode (nodes.at (i));
1123+ }
11231124 }
11241125}
11251126
@@ -1143,10 +1144,11 @@ void RPCConsole::banSelectedNode(int bantime)
11431144 const CNodeCombinedStats *stats = clientModel->getPeerTableModel ()->getNodeStats (detailNodeRow);
11441145 if (stats) {
11451146 m_node.ban (stats->nodeStats .addr , BanReasonManuallyAdded, bantime);
1146- m_node.disconnectByAddress (stats->nodeStats .addr );
1147+ if (m_node.disconnectByAddress (stats->nodeStats .addr )) {
1148+ clearSelectedNode (nodes.at (i));
1149+ }
11471150 }
11481151 }
1149- clearSelectedNode ();
11501152 clientModel->getBanTableModel ()->refresh ();
11511153}
11521154
@@ -1171,11 +1173,10 @@ void RPCConsole::unbanSelectedNode()
11711173 }
11721174}
11731175
1174- void RPCConsole::clearSelectedNode ()
1176+ void RPCConsole::clearSelectedNode (const QModelIndex& peer )
11751177{
1176- ui->peerWidget ->selectionModel ()->clearSelection ();
1177- cachedNodeids.clear ();
1178- updateDetailWidget ();
1178+ auto selection = ui->peerWidget ->selectionModel ();
1179+ selection->select (peer, QItemSelectionModel::Deselect | QItemSelectionModel::Rows);
11791180}
11801181
11811182void RPCConsole::showOrHideBanTableIfRequired ()
0 commit comments