From 6e574b91545fffc683fc63dadcd60766e0cacde7 Mon Sep 17 00:00:00 2001 From: Nico Verbruggen Date: Mon, 29 Mar 2021 22:24:15 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8C=20Make=20sure=20'refresh'=20reopen?= =?UTF-8?q?s=20the=20menu=20afterwards=20(#24)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phpmon/Domain/Menu/MainMenu.swift | 13 +++++++++++++ phpmon/Domain/Menu/StatusMenu.swift | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/phpmon/Domain/Menu/MainMenu.swift b/phpmon/Domain/Menu/MainMenu.swift index ba2ac6f..417f316 100644 --- a/phpmon/Domain/Menu/MainMenu.swift +++ b/phpmon/Domain/Menu/MainMenu.swift @@ -171,6 +171,19 @@ class MainMenu: NSObject, NSWindowDelegate { update() } + @objc func reloadPhpMonitorMenu() { + waitAndExecute({ + // This automatically reloads the menu + print("Reloading information about the PHP installation...") + }, completion: { + // Add a slight delay to make sure it loads the new menu + DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { + // Open the menu again + MainMenu.shared.statusItem.button?.performClick(nil) + } + }) + } + @objc func setBusyImage() { DispatchQueue.main.async { [self] in setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!) diff --git a/phpmon/Domain/Menu/StatusMenu.swift b/phpmon/Domain/Menu/StatusMenu.swift index 93306c4..a5c3aa0 100644 --- a/phpmon/Domain/Menu/StatusMenu.swift +++ b/phpmon/Domain/Menu/StatusMenu.swift @@ -110,7 +110,7 @@ class StatusMenu : NSMenu { self.addExtensionItem(phpExtension) } - self.addItem(NSMenuItem(title: "mi_php_refresh".localized, action: #selector(MainMenu.updatePhpVersionInStatusBar), keyEquivalent: "r")) + self.addItem(NSMenuItem(title: "mi_php_refresh".localized, action: #selector(MainMenu.reloadPhpMonitorMenu), keyEquivalent: "r")) } private func addExtensionItem(_ phpExtension: PhpExtension) { @@ -120,6 +120,7 @@ class StatusMenu : NSMenu { ) menuItem.state = phpExtension.enabled ? .on : .off menuItem.phpExtension = phpExtension + self.addItem(menuItem) } }