Skip to content

Commit 9a0ce28

Browse files
committed
refactor: simplify restore defaults and toggle popover
1 parent 6a5284d commit 9a0ce28

1 file changed

Lines changed: 21 additions & 22 deletions

File tree

Rectangle/PrefsWindow/SettingsViewController.swift

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -233,27 +233,22 @@ class SettingsViewController: NSViewController {
233233
}
234234

235235
@IBAction func restoreDefaults(_ sender: Any) {
236-
// Ask user if they want to restore to Rectangle or Spectacle defaults
237-
let currentDefaults = Defaults.alternateDefaultShortcuts.enabled ? "Rectangle" : "Spectacle"
238-
let defaultShortcutsTitle = NSLocalizedString("Default Shortcuts", tableName: "Main", value: "", comment: "")
239-
let currentlyUsingText = NSLocalizedString("Currently using: ", tableName: "Main", value: "", comment: "")
240-
let cancelText = NSLocalizedString("Cancel", tableName: "Main", value: "", comment: "")
241-
let response = AlertUtil.threeButtonAlert(question: defaultShortcutsTitle, text: currentlyUsingText + currentDefaults, buttonOneText: "Rectangle", buttonTwoText: "Spectacle", buttonThreeText: cancelText)
242-
if response == .alertThirdButtonReturn { return }
243-
244-
// Restore default shortcuts
245-
WindowAction.active.forEach { ShortcutStore.resetShortcut(forKey: $0.name) }
246-
let rectangleDefaults = response == .alertFirstButtonReturn
247-
if rectangleDefaults != Defaults.alternateDefaultShortcuts.enabled {
248-
Defaults.alternateDefaultShortcuts.enabled = rectangleDefaults
236+
let response = AlertUtil.twoButtonAlert(question: "Restore Default Shortcuts?".localized, text: "This will restore all shortcuts to their default state.".localized, confirmText: "Restore".localized, cancelText: "Cancel".localized)
237+
if response == .alertFirstButtonReturn {
238+
239+
for action in WindowAction.active {
240+
ShortcutStore.resetShortcut(forKey: action.name)
241+
}
242+
243+
for key in TodoManager.defaultsKeys {
244+
ShortcutStore.resetShortcut(forKey: key)
245+
}
246+
TodoManager.initToggleShortcut()
247+
TodoManager.initReflowShortcut()
248+
249+
Notification.Name.changeDefaults.post()
250+
Notification.Name.shortcutsChanged.post()
249251
}
250-
Notification.Name.changeDefaults.post()
251-
Notification.Name.shortcutsChanged.post()
252-
253-
// Restore snap areas
254-
Defaults.portraitSnapAreas.typedValue = nil
255-
Defaults.landscapeSnapAreas.typedValue = nil
256-
Notification.Name.defaultSnapAreas.post()
257252
}
258253

259254
@IBAction func exportConfig(_ sender: NSButton) {
@@ -368,8 +363,12 @@ class SettingsViewController: NSViewController {
368363
}
369364

370365
@IBAction func showExtraSettings(_ sender: NSButton) {
371-
extraSettingsPopover = nil
372-
if extraSettingsPopover == nil {
366+
if let popover = extraSettingsPopover {
367+
if popover.isShown {
368+
popover.close()
369+
return
370+
}
371+
} else {
373372
let popover = NSPopover()
374373
popover.behavior = .transient
375374
let viewController = NSViewController()

0 commit comments

Comments
 (0)