keep the Upgrade only… submenu visible, grey out the empty kind
It only appeared when both formulae and casks were outdated; with a single kind it vanished entirely. Now it shows whenever anything is outdated, with the empty kind greyed out (autoenablesItems is off — AppKit would otherwise re-enable the items from the responder chain on every menu open). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
390e7e526b
commit
778671e751
|
|
@ -86,6 +86,9 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||
menu.addItem(upgradeAllItem)
|
||||
upgradeOnlyItem = NSMenuItem(title: "🎯 Upgrade only…", action: nil, keyEquivalent: "")
|
||||
let upgradeOnlySubmenu = NSMenu()
|
||||
// manual isEnabled control below; otherwise AppKit re-enables the
|
||||
// items from the responder chain every time the menu opens
|
||||
upgradeOnlySubmenu.autoenablesItems = false
|
||||
upgradeFormulaeItem = NSMenuItem(title: "Formulae", action: #selector(upgradeFormulaeOnly), keyEquivalent: "")
|
||||
upgradeCasksItem = NSMenuItem(title: "Casks", action: #selector(upgradeCasksOnly), keyEquivalent: "")
|
||||
upgradeOnlySubmenu.addItem(upgradeFormulaeItem)
|
||||
|
|
@ -570,11 +573,13 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||
outdatedSubmenu.removeAllItems()
|
||||
outdatedItem.isHidden = outdated.isEmpty
|
||||
upgradeAllItem.isHidden = outdated.isEmpty
|
||||
// "only" is meaningful only when both kinds are outdated; with a
|
||||
// single kind, the main item already upgrades exactly what there is
|
||||
upgradeOnlyItem.isHidden = outdated.formulae.isEmpty || outdated.casks.isEmpty
|
||||
upgradeFormulaeItem.title = "Formulae (\(outdated.formulae.count))"
|
||||
upgradeCasksItem.title = "Casks (\(outdated.casks.count))"
|
||||
// visible whenever anything is outdated; a kind with nothing to
|
||||
// upgrade stays listed but greyed out
|
||||
upgradeOnlyItem.isHidden = outdated.isEmpty
|
||||
upgradeFormulaeItem.title = outdated.formulae.isEmpty ? "Formulae" : "Formulae (\(outdated.formulae.count))"
|
||||
upgradeFormulaeItem.isEnabled = !outdated.formulae.isEmpty
|
||||
upgradeCasksItem.title = outdated.casks.isEmpty ? "Casks" : "Casks (\(outdated.casks.count))"
|
||||
upgradeCasksItem.isEnabled = !outdated.casks.isEmpty
|
||||
|
||||
for package in outdated.all {
|
||||
let item = NSMenuItem(title: package.label, action: #selector(upgradeSingle(_:)), keyEquivalent: "")
|
||||
|
|
|
|||
Loading…
Reference in a new issue