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 <noreply@anthropic.com>
This commit is contained in:
maxsoch 2026-07-06 21:40:50 +02:00
parent 15034951fc
commit 9f848be875

View file

@ -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: "")