MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / setClientModel

Method setClientModel

src/qt/rpcconsole.cpp:622–754  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

620}
621
622void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_t bestblock_date, double verification_progress)
623{
624 clientModel = model;
625
626 bool wallet_enabled{false};
627#ifdef ENABLE_WALLET
628 wallet_enabled = WalletModel::isWalletEnabled();
629#endif // ENABLE_WALLET
630 if (model && !wallet_enabled) {
631 // Show warning, for example if this is a prerelease version
632 connect(model, &ClientModel::alertsChanged, this, &RPCConsole::updateAlerts);
633 updateAlerts(model->getStatusBarWarnings());
634 }
635
636 ui->trafficGraph->setClientModel(model);
637 if (model && clientModel->getPeerTableModel() && clientModel->getBanTableModel()) {
638 // Keep up to date with client
639 setNumConnections(model->getNumConnections());
640 connect(model, &ClientModel::numConnectionsChanged, this, &RPCConsole::setNumConnections);
641
642 setNumBlocks(bestblock_height, QDateTime::fromSecsSinceEpoch(bestblock_date), verification_progress, SyncType::BLOCK_SYNC);
643 connect(model, &ClientModel::numBlocksChanged, this, &RPCConsole::setNumBlocks);
644
645 updateNetworkState();
646 connect(model, &ClientModel::networkActiveChanged, this, &RPCConsole::setNetworkActive);
647
648 interfaces::Node& node = clientModel->node();
649 updateTrafficStats(node.getTotalBytesRecv(), node.getTotalBytesSent());
650 connect(model, &ClientModel::bytesChanged, this, &RPCConsole::updateTrafficStats);
651
652 connect(model, &ClientModel::mempoolSizeChanged, this, &RPCConsole::setMempoolSize);
653
654 // set up peer table
655 ui->peerWidget->setModel(model->peerTableSortProxy());
656 ui->peerWidget->verticalHeader()->hide();
657 ui->peerWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
658 ui->peerWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
659 ui->peerWidget->setContextMenuPolicy(Qt::CustomContextMenu);
660
661 if (!ui->peerWidget->horizontalHeader()->restoreState(m_peer_widget_header_state)) {
662 ui->peerWidget->setColumnWidth(PeerTableModel::Address, ADDRESS_COLUMN_WIDTH);
663 ui->peerWidget->setColumnWidth(PeerTableModel::Subversion, SUBVERSION_COLUMN_WIDTH);
664 ui->peerWidget->setColumnWidth(PeerTableModel::Ping, PING_COLUMN_WIDTH);
665 }
666 ui->peerWidget->horizontalHeader()->setSectionResizeMode(PeerTableModel::Age, QHeaderView::ResizeToContents);
667 ui->peerWidget->horizontalHeader()->setStretchLastSection(true);
668 ui->peerWidget->setItemDelegateForColumn(PeerTableModel::NetNodeId, new PeerIdViewDelegate(this));
669
670 // create peer table context menu
671 peersTableContextMenu = new QMenu(this);
672 //: Context menu action to copy the address of a peer.
673 peersTableContextMenu->addAction(tr("&Copy address"), [this] {
674 GUIUtil::copyEntryData(ui->peerWidget, PeerTableModel::Address, Qt::DisplayRole);
675 });
676 peersTableContextMenu->addSeparator();
677 peersTableContextMenu->addAction(tr("&Disconnect"), this, &RPCConsole::disconnectSelectedNode);
678 peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 &hour"), [this] { banSelectedNode(60 * 60); });
679 peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 d&ay"), [this] { banSelectedNode(60 * 60 * 24); });

Callers

nothing calls this directly

Calls 15

copyEntryDataFunction · 0.85
getStatusBarWarningsMethod · 0.80
getPeerTableModelMethod · 0.80
getBanTableModelMethod · 0.80
getNumConnectionsMethod · 0.80
getTotalBytesRecvMethod · 0.80
getTotalBytesSentMethod · 0.80
peerTableSortProxyMethod · 0.80
setTextMethod · 0.80
formatFullVersionMethod · 0.80
formatSubVersionMethod · 0.80
dataDirMethod · 0.80

Tested by

no test coverage detected