From 10924caf7f4a86fa077e9511a78dd1cebe9829ee Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 6 Jul 2020 17:54:11 +0800 Subject: [PATCH 1/3] Fixes #2171 Slider is now used in lieu of a stepper. To do that, `timelineIconDimensions` had to be changed from an `Int` to a `Double`. --- Multiplatform/Shared/AppDefaults.swift | 2 +- .../Shared/Sidebar/SidebarToolbarModifier.swift | 2 +- .../Shared/Timeline/TimelineItemView.swift | 2 +- .../Settings/Submenus/TimelineLayoutView.swift | 16 +++++++++------- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Multiplatform/Shared/AppDefaults.swift b/Multiplatform/Shared/AppDefaults.swift index 270841646..9cee5fd2e 100644 --- a/Multiplatform/Shared/AppDefaults.swift +++ b/Multiplatform/Shared/AppDefaults.swift @@ -172,7 +172,7 @@ final class AppDefaults: ObservableObject { // MARK: Timeline @AppStorage(wrappedValue: false, Key.timelineGroupByFeed, store: store) var timelineGroupByFeed: Bool - @AppStorage(wrappedValue: 3, Key.timelineNumberOfLines, store: store) var timelineNumberOfLines: Int { + @AppStorage(wrappedValue: 2.0, Key.timelineNumberOfLines, store: store) var timelineNumberOfLines: Double { didSet { objectWillChange.send() } diff --git a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift index 6a04245ea..bc6569699 100644 --- a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift +++ b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift @@ -75,7 +75,7 @@ struct SidebarToolbarModifier: ViewModifier { AddFolderView() } if viewModel.sheetToShow == .settings { - SettingsView().modifier(PreferredColorSchemeModifier(preferredColorScheme: appSettings.userInterfaceColorPalette)) + SettingsView().modifier(PreferredColorSchemeModifier(preferredColorScheme: defaults.userInterfaceColorPalette)) } } #else diff --git a/Multiplatform/Shared/Timeline/TimelineItemView.swift b/Multiplatform/Shared/Timeline/TimelineItemView.swift index 252ef97ac..e081366d3 100644 --- a/Multiplatform/Shared/Timeline/TimelineItemView.swift +++ b/Multiplatform/Shared/Timeline/TimelineItemView.swift @@ -33,7 +33,7 @@ struct TimelineItemView: View { VStack { Text(verbatim: timelineItem.article.title ?? "N/A") .fontWeight(.semibold) - .lineLimit(defaults.timelineNumberOfLines) + .lineLimit(Int(defaults.timelineNumberOfLines)) .frame(maxWidth: .infinity, alignment: .leading) .padding(.trailing, 4) Spacer() diff --git a/Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift b/Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift index 679d65e4a..c0c47ccdb 100644 --- a/Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift +++ b/Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift @@ -10,7 +10,7 @@ import SwiftUI struct TimelineLayoutView: View { - @EnvironmentObject private var appSettings: AppDefaults + @EnvironmentObject private var defaults: AppDefaults private let sampleTitle = "Lorem dolor sed viverra ipsum. Gravida rutrum quisque non tellus. Rutrum tellus pellentesque eu tincidunt tortor. Sed blandit libero volutpat sed cras ornare. Et netus et malesuada fames ac. Ultrices eros in cursus turpis massa tincidunt dui ut ornare. Lacus sed viverra tellus in. Sollicitudin ac orci phasellus egestas. Purus in mollis nunc sed. Sollicitudin ac orci phasellus egestas tellus rutrum tellus pellentesque. Interdum consectetur libero id faucibus nisl tincidunt eget." @@ -33,15 +33,17 @@ struct TimelineLayoutView: View { } var iconSize: some View { - Slider(value: $appSettings.timelineIconDimensions, in: 20...60, step: 10, minimumValueLabel: Text("Small"), maximumValueLabel: Text("Large"), label: { - Text(String(appSettings.timelineIconDimensions)) + Slider(value: $defaults.timelineIconDimensions, in: 20...60, step: 10, minimumValueLabel: Text("Small"), maximumValueLabel: Text("Large"), label: { + Text(String(defaults.timelineIconDimensions)) }) } var numberOfLines: some View { - Stepper(value: $appSettings.timelineNumberOfLines, in: 1...5, label: { - Text("Title") + Slider(value: $defaults.timelineNumberOfLines, in: 1...5, step: 1, minimumValueLabel: Text("1"), maximumValueLabel: Text("5"), label: { + Text("Article Title") }) + + } var timelineRowPreview: some View { @@ -54,13 +56,13 @@ struct TimelineLayoutView: View { Image(systemName: "paperplane.circle") .resizable() - .frame(width: CGFloat(appSettings.timelineIconDimensions), height: CGFloat(appSettings.timelineIconDimensions), alignment: .top) + .frame(width: CGFloat(defaults.timelineIconDimensions), height: CGFloat(defaults.timelineIconDimensions), alignment: .top) .foregroundColor(.accentColor) VStack(alignment: .leading, spacing: 4) { Text(sampleTitle) .font(.headline) - .lineLimit(appSettings.timelineNumberOfLines) + .lineLimit(Int(defaults.timelineNumberOfLines)) HStack { Text("Feed Name") .foregroundColor(.secondary) From d8df24e997f32e50655876e1b298a3c53a5b3ca4 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 6 Jul 2020 20:18:50 +0800 Subject: [PATCH 2/3] removes reference to old appSettings var --- Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift index bc6569699..22b539215 100644 --- a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift +++ b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift @@ -10,7 +10,7 @@ import SwiftUI struct SidebarToolbarModifier: ViewModifier { - @EnvironmentObject private var appSettings: AppDefaults + @EnvironmentObject private var defaults: AppDefaults @StateObject private var viewModel = SidebarToolbarModel() @ViewBuilder func body(content: Content) -> some View { From d1f7473a027d620ffaf68ec024a2a8daf454eb71 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Mon, 6 Jul 2020 16:30:50 -0500 Subject: [PATCH 3/3] Moved items to match current layout --- .../{Submenus => }/ColorPaletteContainerView.swift | 0 .../Settings/{Submenus => }/TimelineLayoutView.swift | 0 NetNewsWire.xcodeproj/project.pbxproj | 12 ++---------- 3 files changed, 2 insertions(+), 10 deletions(-) rename Multiplatform/iOS/Settings/{Submenus => }/ColorPaletteContainerView.swift (100%) rename Multiplatform/iOS/Settings/{Submenus => }/TimelineLayoutView.swift (100%) diff --git a/Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift b/Multiplatform/iOS/Settings/ColorPaletteContainerView.swift similarity index 100% rename from Multiplatform/iOS/Settings/Submenus/ColorPaletteContainerView.swift rename to Multiplatform/iOS/Settings/ColorPaletteContainerView.swift diff --git a/Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift b/Multiplatform/iOS/Settings/TimelineLayoutView.swift similarity index 100% rename from Multiplatform/iOS/Settings/Submenus/TimelineLayoutView.swift rename to Multiplatform/iOS/Settings/TimelineLayoutView.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 20a5e98dd..31d9a0c28 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -2412,9 +2412,10 @@ isa = PBXGroup; children = ( 65C2E40024B05D8A000AFDF6 /* FeedsSettingsModel.swift */, + 17B223DB24AC24D2001E4592 /* TimelineLayoutView.swift */, + 65CBAD5924AE03C20006DD91 /* ColorPaletteContainerView.swift */, 5181C66124B0C326002E0F70 /* SettingsModel.swift */, 172199C824AB228900A31D04 /* SettingsView.swift */, - 17B223B924AC24A8001E4592 /* Submenus */, ); path = Settings; sourceTree = ""; @@ -2449,15 +2450,6 @@ path = Add; sourceTree = ""; }; - 17B223B924AC24A8001E4592 /* Submenus */ = { - isa = PBXGroup; - children = ( - 17B223DB24AC24D2001E4592 /* TimelineLayoutView.swift */, - 65CBAD5924AE03C20006DD91 /* ColorPaletteContainerView.swift */, - ); - path = Submenus; - sourceTree = ""; - }; 510289CE2451BA1E00426DDF /* Twitter */ = { isa = PBXGroup; children = (