Changeset View
Changeset View
Standalone View
Standalone View
src/qt/rpcconsole.cpp
Show All 30 Lines | |||||
#include <univalue.h> | #include <univalue.h> | ||||
#include <QKeyEvent> | #include <QKeyEvent> | ||||
#include <QMenu> | #include <QMenu> | ||||
#include <QMessageBox> | #include <QMessageBox> | ||||
#include <QScreen> | #include <QScreen> | ||||
#include <QScrollBar> | #include <QScrollBar> | ||||
#include <QSettings> | #include <QSettings> | ||||
#include <QSignalMapper> | |||||
#include <QStringList> | #include <QStringList> | ||||
#include <QTime> | #include <QTime> | ||||
#include <QTimer> | #include <QTimer> | ||||
// TODO: add a scrollback limit, as there is currently none | // TODO: add a scrollback limit, as there is currently none | ||||
// TODO: make it possible to filter out categories (esp debug messages when | // TODO: make it possible to filter out categories (esp debug messages when | ||||
// implemented) | // implemented) | ||||
// TODO: receive errors and debug messages through ClientModel | // TODO: receive errors and debug messages through ClientModel | ||||
▲ Show 20 Lines • Show All 652 Lines • ▼ Show 20 Lines | if (model && clientModel->getPeerTableModel() && | ||||
// create peer table context menu | // create peer table context menu | ||||
peersTableContextMenu = new QMenu(this); | peersTableContextMenu = new QMenu(this); | ||||
peersTableContextMenu->addAction(disconnectAction); | peersTableContextMenu->addAction(disconnectAction); | ||||
peersTableContextMenu->addAction(banAction1h); | peersTableContextMenu->addAction(banAction1h); | ||||
peersTableContextMenu->addAction(banAction24h); | peersTableContextMenu->addAction(banAction24h); | ||||
peersTableContextMenu->addAction(banAction7d); | peersTableContextMenu->addAction(banAction7d); | ||||
peersTableContextMenu->addAction(banAction365d); | peersTableContextMenu->addAction(banAction365d); | ||||
// Add a signal mapping to allow dynamic context menu arguments. We need | connect(banAction1h, &QAction::triggered, | ||||
// to use int (instead of int64_t), because signal mapper only supports | [this] { banSelectedNode(60 * 60); }); | ||||
// int or objects, which is okay because max bantime (1 year) is < | connect(banAction24h, &QAction::triggered, | ||||
// int_max. | [this] { banSelectedNode(60 * 60 * 24); }); | ||||
QSignalMapper *signalMapper = new QSignalMapper(this); | connect(banAction7d, &QAction::triggered, | ||||
signalMapper->setMapping(banAction1h, 60 * 60); | [this] { banSelectedNode(60 * 60 * 24 * 7); }); | ||||
signalMapper->setMapping(banAction24h, 60 * 60 * 24); | connect(banAction365d, &QAction::triggered, | ||||
signalMapper->setMapping(banAction7d, 60 * 60 * 24 * 7); | [this] { banSelectedNode(60 * 60 * 24 * 365); }); | ||||
signalMapper->setMapping(banAction365d, 60 * 60 * 24 * 365); | |||||
connect(banAction1h, &QAction::triggered, signalMapper, | |||||
static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map)); | |||||
connect(banAction24h, &QAction::triggered, signalMapper, | |||||
static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map)); | |||||
connect(banAction7d, &QAction::triggered, signalMapper, | |||||
static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map)); | |||||
connect(banAction365d, &QAction::triggered, signalMapper, | |||||
static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map)); | |||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) | |||||
const auto mappedIntEvent = &QSignalMapper::mappedInt; | |||||
#else | |||||
const auto mappedIntEvent = | |||||
static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped); | |||||
#endif | |||||
connect(signalMapper, mappedIntEvent, this, | |||||
&RPCConsole::banSelectedNode); | |||||
// peer table context menu signals | // peer table context menu signals | ||||
connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, | connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, | ||||
&RPCConsole::showPeersTableContextMenu); | &RPCConsole::showPeersTableContextMenu); | ||||
connect(disconnectAction, &QAction::triggered, this, | connect(disconnectAction, &QAction::triggered, this, | ||||
&RPCConsole::disconnectSelectedNode); | &RPCConsole::disconnectSelectedNode); | ||||
// peer table signal handling - update peer details when selecting new | // peer table signal handling - update peer details when selecting new | ||||
▲ Show 20 Lines • Show All 729 Lines • Show Last 20 Lines |