From 75fd9e1e1342074e7ee71007db83ce23146b95e1 Mon Sep 17 00:00:00 2001 From: Daniel Jalkut Date: Mon, 21 Jun 2021 17:51:04 -0400 Subject: [PATCH] Add new subscribeToFeedsInNetNewsWire boolean preference, to direct the behavior of the Subscribe to Feed app extension. --- Mac/AppDefaults.swift | 11 ++ Mac/Base.lproj/Preferences.storyboard | 105 ++++++++++++------ Multiplatform/Shared/AppDefaults.swift | 9 +- .../General/GeneralPreferencesView.swift | 15 ++- 4 files changed, 102 insertions(+), 38 deletions(-) diff --git a/Mac/AppDefaults.swift b/Mac/AppDefaults.swift index 2aa453d8d..d38d065ec 100644 --- a/Mac/AppDefaults.swift +++ b/Mac/AppDefaults.swift @@ -30,6 +30,7 @@ final class AppDefaults { static let timelineGroupByFeed = "timelineGroupByFeed" static let detailFontSize = "detailFontSize" static let openInBrowserInBackground = "openInBrowserInBackground" + static let subscribeToFeedsInNetNewsWire = "subscribeToFeedsInNetNewsWire" static let articleTextSize = "articleTextSize" static let refreshInterval = "refreshInterval" static let addWebFeedAccountID = "addWebFeedAccountID" @@ -106,6 +107,15 @@ final class AppDefaults { } } + var subscribeToFeedsInNetNewsWire: Bool { + get { + return AppDefaults.bool(for: Key.subscribeToFeedsInNetNewsWire) + } + set { + AppDefaults.setBool(for: Key.subscribeToFeedsInNetNewsWire, newValue) + } + } + var sidebarFontSize: FontSize { get { return fontSize(for: Key.sidebarFontSize) @@ -287,6 +297,7 @@ final class AppDefaults { Key.detailFontSize: FontSize.medium.rawValue, Key.timelineSortDirection: ComparisonResult.orderedDescending.rawValue, Key.timelineGroupByFeed: false, + Key.subscribeToFeedsInNetNewsWire: true, "NSScrollViewShouldScrollUnderTitlebar": false, Key.refreshInterval: RefreshInterval.everyHour.rawValue, Key.showDebugMenu: showDebugMenu] diff --git a/Mac/Base.lproj/Preferences.storyboard b/Mac/Base.lproj/Preferences.storyboard index ddd693d02..c6fa7a8ae 100644 --- a/Mac/Base.lproj/Preferences.storyboard +++ b/Mac/Base.lproj/Preferences.storyboard @@ -1,8 +1,8 @@ - + - + @@ -31,15 +31,15 @@ - - + + - + - + @@ -47,7 +47,7 @@ - + @@ -76,10 +76,10 @@ - + - + @@ -87,7 +87,7 @@ - + @@ -102,7 +102,7 @@ - + @@ -133,8 +133,8 @@ - - + + @@ -175,15 +175,50 @@ + + + + + + + + + + + + + @@ -193,13 +228,19 @@ - + + + + + + + @@ -400,20 +441,20 @@ - + - + - + - + - + @@ -493,7 +534,7 @@ - + - + diff --git a/Multiplatform/Shared/AppDefaults.swift b/Multiplatform/Shared/AppDefaults.swift index 7ad949455..193cd1a8a 100644 --- a/Multiplatform/Shared/AppDefaults.swift +++ b/Multiplatform/Shared/AppDefaults.swift @@ -75,6 +75,7 @@ final class AppDefaults: ObservableObject { static let articleTextSize = "articleTextSize" static let openInBrowserInBackground = "openInBrowserInBackground" static let defaultBrowserID = "defaultBrowserID" + static let subscribeToFeedsInNetNewsWire = "subscribeToFeedsInNetNewsWire" static let checkForUpdatesAutomatically = "checkForUpdatesAutomatically" static let downloadTestBuilds = "downloadTestBuild" static let sendCrashLogs = "sendCrashLogs" @@ -265,7 +266,13 @@ final class AppDefaults: ObservableObject { objectWillChange.send() } } - + + @AppStorage(wrappedValue: false, Key.subscribeToFeedsInNetNewsWire, store: store) var subscribeToFeedsInNetNewsWire: Bool { + didSet { + objectWillChange.send() + } + } + @AppStorage(Key.showTitleOnMainWindow, store: store) var showTitleOnMainWindow: Bool? { didSet { objectWillChange.send() diff --git a/Multiplatform/macOS/Preferences/Preference Panes/General/GeneralPreferencesView.swift b/Multiplatform/macOS/Preferences/Preference Panes/General/GeneralPreferencesView.swift index 71634bae9..5342d1686 100644 --- a/Multiplatform/macOS/Preferences/Preference Panes/General/GeneralPreferencesView.swift +++ b/Multiplatform/macOS/Preferences/Preference Panes/General/GeneralPreferencesView.swift @@ -14,7 +14,7 @@ struct GeneralPreferencesView: View { var body: some View { Form { - Picker("Refresh feeds", + Picker("Refresh feeds:", selection: $defaults.interval, content: { ForEach(RefreshInterval.allCases, content: { interval in @@ -22,8 +22,8 @@ struct GeneralPreferencesView: View { .tag(interval.rawValue) }) }) - - Picker("Default RSS reader", selection: $preferences.readerSelection, content: { + + Picker("Default RSS reader:", selection: $preferences.readerSelection, content: { ForEach(0.. 0 && preferences.rssReaders[index].nameMinusAppSuffix.contains("NetNewsWire") { Text(preferences.rssReaders[index].nameMinusAppSuffix.appending(" (old version)")) @@ -38,9 +38,14 @@ struct GeneralPreferencesView: View { Toggle("Confirm when deleting feeds and folders", isOn: $defaults.sidebarConfirmDelete) Toggle("Open webpages in background in browser", isOn: $defaults.openInBrowserInBackground) - Toggle("Hide Unread Count in Dock", isOn: $defaults.hideDockUnreadCount) - + + Picker("Safari Extension:", + selection: $defaults.subscribeToFeedsInNetNewsWire, + content: { + Text("Open feeds in NetNewsWire").tag(true) + Text("Open feeds in default news reader").tag(false) + }).pickerStyle(RadioGroupPickerStyle()) } .frame(width: 400, alignment: .center) .lineLimit(2)