Fixes #3739 - Theme menu updates after selection

This commit is contained in:
Stuart Breckenridge
2022-11-12 14:46:42 +08:00
parent 35440ba542
commit 2f1f673afe
2 changed files with 6 additions and 5 deletions

View File

@@ -1434,7 +1434,7 @@ private extension MainWindowController {
let defaultThemeItem = NSMenuItem()
defaultThemeItem.title = ArticleTheme.defaultTheme.name
defaultThemeItem.action = #selector(selectArticleTheme(_:))
defaultThemeItem.state = defaultThemeItem.title == ArticleThemesManager.shared.currentThemeName ? .on : .off
defaultThemeItem.state = defaultThemeItem.title == ArticleThemesManager.shared.currentTheme.name ? .on : .off
articleThemeMenu.addItem(defaultThemeItem)
articleThemeMenu.addItem(NSMenuItem.separator())
@@ -1443,7 +1443,7 @@ private extension MainWindowController {
let themeItem = NSMenuItem()
themeItem.title = themeName
themeItem.action = #selector(selectArticleTheme(_:))
themeItem.state = themeItem.title == ArticleThemesManager.shared.currentThemeName ? .on : .off
themeItem.state = themeItem.title == ArticleThemesManager.shared.currentTheme.name ? .on : .off
articleThemeMenu.addItem(themeItem)
}

View File

@@ -11,8 +11,9 @@ import WebKit
import Account
import Articles
import SafariServices
import RSCore
class ArticleViewController: UIViewController, MainControllerIdentifiable {
class ArticleViewController: UIViewController, MainControllerIdentifiable, Logging {
typealias State = (extractedArticle: ExtractedArticle?,
isShowingExtractedArticle: Bool,
@@ -259,7 +260,7 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable {
identifier: nil,
discoverabilityTitle: nil,
attributes: [],
state: ArticleThemesManager.shared.currentThemeName == themeName ? .on : .off,
state: ArticleThemesManager.shared.currentTheme.name == themeName ? .on : .off,
handler: { action in
ArticleThemesManager.shared.currentThemeName = themeName
})
@@ -271,7 +272,7 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable {
identifier: nil,
discoverabilityTitle: nil,
attributes: [],
state: ArticleThemesManager.shared.currentThemeName == AppDefaults.defaultThemeName ? .on : .off,
state: ArticleThemesManager.shared.currentTheme.name == AppDefaults.defaultThemeName ? .on : .off,
handler: { _ in
ArticleThemesManager.shared.currentThemeName = AppDefaults.defaultThemeName
})