Skip to content

Commit aaacb26

Browse files
hebastoUdjinM6
authored andcommitted
qt, refactor: Use local QAction instances for the tray icon menu
This change is required for the following commit.
1 parent cb4bc0d commit aaacb26

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

src/qt/bitcoingui.cpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,39 +1043,45 @@ void BitcoinGUI::createIconMenu(QMenu *pmenu)
10431043
QAction* send_action{nullptr};
10441044
QAction* cj_send_action{nullptr};
10451045
QAction* receive_action{nullptr};
1046+
QAction* sign_action{nullptr};
1047+
QAction* verify_action{nullptr};
10461048
if (enableWallet) {
10471049
send_action = pmenu->addAction(sendCoinsAction->text(), sendCoinsAction, &QAction::trigger);
10481050
cj_send_action = pmenu->addAction(coinJoinCoinsAction->text(), coinJoinCoinsAction, &QAction::trigger);
10491051
receive_action = pmenu->addAction(receiveCoinsAction->text(), receiveCoinsAction, &QAction::trigger);
10501052
pmenu->addSeparator();
1051-
pmenu->addAction(signMessageAction);
1052-
pmenu->addAction(verifyMessageAction);
1053+
sign_action = pmenu->addAction(signMessageAction->text(), signMessageAction, &QAction::trigger);
1054+
verify_action = pmenu->addAction(verifyMessageAction->text(), verifyMessageAction, &QAction::trigger);
10531055
pmenu->addSeparator();
10541056
}
1055-
pmenu->addAction(optionsAction);
1056-
pmenu->addAction(openInfoAction);
1057-
pmenu->addAction(openRPCConsoleAction);
1058-
pmenu->addAction(openGraphAction);
1059-
pmenu->addAction(openPeersAction);
1057+
QAction* options_action = pmenu->addAction(optionsAction->text(), optionsAction, &QAction::trigger);
1058+
options_action->setMenuRole(QAction::PreferencesRole);
1059+
QAction* info_action = pmenu->addAction(openInfoAction->text(), openInfoAction, &QAction::trigger);
1060+
QAction* node_window_action = pmenu->addAction(openRPCConsoleAction->text(), openRPCConsoleAction, &QAction::trigger);
1061+
QAction* graph_action = pmenu->addAction(openGraphAction->text(), openGraphAction, &QAction::trigger);
1062+
QAction* peer_action = pmenu->addAction(openPeersAction->text(), openPeersAction, &QAction::trigger);
1063+
QAction* repair_action{nullptr};
10601064
if (enableWallet) {
1061-
pmenu->addAction(openRepairAction);
1065+
repair_action = pmenu->addAction(openRepairAction->text(), openRepairAction, &QAction::trigger);
10621066
}
10631067
pmenu->addSeparator();
1064-
pmenu->addAction(openConfEditorAction);
1068+
QAction* conf_action = pmenu->addAction(openConfEditorAction->text(), openConfEditorAction, &QAction::trigger);
1069+
QAction* backups_action{nullptr};
10651070
if (enableWallet) {
1066-
pmenu->addAction(showBackupsAction);
1071+
backups_action = pmenu->addAction(showBackupsAction->text(), showBackupsAction, &QAction::trigger);
10671072
}
1073+
QAction* quit_action{nullptr};
10681074
#ifndef Q_OS_MAC
10691075
// Note: On macOS, the Dock icon's menu already has Quit action.
10701076
pmenu->addSeparator();
1071-
pmenu->addAction(quitAction);
1077+
quit_action = pmenu->addAction(quitAction->text(), quitAction, &QAction::trigger);
10721078
#endif // Q_OS_MAC
10731079

10741080
connect(
10751081
// Using QSystemTrayIcon::Context is not reliable.
10761082
// See https://bugreports.qt.io/browse/QTBUG-91697
10771083
pmenu, &QMenu::aboutToShow,
1078-
[this, show_hide_action, send_action, cj_send_action, receive_action] {
1084+
[this, show_hide_action, send_action, cj_send_action, receive_action, sign_action, verify_action, repair_action, backups_action] {
10791085
if (show_hide_action) show_hide_action->setText(
10801086
(!isHidden() && !isMinimized() && !GUIUtil::isObscured(this)) ?
10811087
tr("&Hide") :
@@ -1084,6 +1090,10 @@ void BitcoinGUI::createIconMenu(QMenu *pmenu)
10841090
send_action->setEnabled(sendCoinsAction->isEnabled());
10851091
cj_send_action->setEnabled(coinJoinCoinsAction->isEnabled());
10861092
receive_action->setEnabled(receiveCoinsAction->isEnabled());
1093+
sign_action->setEnabled(signMessageAction->isEnabled());
1094+
verify_action->setEnabled(verifyMessageAction->isEnabled());
1095+
repair_action->setEnabled(openRepairAction->isEnabled());
1096+
backups_action->setEnabled(showBackupsAction->isEnabled());
10871097
}
10881098
});
10891099
}

0 commit comments

Comments
 (0)