Merge bitcoin-core/gui#362: Add keyboard shortcuts to context menus

e4c916a0ea0637f4a765b1cb57ee10abef6fb4d6 Bugfix: GUI: Use a different shortcut for "1 d&ay" banning, due to conflict with "&Disconnect" (Luke Dashjr)
94e7cdd7e04ca79f89474df1400e1a189e068939 GUI: Add keyboard shortcuts for other context menus (Luke Dashjr)
02b5263cd4e02aa540cab35c2bf6cf9eda3522ae GUI: Restore keyboard shortcuts for context menu entries (Luke Dashjr)

Pull request description:

  Various keyboard shortcuts were lost in #263; this restores them, and also adds new ones for other context menus.

  Note that with a context menu open, simply the shortcut by itself (no Alt) is used.

ACKs for top commit:
  jarolrod:
    Code Review ACK e4c916a
  hebasto:
    ACK e4c916a0ea0637f4a765b1cb57ee10abef6fb4d6, tested on Linux Mint 20.1 (Qt 5.12.8).

Tree-SHA512: 949461acf7aac592bc48a1c5abad41b167365830e0cedb3aa11b6a87bd347e16126830ea87936f9c9efc4b7df5b09d3833fae784964d6d119ed45703cfba2ffd
This commit is contained in:
Hennadii Stepanov 2021-06-15 00:50:24 +03:00 committed by Konstantin Akimov
parent 25f87b9434
commit c7d3161b3b
No known key found for this signature in database
GPG Key ID: 2176C4A5D01EA524
6 changed files with 35 additions and 35 deletions

View File

@ -109,16 +109,16 @@ AddressBookPage::AddressBookPage(Mode _mode, Tabs _tab, QWidget* parent) :
// Build context menu // Build context menu
contextMenu = new QMenu(this); contextMenu = new QMenu(this);
contextMenu->addAction(tr("Copy Address"), this, &AddressBookPage::on_copyAddress_clicked); contextMenu->addAction(tr("&Copy Address"), this, &AddressBookPage::on_copyAddress_clicked);
contextMenu->addAction(tr("Copy Label"), this, &AddressBookPage::onCopyLabelAction); contextMenu->addAction(tr("Copy &Label"), this, &AddressBookPage::onCopyLabelAction);
contextMenu->addAction(tr("Edit"), this, &AddressBookPage::onEditAction); contextMenu->addAction(tr("&Edit"), this, &AddressBookPage::onEditAction);
[[maybe_unused]] QAction* qrAction = contextMenu->addAction(tr("Show address QR code"), this, &AddressBookPage::on_showAddressQRCode_clicked); [[maybe_unused]] QAction* qrAction = contextMenu->addAction(tr("Show address &QR code"), this, &AddressBookPage::on_showAddressQRCode_clicked);
#ifndef USE_QRCODE #ifndef USE_QRCODE
qrAction->setEnabled(false); qrAction->setEnabled(false);
#endif #endif
if (tab == SendingTab) { if (tab == SendingTab) {
contextMenu->addAction(tr("Delete"), this, &AddressBookPage::on_deleteAddress_clicked); contextMenu->addAction(tr("&Delete"), this, &AddressBookPage::on_deleteAddress_clicked);
} }
connect(ui->tableView, &QWidget::customContextMenuRequested, this, &AddressBookPage::contextualMenu); connect(ui->tableView, &QWidget::customContextMenuRequested, this, &AddressBookPage::contextualMenu);

View File

@ -64,13 +64,13 @@ CoinControlDialog::CoinControlDialog(CCoinControl& coin_control, WalletModel* _m
// context menu // context menu
contextMenu = new QMenu(this); contextMenu = new QMenu(this);
contextMenu->addAction(tr("Copy address"), this, &CoinControlDialog::copyAddress); contextMenu->addAction(tr("&Copy address"), this, &CoinControlDialog::copyAddress);
contextMenu->addAction(tr("Copy label"), this, &CoinControlDialog::copyLabel); contextMenu->addAction(tr("Copy &label"), this, &CoinControlDialog::copyLabel);
contextMenu->addAction(tr("Copy amount"), this, &CoinControlDialog::copyAmount); contextMenu->addAction(tr("Copy &amount"), this, &CoinControlDialog::copyAmount);
copyTransactionHashAction = contextMenu->addAction(tr("Copy transaction ID"), this, &CoinControlDialog::copyTransactionHash); copyTransactionHashAction = contextMenu->addAction(tr("Copy transaction &ID"), this, &CoinControlDialog::copyTransactionHash);
contextMenu->addSeparator(); contextMenu->addSeparator();
lockAction = contextMenu->addAction(tr("Lock unspent"), this, &CoinControlDialog::lockCoin); lockAction = contextMenu->addAction(tr("L&ock unspent"), this, &CoinControlDialog::lockCoin);
unlockAction = contextMenu->addAction(tr("Unlock unspent"), this, &CoinControlDialog::unlockCoin); unlockAction = contextMenu->addAction(tr("&Unlock unspent"), this, &CoinControlDialog::unlockCoin);
connect(ui->treeWidget, &QWidget::customContextMenuRequested, this, &CoinControlDialog::showMenu); connect(ui->treeWidget, &QWidget::customContextMenuRequested, this, &CoinControlDialog::showMenu);
// clipboard actions // clipboard actions

View File

@ -27,8 +27,8 @@ QRImageWidget::QRImageWidget(QWidget *parent):
QLabel(parent), contextMenu(nullptr) QLabel(parent), contextMenu(nullptr)
{ {
contextMenu = new QMenu(this); contextMenu = new QMenu(this);
contextMenu->addAction(tr("Save Image…"), this, &QRImageWidget::saveImage); contextMenu->addAction(tr("&Save Image…"), this, &QRImageWidget::saveImage);
contextMenu->addAction(tr("Copy Image"), this, &QRImageWidget::copyImage); contextMenu->addAction(tr("&Copy Image"), this, &QRImageWidget::copyImage);
} }
bool QRImageWidget::setQR(const QString& data, const QString& text) bool QRImageWidget::setQR(const QString& data, const QString& text)

View File

@ -33,11 +33,11 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget* parent) :
// context menu // context menu
contextMenu = new QMenu(this); contextMenu = new QMenu(this);
contextMenu->addAction(tr("Copy URI"), this, &ReceiveCoinsDialog::copyURI); contextMenu->addAction(tr("Copy &URI"), this, &ReceiveCoinsDialog::copyURI);
contextMenu->addAction(tr("Copy address"), this, &ReceiveCoinsDialog::copyAddress); contextMenu->addAction(tr("&Copy address"), this, &ReceiveCoinsDialog::copyAddress);
copyLabelAction = contextMenu->addAction(tr("Copy label"), this, &ReceiveCoinsDialog::copyLabel); copyLabelAction = contextMenu->addAction(tr("Copy &label"), this, &ReceiveCoinsDialog::copyLabel);
copyMessageAction = contextMenu->addAction(tr("Copy message"), this, &ReceiveCoinsDialog::copyMessage); copyMessageAction = contextMenu->addAction(tr("Copy &message"), this, &ReceiveCoinsDialog::copyMessage);
copyAmountAction = contextMenu->addAction(tr("Copy amount"), this, &ReceiveCoinsDialog::copyAmount); copyAmountAction = contextMenu->addAction(tr("Copy &amount"), this, &ReceiveCoinsDialog::copyAmount);
connect(ui->recentRequestsView, &QWidget::customContextMenuRequested, this, &ReceiveCoinsDialog::showMenu); connect(ui->recentRequestsView, &QWidget::customContextMenuRequested, this, &ReceiveCoinsDialog::showMenu);
connect(ui->clearButton, &QPushButton::clicked, this, &ReceiveCoinsDialog::clear); connect(ui->clearButton, &QPushButton::clicked, this, &ReceiveCoinsDialog::clear);

View File

