Skip to content

Commit 71ab42d

Browse files
committed
Fix #367
1 parent 8cdf917 commit 71ab42d

File tree

2 files changed

+4
-27
lines changed

2 files changed

+4
-27
lines changed

src/qt/peertablemodel.cpp

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -154,30 +154,7 @@ void PeerTableModel::refresh()
154154
new_peers_data.append(stats);
155155
}
156156

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

src/qt/rpcconsole.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
684684

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

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

0 commit comments

Comments
 (0)