make the Upgrade All confirmation dialog optional, on by default
New "Ask for confirmation before Upgrade All" checkbox; when disabled, Upgrade All runs immediately. Auto-upgrade is unaffected either way — it never prompts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
29b9412a34
commit
0bc18b79b8
|
|
@ -210,7 +210,9 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
|||
}
|
||||
|
||||
@objc func upgradeAll() {
|
||||
if Settings.confirmBeforeUpgradeAll {
|
||||
guard confirmUpgrade() else { return }
|
||||
}
|
||||
|
||||
statusMenuItem.title = "Upgrading..."
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class SettingsWindowController: NSWindowController {
|
|||
var autoUpgradeCasksCheckbox: NSButton!
|
||||
var notifyCheckbox: NSButton!
|
||||
var showCountCheckbox: NSButton!
|
||||
var confirmCheckbox: NSButton!
|
||||
|
||||
convenience init(appDelegate: AppDelegate) {
|
||||
let window = NSWindow(
|
||||
|
|
@ -123,6 +124,12 @@ class SettingsWindowController: NSWindowController {
|
|||
action: #selector(toggleShowCount(_:))
|
||||
)
|
||||
|
||||
confirmCheckbox = NSButton(
|
||||
checkboxWithTitle: "Ask for confirmation before Upgrade All",
|
||||
target: self,
|
||||
action: #selector(toggleConfirm(_:))
|
||||
)
|
||||
|
||||
let stack = NSStackView(views: [
|
||||
frequencyRow,
|
||||
customRow,
|
||||
|
|
@ -134,6 +141,7 @@ class SettingsWindowController: NSWindowController {
|
|||
separator(),
|
||||
notifyCheckbox,
|
||||
showCountCheckbox,
|
||||
confirmCheckbox,
|
||||
launchAtLoginCheckbox,
|
||||
])
|
||||
stack.orientation = .vertical
|
||||
|
|
@ -174,6 +182,7 @@ class SettingsWindowController: NSWindowController {
|
|||
autoUpgradeCasksCheckbox.state = Settings.autoUpgradeCasks ? .on : .off
|
||||
notifyCheckbox.state = Settings.notifyOnNewUpdates ? .on : .off
|
||||
showCountCheckbox.state = Settings.showCountInMenuBar ? .on : .off
|
||||
confirmCheckbox.state = Settings.confirmBeforeUpgradeAll ? .on : .off
|
||||
}
|
||||
|
||||
func separator() -> NSBox {
|
||||
|
|
@ -239,6 +248,10 @@ class SettingsWindowController: NSWindowController {
|
|||
appDelegate?.updateMenuBarCount() // reflect immediately, no refetch needed
|
||||
}
|
||||
|
||||
@objc func toggleConfirm(_ sender: NSButton) {
|
||||
Settings.confirmBeforeUpgradeAll = sender.state == .on
|
||||
}
|
||||
|
||||
@objc func toggleLaunchAtLogin(_ sender: NSButton) {
|
||||
do {
|
||||
if sender.state == .on {
|
||||
|
|
|
|||
Loading…
Reference in a new issue