Skip to content

Commit 6be02ec

Browse files
committed
1 parent ff2efb8 commit 6be02ec

File tree

2 files changed

+4
-27
lines changed

2 files changed

+4
-27
lines changed

src/qt/peertablemodel.cpp

+3-26
Original file line numberDiff line numberDiff line change
@@ -159,30 +159,7 @@ void PeerTableModel::refresh()
159159
new_peers_data.append(stats);
160160
}
161161

162-
// Handle peer addition or removal as suggested in Qt Docs. See:
163-
// - https://doc.qt.io/qt-5/model-view-programming.html#inserting-and-removing-rows
164-
// - https://doc.qt.io/qt-5/model-view-programming.html#resizable-models
165-
// We take advantage of the fact that the std::vector returned
166-
// by interfaces::Node::getNodesStats is sorted by nodeid.
167-
for (int i = 0; i < m_peers_data.size();) {
168-
if (i < new_peers_data.size() && m_peers_data.at(i).nodeStats.nodeid == new_peers_data.at(i).nodeStats.nodeid) {
169-
++i;
170-
continue;
171-
}
172-
// A peer has been removed from the table.
173-
beginRemoveRows(QModelIndex(), i, i);
174-
m_peers_data.erase(m_peers_data.begin() + i);
175-
endRemoveRows();
176-
}
177-
178-
if (m_peers_data.size() < new_peers_data.size()) {
179-
// Some peers have been added to the end of the table.
180-
beginInsertRows(QModelIndex(), m_peers_data.size(), new_peers_data.size() - 1);
181-
m_peers_data.swap(new_peers_data);
182-
endInsertRows();
183-
} else {
184-
m_peers_data.swap(new_peers_data);
185-
}
186-
187-
Q_EMIT changed();
162+
Q_EMIT layoutAboutToBeChanged();
163+
m_peers_data.swap(new_peers_data);
164+
Q_EMIT layoutChanged();
188165
}

src/qt/rpcconsole.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
685685

686686
// peer table signal handling - update peer details when selecting new node
687687
connect(ui->peerWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &RPCConsole::updateDetailWidget);
688-
connect(model->getPeerTableModel(), &PeerTableModel::changed, this, &RPCConsole::updateDetailWidget);
688+
connect(model->getPeerTableModel(), &PeerTableModel::layoutChanged, this, &RPCConsole::updateDetailWidget);
689689

690690
// set up ban table
691691
ui->banlistWidget->setModel(model->getBanTableModel());

0 commit comments

Comments
 (0)