mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-06 05:00:12 +02:00
qt: Hide peer detail view if multiple are selected
This commit is contained in:
parent
4946400470
commit
76277cc77d
@ -492,9 +492,7 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty
|
|||||||
m_node.rpcSetTimerInterfaceIfUnset(rpcTimerInterface);
|
m_node.rpcSetTimerInterfaceIfUnset(rpcTimerInterface);
|
||||||
|
|
||||||
setTrafficGraphRange(INITIAL_TRAFFIC_GRAPH_MINS);
|
setTrafficGraphRange(INITIAL_TRAFFIC_GRAPH_MINS);
|
||||||
|
updateDetailWidget();
|
||||||
ui->detailWidget->hide();
|
|
||||||
ui->peerHeading->setText(tr("Select a peer to view detailed information."));
|
|
||||||
|
|
||||||
consoleFontSize = settings.value(fontSizeSettingsKey, QFont().pointSize()).toInt();
|
consoleFontSize = settings.value(fontSizeSettingsKey, QFont().pointSize()).toInt();
|
||||||
clear();
|
clear();
|
||||||
@ -625,7 +623,7 @@ void RPCConsole::setClientModel(ClientModel *model)
|
|||||||
connect(disconnectAction, &QAction::triggered, this, &RPCConsole::disconnectSelectedNode);
|
connect(disconnectAction, &QAction::triggered, this, &RPCConsole::disconnectSelectedNode);
|
||||||
|
|
||||||
// peer table signal handling - update peer details when selecting new node
|
// peer table signal handling - update peer details when selecting new node
|
||||||
connect(ui->peerWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &RPCConsole::peerSelected);
|
connect(ui->peerWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &RPCConsole::updateDetailWidget);
|
||||||
// peer table signal handling - update peer details when new nodes are added to the model
|
// peer table signal handling - update peer details when new nodes are added to the model
|
||||||
connect(model->getPeerTableModel(), &PeerTableModel::layoutChanged, this, &RPCConsole::peerLayoutChanged);
|
connect(model->getPeerTableModel(), &PeerTableModel::layoutChanged, this, &RPCConsole::peerLayoutChanged);
|
||||||
// peer table signal handling - cache selected node ids
|
// peer table signal handling - cache selected node ids
|
||||||
@ -1017,18 +1015,6 @@ void RPCConsole::updateTrafficStats(quint64 totalBytesIn, quint64 totalBytesOut)
|
|||||||
ui->lblBytesOut->setText(GUIUtil::formatBytes(totalBytesOut));
|
ui->lblBytesOut->setText(GUIUtil::formatBytes(totalBytesOut));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RPCConsole::peerSelected(const QItemSelection &selected, const QItemSelection &deselected)
|
|
||||||
{
|
|
||||||
Q_UNUSED(deselected);
|
|
||||||
|
|
||||||
if (!clientModel || !clientModel->getPeerTableModel() || selected.indexes().isEmpty())
|
|
||||||
return;
|
|
||||||
|
|
||||||
const CNodeCombinedStats *stats = clientModel->getPeerTableModel()->getNodeStats(selected.indexes().first().row());
|
|
||||||
if (stats)
|
|
||||||
updateNodeDetail(stats);
|
|
||||||
}
|
|
||||||
|
|
||||||
void RPCConsole::peerLayoutAboutToChange()
|
void RPCConsole::peerLayoutAboutToChange()
|
||||||
{
|
{
|
||||||
QModelIndexList selected = ui->peerWidget->selectionModel()->selectedIndexes();
|
QModelIndexList selected = ui->peerWidget->selectionModel()->selectedIndexes();
|
||||||
@ -1045,7 +1031,6 @@ void RPCConsole::peerLayoutChanged()
|
|||||||
if (!clientModel || !clientModel->getPeerTableModel())
|
if (!clientModel || !clientModel->getPeerTableModel())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const CNodeCombinedStats *stats = nullptr;
|
|
||||||
bool fUnselect = false;
|
bool fUnselect = false;
|
||||||
bool fReselect = false;
|
bool fReselect = false;
|
||||||
|
|
||||||
@ -1076,9 +1061,6 @@ void RPCConsole::peerLayoutChanged()
|
|||||||
fUnselect = true;
|
fUnselect = true;
|
||||||
fReselect = true;
|
fReselect = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get fresh stats on the detail node.
|
|
||||||
stats = clientModel->getPeerTableModel()->getNodeStats(detailNodeRow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fUnselect && selectedRow >= 0) {
|
if (fUnselect && selectedRow >= 0) {
|
||||||
@ -1093,12 +1075,20 @@ void RPCConsole::peerLayoutChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stats)
|
updateDetailWidget();
|
||||||
updateNodeDetail(stats);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RPCConsole::updateNodeDetail(const CNodeCombinedStats *stats)
|
void RPCConsole::updateDetailWidget()
|
||||||
{
|
{
|
||||||
|
QModelIndexList selected_rows;
|
||||||
|
auto selection_model = ui->peerWidget->selectionModel();
|
||||||
|
if (selection_model) selected_rows = selection_model->selectedRows();
|
||||||
|
if (!clientModel || !clientModel->getPeerTableModel() || selected_rows.size() != 1) {
|
||||||
|
ui->detailWidget->hide();
|
||||||
|
ui->peerHeading->setText(tr("Select a peer to view detailed information."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const CNodeCombinedStats *stats = clientModel->getPeerTableModel()->getNodeStats(selected_rows.first().row());
|
||||||
// update the detail ui with latest node information
|
// update the detail ui with latest node information
|
||||||
QString peerAddrDetails(QString::fromStdString(stats->nodeStats.addrName) + " ");
|
QString peerAddrDetails(QString::fromStdString(stats->nodeStats.addrName) + " ");
|
||||||
peerAddrDetails += tr("(node id: %1)").arg(QString::number(stats->nodeStats.nodeid));
|
peerAddrDetails += tr("(node id: %1)").arg(QString::number(stats->nodeStats.nodeid));
|
||||||
@ -1251,8 +1241,7 @@ void RPCConsole::clearSelectedNode()
|
|||||||
{
|
{
|
||||||
ui->peerWidget->selectionModel()->clearSelection();
|
ui->peerWidget->selectionModel()->clearSelection();
|
||||||
cachedNodeids.clear();
|
cachedNodeids.clear();
|
||||||
ui->detailWidget->hide();
|
updateDetailWidget();
|
||||||
ui->peerHeading->setText(tr("Select a peer to view detailed information."));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RPCConsole::showOrHideBanTableIfRequired()
|
void RPCConsole::showOrHideBanTableIfRequired()
|
||||||
|
@ -94,6 +94,8 @@ private Q_SLOTS:
|
|||||||
void showOrHideBanTableIfRequired();
|
void showOrHideBanTableIfRequired();
|
||||||
/** clear the selected node */
|
/** clear the selected node */
|
||||||
void clearSelectedNode();
|
void clearSelectedNode();
|
||||||
|
/** show detailed information on ui about selected node */
|
||||||
|
void updateDetailWidget();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void clear(bool clearHistory = true);
|
void clear(bool clearHistory = true);
|
||||||
@ -115,8 +117,6 @@ public Q_SLOTS:
|
|||||||
void browseHistory(int offset);
|
void browseHistory(int offset);
|
||||||
/** Scroll console view to end */
|
/** Scroll console view to end */
|
||||||
void scrollToEnd();
|
void scrollToEnd();
|
||||||
/** Handle selection of peer in peers list */
|
|
||||||
void peerSelected(const QItemSelection &selected, const QItemSelection &deselected);
|
|
||||||
/** Handle selection caching before update */
|
/** Handle selection caching before update */
|
||||||
void peerLayoutAboutToChange();
|
void peerLayoutAboutToChange();
|
||||||
/** Handle updated peer information */
|
/** Handle updated peer information */
|
||||||
@ -137,8 +137,6 @@ Q_SIGNALS:
|
|||||||
private:
|
private:
|
||||||
void startExecutor();
|
void startExecutor();
|
||||||
void setTrafficGraphRange(int mins);
|
void setTrafficGraphRange(int mins);
|
||||||
/** show detailed information on ui about selected node */
|
|
||||||
void updateNodeDetail(const CNodeCombinedStats *stats);
|
|
||||||
|
|
||||||
enum ColumnWidths
|
enum ColumnWidths
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user