Add article theme pop up to General Prefs

This commit is contained in:
Maurice Parker
2021-09-08 16:38:05 -05:00
parent 596202fc33
commit 9db72e50e8
3 changed files with 94 additions and 44 deletions

View File

@@ -15,7 +15,8 @@ final class GeneralPreferencesViewController: NSViewController {
private var userNotificationSettings: UNNotificationSettings?
@IBOutlet var defaultBrowserPopup: NSPopUpButton!
@IBOutlet weak var articleThemePopup: NSPopUpButton!
@IBOutlet weak var defaultBrowserPopup: NSPopUpButton!
public override init(nibName nibNameOrNil: NSNib.Name?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
@@ -41,13 +42,21 @@ final class GeneralPreferencesViewController: NSViewController {
// MARK: - Actions
@IBAction func articleThemePopUpDidChange(_ sender: Any) {
guard let menuItem = articleThemePopup.selectedItem else {
return
}
ArticleThemesManager.shared.currentThemeName = menuItem.title
updateArticleThemePopup()
}
@IBAction func browserPopUpDidChangeValue(_ sender: Any?) {
guard let menuItem = defaultBrowserPopup.selectedItem else {
return
}
let bundleID = menuItem.representedObject as? String
AppDefaults.shared.defaultBrowserID = bundleID
updateUI()
updateBrowserPopup()
}
}
@@ -61,12 +70,22 @@ private extension GeneralPreferencesViewController {
}
func updateUI() {
updateArticleThemePopup()
updateBrowserPopup()
}
func updateArticleThemePopup() {
let menu = articleThemePopup.menu!
menu.removeAllItems()
menu.addItem(NSMenuItem(title: ArticleTheme.defaultTheme.name, action: nil, keyEquivalent: ""))
menu.addItem(NSMenuItem.separator())
func registerAppWithBundleID(_ bundleID: String) {
NSWorkspace.shared.setDefaultAppBundleID(forURLScheme: "feed", to: bundleID)
NSWorkspace.shared.setDefaultAppBundleID(forURLScheme: "feeds", to: bundleID)
for themeName in ArticleThemesManager.shared.themeNames {
menu.addItem(NSMenuItem(title: themeName, action: nil, keyEquivalent: ""))
}
articleThemePopup.selectItem(withTitle: ArticleThemesManager.shared.currentThemeName)
}
func updateBrowserPopup() {