diff --git a/Shared/Defaults.swift b/Shared/Defaults.swift index 1e4d156d..26dc7728 100644 --- a/Shared/Defaults.swift +++ b/Shared/Defaults.swift @@ -263,6 +263,8 @@ extension Defaults.Keys { static let hideShorts = Key("hideShorts", default: false) static let hideWatched = Key("hideWatched", default: false) static let showInspector = Key("showInspector", default: .onlyLocal) + static let showChapters = Key("showChapters", default: true) + static let showRelated = Key("showRelated", default: true) static let widgetsSettings = Key<[WidgetSettings]>("widgetsSettings", default: []) } diff --git a/Shared/Player/Video Details/VideoDetails.swift b/Shared/Player/Video Details/VideoDetails.swift index b5c5bb35..4f7d0539 100644 --- a/Shared/Player/Video Details/VideoDetails.swift +++ b/Shared/Player/Video Details/VideoDetails.swift @@ -184,6 +184,8 @@ struct VideoDetails: View { @Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike @Default(.playerSidebar) private var playerSidebar @Default(.showInspector) private var showInspector + @Default(.showChapters) private var showChapters + @Default(.showRelated) private var showRelated #if !os(tvOS) @Default(.showScrollToTopInComments) private var showScrollToTopInComments #endif @@ -309,29 +311,29 @@ struct VideoDetails: View { .padding(.horizontal) } - if player.videoBeingOpened.isNil, - !video.isLocal, - !video.chapters.isEmpty - { - Section(header: chaptersHeader) { - ChaptersView() + if player.videoBeingOpened.isNil { + if showChapters, + !video.isLocal, + !video.chapters.isEmpty + { + Section(header: chaptersHeader) { + ChaptersView() + } } - } - if player.videoBeingOpened.isNil, - video.isLocal || showInspector == .always - { - InspectorView(video: player.videoForDisplay) - .padding(.horizontal) - } + if showInspector == .always || video.isLocal { + InspectorView(video: player.videoForDisplay) + .padding(.horizontal) + } - if player.videoBeingOpened.isNil, - !sidebarQueue, - !(player.videoForDisplay?.related.isEmpty ?? true) - { - RelatedView() - .padding(.horizontal) - .padding(.top, 20) + if showRelated, + !sidebarQueue, + !(player.videoForDisplay?.related.isEmpty ?? true) + { + RelatedView() + .padding(.horizontal) + .padding(.top, 20) + } } } } diff --git a/Shared/Settings/PlayerSettings.swift b/Shared/Settings/PlayerSettings.swift index e4eccf74..aee4c07d 100644 --- a/Shared/Settings/PlayerSettings.swift +++ b/Shared/Settings/PlayerSettings.swift @@ -30,6 +30,8 @@ struct PlayerSettings: View { @Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike @Default(.showInspector) private var showInspector + @Default(.showChapters) private var showChapters + @Default(.showRelated) private var showRelated @ObservedObject private var accounts = AccountsModel.shared @@ -73,8 +75,19 @@ struct PlayerSettings: View { } #if !os(tvOS) - Section(header: SettingsHeader(text: "Inspector".localized())) { - inspectorVisibilityPicker + Section(header: SettingsHeader(text: "Info".localized())) { + expandVideoDescriptionToggle + showChaptersToggle + showRelatedToggle + #if os(macOS) + HStack { + Text("Inspector") + inspectorVisibilityPicker + } + .padding(.leading, 20) + #else + inspectorVisibilityPicker + #endif } #endif @@ -96,9 +109,6 @@ struct PlayerSettings: View { showScrollToTopInCommentsToggle #endif - #if !os(tvOS) - expandVideoDescriptionToggle - #endif returnYouTubeDislikeToggle } } @@ -240,15 +250,25 @@ struct PlayerSettings: View { } #endif - private var inspectorVisibilityPicker: some View { - Picker("Visibility", selection: $showInspector) { - Text("Always").tag(ShowInspectorSetting.always) - Text("Only for local files and URLs").tag(ShowInspectorSetting.onlyLocal) + #if !os(tvOS) + private var inspectorVisibilityPicker: some View { + Picker("Inspector", selection: $showInspector) { + Text("Always").tag(ShowInspectorSetting.always) + Text("Only for local files and URLs").tag(ShowInspectorSetting.onlyLocal) + } + #if os(macOS) + .labelsHidden() + #endif } - #if os(macOS) - .labelsHidden() - #endif - } + + private var showChaptersToggle: some View { + Toggle("Chapters", isOn: $showChapters) + } + + private var showRelatedToggle: some View { + Toggle("Related", isOn: $showRelated) + } + #endif } struct PlayerSettings_Previews: PreviewProvider { diff --git a/Shared/Settings/SettingsView.swift b/Shared/Settings/SettingsView.swift index b7b68a08..63d63085 100644 --- a/Shared/Settings/SettingsView.swift +++ b/Shared/Settings/SettingsView.swift @@ -266,7 +266,7 @@ struct SettingsView: View { case .browsing: return 800 case .player: - return 480 + return 500 case .controls: return 920 case .quality: