Skip to content

Commit 9242735

Browse files
committed
qt, refactor: Use local QAction instances for the tray icon menu
This change is required for the following commit.
1 parent 58e1603 commit 9242735

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/qt/bitcoingui.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -778,20 +778,24 @@ void BitcoinGUI::createTrayIconMenu()
778778

779779
QAction* send_action{nullptr};
780780
QAction* receive_action{nullptr};
781+
QAction* sign_action{nullptr};
782+
QAction* verify_action{nullptr};
781783
if (enableWallet) {
782784
send_action = trayIconMenu->addAction(sendCoinsAction->text(), sendCoinsAction, &QAction::trigger);
783785
receive_action = trayIconMenu->addAction(receiveCoinsAction->text(), receiveCoinsAction, &QAction::trigger);
784786
trayIconMenu->addSeparator();
785-
trayIconMenu->addAction(signMessageAction);
786-
trayIconMenu->addAction(verifyMessageAction);
787+
sign_action = trayIconMenu->addAction(signMessageAction->text(), signMessageAction, &QAction::trigger);
788+
verify_action = trayIconMenu->addAction(verifyMessageAction->text(), verifyMessageAction, &QAction::trigger);
787789
trayIconMenu->addSeparator();
788790
}
789-
trayIconMenu->addAction(optionsAction);
790-
trayIconMenu->addAction(openRPCConsoleAction);
791+
QAction* options_action = trayIconMenu->addAction(optionsAction->text(), optionsAction, &QAction::trigger);
792+
options_action->setMenuRole(QAction::PreferencesRole);
793+
QAction* node_window_action = trayIconMenu->addAction(openRPCConsoleAction->text(), openRPCConsoleAction, &QAction::trigger);
794+
QAction* quit_action{nullptr};
791795
#ifndef Q_OS_MAC
792796
// Note: On macOS, the Dock icon's menu already has Quit action.
793797
trayIconMenu->addSeparator();
794-
trayIconMenu->addAction(quitAction);
798+
quit_action = trayIconMenu->addAction(quitAction->text(), quitAction, &QAction::trigger);
795799

796800
trayIcon->setContextMenu(trayIconMenu.get());
797801
connect(trayIcon, &QSystemTrayIcon::activated, [this](QSystemTrayIcon::ActivationReason reason) {
@@ -814,14 +818,16 @@ void BitcoinGUI::createTrayIconMenu()
814818
// Using QSystemTrayIcon::Context is not reliable.
815819
// See https://bugreports.qt.io/browse/QTBUG-91697
816820
trayIconMenu.get(), &QMenu::aboutToShow,
817-
[this, show_hide_action, send_action, receive_action] {
821+
[this, show_hide_action, send_action, receive_action, sign_action, verify_action] {
818822
if (show_hide_action) show_hide_action->setText(
819823
(!isHidden() && !isMinimized() && !GUIUtil::isObscured(this)) ?
820824
tr("&Hide") :
821825
tr("S&how"));
822826
if (enableWallet) {
823827
send_action->setEnabled(sendCoinsAction->isEnabled());
824828
receive_action->setEnabled(receiveCoinsAction->isEnabled());
829+
sign_action->setEnabled(signMessageAction->isEnabled());
830+
verify_action->setEnabled(verifyMessageAction->isEnabled());
825831
}
826832
});
827833
}

0 commit comments

Comments
 (0)