Files
NetNewsWire/Mac/Inspector/BuiltinSmartFeedInspectorViewController.swift
Stuart Breckenridge ed6ff090be Merge branch 'ios-ui-settings-localised' into localize_strings
# Conflicts:
#	Mac/AppDelegate.swift
#	Mac/Base.lproj/Preferences.storyboard
#	NetNewsWire.xcodeproj/project.pbxproj
#	Shared/Localizations/LocalizedNetNewsWireError.swift
#	iOS/MasterFeed/MasterFeedViewController.swift
#	iOS/Settings/Appearance/ArticleThemeManagerView.swift
#	iOS/Settings/Appearance/DisplayAndBehaviorsView.swift
#	iOS/Settings/General/SettingsView.swift
2023-05-27 17:00:42 +08:00

70 lines
1.5 KiB
Swift

//
// BuiltinSmartFeedInspectorViewController.swift
// NetNewsWire
//
// Created by Brent Simmons on 1/20/18.
// Copyright © 2018 Ranchero Software. All rights reserved.
//
import AppKit
@MainActor final class BuiltinSmartFeedInspectorViewController: NSViewController, Inspector {
@IBOutlet var nameTextField: NSTextField?
@IBOutlet weak var smartFeedImageView: NSImageView!
private var smartFeed: PseudoFeed? {
didSet {
updateUI()
}
}
// MARK: Inspector
let isFallbackInspector = false
var objects: [Any]? {
didSet {
updateSmartFeed()
}
}
var windowTitle: String = NSLocalizedString("window.title.smart-feed-inspector", comment: "Smart Feed Inspector")
func canInspect(_ objects: [Any]) -> Bool {
guard let _ = singleSmartFeed(from: objects) else {
return false
}
return true
}
// MARK: NSViewController
override func viewDidLoad() {
updateUI()
}
}
private extension BuiltinSmartFeedInspectorViewController {
func singleSmartFeed(from objects: [Any]?) -> PseudoFeed? {
guard let objects = objects, objects.count == 1, let singleSmartFeed = objects.first as? PseudoFeed else {
return nil
}
return singleSmartFeed
}
func updateSmartFeed() {
smartFeed = singleSmartFeed(from: objects)
}
func updateUI() {
nameTextField?.stringValue = smartFeed?.nameForDisplay ?? ""
windowTitle = smartFeed?.nameForDisplay ?? NSLocalizedString("window.title.smart-feed-inspector", comment: "Smart Feed Inspector")
smartFeedImageView?.image = smartFeed?.smallIcon?.image
}
}