@ -708,11 +708,11 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
// create peer table context menu // create peer table context menu
peersTableContextMenu = new QMenu(this); peersTableContextMenu = new QMenu(this);
peersTableContextMenu->addAction(tr("Disconnect"), this, &RPCConsole::disconnectSelectedNode); peersTableContextMenu->addAction(tr("&Disconnect"), this, &RPCConsole::disconnectSelectedNode);
peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 hour"), [this] { banSelectedNode(60 * 60); }); peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 &hour"), [this] { banSelectedNode(60 * 60); });
peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 day"), [this] { banSelectedNode(60 * 60 * 24); }); peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 d&ay"), [this] { banSelectedNode(60 * 60 * 24); });
peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 week"), [this] { banSelectedNode(60 * 60 * 24 * 7); }); peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 &week"), [this] { banSelectedNode(60 * 60 * 24 * 7); });
peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 year"), [this] { banSelectedNode(60 * 60 * 24 * 365); }); peersTableContextMenu->addAction(ts.ban_for + " " + tr("1 &year"), [this] { banSelectedNode(60 * 60 * 24 * 365); });
connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showPeersTableContextMenu); connect(ui->peerWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showPeersTableContextMenu);
// peer table signal handling - update peer details when selecting new node // peer table signal handling - update peer details when selecting new node
@ -731,7 +731,7 @@ void RPCConsole::setClientModel(ClientModel *model, int bestblock_height, int64_
// create ban table context menu // create ban table context menu
banTableContextMenu = new QMenu(this); banTableContextMenu = new QMenu(this);
banTableContextMenu->addAction(tr("Unban"), this, &RPCConsole::unbanSelectedNode); banTableContextMenu->addAction(tr("&Unban"), this, &RPCConsole::unbanSelectedNode);
connect(ui->banlistWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showBanTableContextMenu); connect(ui->banlistWidget, &QTableView::customContextMenuRequested, this, &RPCConsole::showBanTableContextMenu);
// ban table signal handling - clear peer details when clicking a peer in the ban table // ban table signal handling - clear peer details when clicking a peer in the ban table

View File

@ -147,18 +147,18 @@ TransactionView::TransactionView(QWidget* parent) :
contextMenu = new QMenu(this); contextMenu = new QMenu(this);
contextMenu->setObjectName("contextMenu"); contextMenu->setObjectName("contextMenu");
copyAddressAction = contextMenu->addAction(tr("Copy address"), this, &TransactionView::copyAddress); copyAddressAction = contextMenu->addAction(tr("&Copy address"), this, &TransactionView::copyAddress);
copyLabelAction = contextMenu->addAction(tr("Copy label"), this, &TransactionView::copyLabel); copyLabelAction = contextMenu->addAction(tr("Copy &label"), this, &TransactionView::copyLabel);
contextMenu->addAction(tr("Copy amount"), this, &TransactionView::copyAmount); contextMenu->addAction(tr("Copy &amount"), this, &TransactionView::copyAmount);
contextMenu->addAction(tr("Copy transaction ID"), this, &TransactionView::copyTxID); contextMenu->addAction(tr("Copy transaction &ID"), this, &TransactionView::copyTxID);
contextMenu->addAction(tr("Copy raw transaction"), this, &TransactionView::copyTxHex); contextMenu->addAction(tr("Copy &raw transaction"), this, &TransactionView::copyTxHex);
contextMenu->addAction(tr("Copy full transaction details"), this, &TransactionView::copyTxPlainText); contextMenu->addAction(tr("Copy full transaction &details"), this, &TransactionView::copyTxPlainText);
contextMenu->addAction(tr("Show transaction details"), this, &TransactionView::showDetails); contextMenu->addAction(tr("&Show transaction details"), this, &TransactionView::showDetails);
contextMenu->addSeparator(); contextMenu->addSeparator();
abandonAction = contextMenu->addAction(tr("Abandon transaction"), this, &TransactionView::abandonTx); abandonAction = contextMenu->addAction(tr("A&bandon transaction"), this, &TransactionView::abandonTx);
resendAction = contextMenu->addAction(tr("Resend transaction"), this, &TransactionView::resendTx); resendAction = contextMenu->addAction(tr("Rese&nd transaction"), this, &TransactionView::resendTx);
contextMenu->addAction(tr("Edit address label"), this, &TransactionView::editLabel); contextMenu->addAction(tr("&Edit address label"), this, &TransactionView::editLabel);
[[maybe_unused]] QAction* showAddressQRCodeAction = contextMenu->addAction(tr("Show address QR code"), this, &TransactionView::showAddressQRCode); [[maybe_unused]] QAction* showAddressQRCodeAction = contextMenu->addAction(tr("Show address &QR code"), this, &TransactionView::showAddressQRCode);
#ifndef USE_QRCODE #ifndef USE_QRCODE
showAddressQRCodeAction->setEnabled(false); showAddressQRCodeAction->setEnabled(false);
#endif #endif