From 9f848be87530054d2efcec13ae92f423b5c08ad1 Mon Sep 17 00:00:00 2001 From: maxsoch Date: Mon, 6 Jul 2026 21:40:50 +0200 Subject: [PATCH] hide Upgrade All when there is nothing to upgrade Same treatment as the Outdated item: upgradeAllItem becomes a property, starts hidden, and updateOutdatedMenu shows it only when the fetch returns outdated packages. Co-Authored-By: Claude Fable 5 --- BrewBar/BrewBarApp.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BrewBar/BrewBarApp.swift b/BrewBar/BrewBarApp.swift index efe2a96..2179076 100644 --- a/BrewBar/BrewBarApp.swift +++ b/BrewBar/BrewBarApp.swift @@ -15,6 +15,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { var statusItem: NSStatusItem! var statusMenuItem: NSMenuItem! var outdatedItem: NSMenuItem! + var upgradeAllItem: NSMenuItem! var outdatedSubmenu: NSMenu! var versionItem: NSMenuItem! @@ -53,7 +54,9 @@ class AppDelegate: NSObject, NSApplicationDelegate { menu.addItem(NSMenuItem.separator()) menu.addItem(NSMenuItem(title: "🔄 Refresh", action: #selector(refreshAction), keyEquivalent: "r")) - menu.addItem(NSMenuItem(title: "📦 Upgrade All", action: #selector(upgradeAll), keyEquivalent: "u")) + upgradeAllItem = NSMenuItem(title: "📦 Upgrade All", action: #selector(upgradeAll), keyEquivalent: "u") + upgradeAllItem.isHidden = true // shown once a fetch finds outdated packages + menu.addItem(upgradeAllItem) outdatedItem = NSMenuItem(title: "📋 Outdated", action: nil, keyEquivalent: "") outdatedSubmenu = NSMenu() outdatedItem.submenu = outdatedSubmenu @@ -295,6 +298,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { func updateOutdatedMenu(with lines: [String]) { outdatedSubmenu.removeAllItems() outdatedItem.isHidden = lines.isEmpty + upgradeAllItem.isHidden = lines.isEmpty for formula in lines { let item = NSMenuItem(title: formula, action: #selector(upgradeSingle(_:)), keyEquivalent: "")