mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-05 21:33:34 +01:00
Merge pull request #2977 from stuartbreckenridge/disable-reader-view
Disable reader view
This commit is contained in:
commit
facfb6fb4b
@ -152,9 +152,14 @@ public final class WebFeed: Feed, Renamable, Hashable {
|
|||||||
|
|
||||||
public var isArticleExtractorAlwaysOn: Bool? {
|
public var isArticleExtractorAlwaysOn: Bool? {
|
||||||
get {
|
get {
|
||||||
|
if isFeedProvider == true { return false } // not an option for FeedProviders
|
||||||
return metadata.isArticleExtractorAlwaysOn
|
return metadata.isArticleExtractorAlwaysOn
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
|
if isFeedProvider == true {
|
||||||
|
metadata.isArticleExtractorAlwaysOn = false
|
||||||
|
return
|
||||||
|
}
|
||||||
metadata.isArticleExtractorAlwaysOn = newValue
|
metadata.isArticleExtractorAlwaysOn = newValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -221,6 +226,21 @@ public final class WebFeed: Feed, Renamable, Hashable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Feed Provider
|
||||||
|
public var isFeedProvider: Bool {
|
||||||
|
get {
|
||||||
|
guard let webfeedURL = URL(string: url),
|
||||||
|
let components = URLComponents(url: webfeedURL, resolvingAgainstBaseURL: false) else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if FeedProviderManager.shared.best(for: components) == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var metadata: WebFeedMetadata
|
var metadata: WebFeedMetadata
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
@ -140,6 +140,9 @@ private extension WebFeedInspectorViewController {
|
|||||||
updateIsReaderViewAlwaysOn()
|
updateIsReaderViewAlwaysOn()
|
||||||
windowTitle = feed?.nameForDisplay ?? NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title")
|
windowTitle = feed?.nameForDisplay ?? NSLocalizedString("Feed Inspector", comment: "Feed Inspector window title")
|
||||||
view.needsLayout = true
|
view.needsLayout = true
|
||||||
|
if let webfeed = feed {
|
||||||
|
webfeed.isFeedProvider ? (isReaderViewAlwaysOnCheckBox?.isEnabled = false) : (isReaderViewAlwaysOnCheckBox?.isEnabled = true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateImage() {
|
func updateImage() {
|
||||||
|
@ -1061,6 +1061,7 @@ private extension MainWindowController {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if #available(macOS 11.0, *) {
|
if #available(macOS 11.0, *) {
|
||||||
|
|
||||||
guard let toolbarItem = item as? NSToolbarItem, let toolbarButton = toolbarItem.view as? ArticleExtractorButton else {
|
guard let toolbarItem = item as? NSToolbarItem, let toolbarButton = toolbarItem.view as? ArticleExtractorButton else {
|
||||||
@ -1070,6 +1071,15 @@ private extension MainWindowController {
|
|||||||
return currentLink != nil
|
return currentLink != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let webfeed = currentTimelineViewController?.selectedArticles.first?.webFeed {
|
||||||
|
if webfeed.isFeedProvider {
|
||||||
|
toolbarButton.isEnabled = false
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
toolbarButton.isEnabled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
guard let state = articleExtractor?.state else {
|
guard let state = articleExtractor?.state else {
|
||||||
toolbarButton.buttonState = .off
|
toolbarButton.buttonState = .off
|
||||||
return currentLink != nil
|
return currentLink != nil
|
||||||
@ -1093,6 +1103,15 @@ private extension MainWindowController {
|
|||||||
return currentLink != nil
|
return currentLink != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let webfeed = currentTimelineViewController?.selectedArticles.first?.webFeed {
|
||||||
|
if webfeed.isFeedProvider {
|
||||||
|
toolbarButton.isEnabled = false
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
toolbarButton.isEnabled = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
toolbarButton.state = isShowingExtractedArticle ? .on : .off
|
toolbarButton.state = isShowingExtractedArticle ? .on : .off
|
||||||
|
|
||||||
guard let state = articleExtractor?.state else {
|
guard let state = articleExtractor?.state else {
|
||||||
|
@ -240,6 +240,8 @@ private extension SidebarViewController {
|
|||||||
}
|
}
|
||||||
menu.addItem(notificationMenuItem)
|
menu.addItem(notificationMenuItem)
|
||||||
|
|
||||||
|
|
||||||
|
if !webFeed.isFeedProvider {
|
||||||
let articleExtractorText = NSLocalizedString("Always Use Reader View", comment: "Always Use Reader View")
|
let articleExtractorText = NSLocalizedString("Always Use Reader View", comment: "Always Use Reader View")
|
||||||
let articleExtractorMenuItem = menuItem(articleExtractorText, #selector(toggleArticleExtractorFromContextMenu(_:)), webFeed)
|
let articleExtractorMenuItem = menuItem(articleExtractorText, #selector(toggleArticleExtractorFromContextMenu(_:)), webFeed)
|
||||||
|
|
||||||
@ -249,6 +251,9 @@ private extension SidebarViewController {
|
|||||||
articleExtractorMenuItem.state = .on
|
articleExtractorMenuItem.state = .on
|
||||||
}
|
}
|
||||||
menu.addItem(articleExtractorMenuItem)
|
menu.addItem(articleExtractorMenuItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
menu.addItem(NSMenuItem.separator())
|
menu.addItem(NSMenuItem.separator())
|
||||||
|
|
||||||
menu.addItem(renameMenuItem(webFeed))
|
menu.addItem(renameMenuItem(webFeed))
|
||||||
|
@ -179,7 +179,11 @@ class ArticleViewController: UIViewController {
|
|||||||
starBarButtonItem.isEnabled = true
|
starBarButtonItem.isEnabled = true
|
||||||
|
|
||||||
let permalinkPresent = article.preferredLink != nil
|
let permalinkPresent = article.preferredLink != nil
|
||||||
articleExtractorButton.isEnabled = permalinkPresent && !AppDefaults.shared.isDeveloperBuild
|
var isFeedProvider = false
|
||||||
|
if let webfeed = article.webFeed {
|
||||||
|
isFeedProvider = webfeed.isFeedProvider
|
||||||
|
}
|
||||||
|
articleExtractorButton.isEnabled = permalinkPresent && !AppDefaults.shared.isDeveloperBuild && !isFeedProvider
|
||||||
actionBarButtonItem.isEnabled = permalinkPresent
|
actionBarButtonItem.isEnabled = permalinkPresent
|
||||||
|
|
||||||
if article.status.read {
|
if article.status.read {
|
||||||
|
@ -48,7 +48,14 @@ class WebFeedInspectorViewController: UITableViewController {
|
|||||||
nameTextField.text = webFeed.nameForDisplay
|
nameTextField.text = webFeed.nameForDisplay
|
||||||
|
|
||||||
notifyAboutNewArticlesSwitch.setOn(webFeed.isNotifyAboutNewArticles ?? false, animated: false)
|
notifyAboutNewArticlesSwitch.setOn(webFeed.isNotifyAboutNewArticles ?? false, animated: false)
|
||||||
|
|
||||||
|
if webFeed.isFeedProvider {
|
||||||
|
alwaysShowReaderViewSwitch.isOn = false
|
||||||
|
alwaysShowReaderViewSwitch.isEnabled = false
|
||||||
|
} else {
|
||||||
alwaysShowReaderViewSwitch.setOn(webFeed.isArticleExtractorAlwaysOn ?? false, animated: false)
|
alwaysShowReaderViewSwitch.setOn(webFeed.isArticleExtractorAlwaysOn ?? false, animated: false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
homePageLabel.text = webFeed.homePageURL?.decodedURLString
|
homePageLabel.text = webFeed.homePageURL?.decodedURLString
|
||||||
feedURLLabel.text = webFeed.url.decodedURLString
|
feedURLLabel.text = webFeed.url.decodedURLString
|
||||||
|
Loading…
x
Reference in New Issue
Block a user