From 94a9557ba60973daf34e7e36cf9d2815d2e2d3e3 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 10 Aug 2020 08:01:16 +0800 Subject: [PATCH 1/5] Adds sidebar toggling from toolbar. --- .../Shared/SceneNavigationView.swift | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Multiplatform/Shared/SceneNavigationView.swift b/Multiplatform/Shared/SceneNavigationView.swift index 354142226..a3509699d 100644 --- a/Multiplatform/Shared/SceneNavigationView.swift +++ b/Multiplatform/Shared/SceneNavigationView.swift @@ -8,6 +8,9 @@ import SwiftUI import Account +#if os(macOS) +import AppKit +#endif struct SceneNavigationView: View { @@ -99,6 +102,14 @@ struct SceneNavigationView: View { .toolbar { #if os(macOS) + ToolbarItem(placement: .navigation) { + Button { + NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil) + } label: { + Image(systemName: "sidebar.left") + } + .help("Toggle Sidebar").padding(.trailing, 40) + } ToolbarItem() { Menu { Button("Add Web Feed", action: { sheetToShow = .web }) @@ -111,8 +122,6 @@ struct SceneNavigationView: View { } ToolbarItem { Button { -// AccountManager.shared.refreshAll(errorHandler: handleRefreshError) - AccountManager.shared.refreshAll(completion: nil) } label: { @@ -130,10 +139,10 @@ struct SceneNavigationView: View { .disabled(sceneModel.markAllAsReadButtonState == nil) .help("Mark All as Read") } - ToolbarItem { - MacSearchField() - .frame(width: 200) - } +// ToolbarItem { +// MacSearchField() +// .frame(width: 200) +// } ToolbarItem { Button { sceneModel.goToNextUnread() From 88ee63ba6836ab71190300253022ac0bedd0ff87 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 10 Aug 2020 08:28:17 +0800 Subject: [PATCH 2/5] Adds #warning message for AppKit usage. --- Multiplatform/Shared/SceneNavigationView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Multiplatform/Shared/SceneNavigationView.swift b/Multiplatform/Shared/SceneNavigationView.swift index a3509699d..cfe0c168a 100644 --- a/Multiplatform/Shared/SceneNavigationView.swift +++ b/Multiplatform/Shared/SceneNavigationView.swift @@ -104,6 +104,7 @@ struct SceneNavigationView: View { #if os(macOS) ToolbarItem(placement: .navigation) { Button { + #warning("Use of AppKit in SwiftUI.") NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil) } label: { Image(systemName: "sidebar.left") From dadff04da5ce46a2206d6f33d22d56af3be4d6dd Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 10 Aug 2020 08:31:10 +0800 Subject: [PATCH 3/5] Removes padding. --- Multiplatform/Shared/SceneNavigationView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiplatform/Shared/SceneNavigationView.swift b/Multiplatform/Shared/SceneNavigationView.swift index cfe0c168a..5fff55137 100644 --- a/Multiplatform/Shared/SceneNavigationView.swift +++ b/Multiplatform/Shared/SceneNavigationView.swift @@ -109,7 +109,7 @@ struct SceneNavigationView: View { } label: { Image(systemName: "sidebar.left") } - .help("Toggle Sidebar").padding(.trailing, 40) + .help("Toggle Sidebar") } ToolbarItem() { Menu { From cd20632b5d58ac466fadc53be82221393f5f0e72 Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 10 Aug 2020 08:36:31 +0800 Subject: [PATCH 4/5] Adds sidebar toggle image to app assets --- Multiplatform/Shared/AppAssets.swift | 4 ++++ Multiplatform/Shared/SceneNavigationView.swift | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Multiplatform/Shared/AppAssets.swift b/Multiplatform/Shared/AppAssets.swift index 3c0953c2f..244c5fb87 100644 --- a/Multiplatform/Shared/AppAssets.swift +++ b/Multiplatform/Shared/AppAssets.swift @@ -301,6 +301,10 @@ struct AppAssets { return IconImage(coloredImage, isSymbol: true) #endif } + + static var sidebarToggleImage: Image { + return Image(systemName: "sidebar.left") + } #if os(macOS) static var webStatusBarBackground: NSColor = { diff --git a/Multiplatform/Shared/SceneNavigationView.swift b/Multiplatform/Shared/SceneNavigationView.swift index 5fff55137..fdc5d0b5b 100644 --- a/Multiplatform/Shared/SceneNavigationView.swift +++ b/Multiplatform/Shared/SceneNavigationView.swift @@ -107,7 +107,7 @@ struct SceneNavigationView: View { #warning("Use of AppKit in SwiftUI.") NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil) } label: { - Image(systemName: "sidebar.left") + AppAssets.sidebarToggleImage } .help("Toggle Sidebar") } From 36acd84c14c7d32210318d151edd1d45c06a665a Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Mon, 10 Aug 2020 08:50:46 +0800 Subject: [PATCH 5/5] Removes #warning (Also .preferredColorScheme(AppDefaults.userInterfaceColorScheme) is still needed on macOS Settings) --- Multiplatform/Shared/MainApp.swift | 1 + Multiplatform/Shared/SceneNavigationView.swift | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index 5b1f7a603..7d987072d 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -110,6 +110,7 @@ struct MainApp: App { } .tag(MacPreferencePane.advanced) } + .preferredColorScheme(AppDefaults.userInterfaceColorScheme) .frame(width: 500) .padding() } diff --git a/Multiplatform/Shared/SceneNavigationView.swift b/Multiplatform/Shared/SceneNavigationView.swift index fdc5d0b5b..da2d1211b 100644 --- a/Multiplatform/Shared/SceneNavigationView.swift +++ b/Multiplatform/Shared/SceneNavigationView.swift @@ -104,7 +104,6 @@ struct SceneNavigationView: View { #if os(macOS) ToolbarItem(placement: .navigation) { Button { - #warning("Use of AppKit in SwiftUI.") NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil) } label: { AppAssets.sidebarToggleImage