| 426 | } |
| 427 | |
| 428 | void BitcoinGUI::createMenuBar() |
| 429 | { |
| 430 | #ifdef Q_OS_MAC |
| 431 | // Create a decoupled menu bar on Mac which stays even if the window is closed |
| 432 | appMenuBar = new QMenuBar(); |
| 433 | #else |
| 434 | // Get the main window's menu bar on other platforms |
| 435 | appMenuBar = menuBar(); |
| 436 | #endif |
| 437 | |
| 438 | // Configure the menus |
| 439 | QMenu *file = appMenuBar->addMenu(tr("&File")); |
| 440 | if(walletFrame) |
| 441 | { |
| 442 | file->addAction(m_create_wallet_action); |
| 443 | file->addAction(m_open_wallet_action); |
| 444 | file->addAction(m_close_wallet_action); |
| 445 | file->addAction(m_close_all_wallets_action); |
| 446 | file->addSeparator(); |
| 447 | file->addAction(backupWalletAction); |
| 448 | file->addAction(signMessageAction); |
| 449 | file->addAction(verifyMessageAction); |
| 450 | file->addAction(m_load_psbt_action); |
| 451 | file->addAction(m_load_psbt_clipboard_action); |
| 452 | file->addSeparator(); |
| 453 | } |
| 454 | file->addAction(quitAction); |
| 455 | |
| 456 | QMenu *settings = appMenuBar->addMenu(tr("&Settings")); |
| 457 | if(walletFrame) |
| 458 | { |
| 459 | settings->addAction(encryptWalletAction); |
| 460 | settings->addAction(changePassphraseAction); |
| 461 | settings->addSeparator(); |
| 462 | settings->addAction(m_mask_values_action); |
| 463 | settings->addSeparator(); |
| 464 | } |
| 465 | settings->addAction(optionsAction); |
| 466 | |
| 467 | QMenu* window_menu = appMenuBar->addMenu(tr("&Window")); |
| 468 | |
| 469 | QAction* minimize_action = window_menu->addAction(tr("&Minimize")); |
| 470 | minimize_action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M)); |
| 471 | connect(minimize_action, &QAction::triggered, [] { |
| 472 | QApplication::activeWindow()->showMinimized(); |
| 473 | }); |
| 474 | connect(qApp, &QApplication::focusWindowChanged, this, [minimize_action] (QWindow* window) { |
| 475 | minimize_action->setEnabled(window != nullptr && (window->flags() & Qt::Dialog) != Qt::Dialog && window->windowState() != Qt::WindowMinimized); |
| 476 | }); |
| 477 | |
| 478 | #ifdef Q_OS_MAC |
| 479 | QAction* zoom_action = window_menu->addAction(tr("Zoom")); |
| 480 | connect(zoom_action, &QAction::triggered, [] { |
| 481 | QWindow* window = qApp->focusWindow(); |
| 482 | if (window->windowState() != Qt::WindowMaximized) { |
| 483 | window->showMaximized(); |
| 484 | } else { |
| 485 | window->showNormal(); |
nothing calls this directly
no test coverage detected