1
0
mirror of https://github.com/yattee/yattee.git synced 2025-04-27 23:40:35 +05:30

Add setting to disable chapters and related, add info section in

player settings
This commit is contained in:
Arkadiusz Fal 2023-10-15 00:37:02 +02:00
parent 04e56638ce
commit 4c707271c3
4 changed files with 58 additions and 34 deletions

View File

@ -263,6 +263,8 @@ extension Defaults.Keys {
static let hideShorts = Key<Bool>("hideShorts", default: false) static let hideShorts = Key<Bool>("hideShorts", default: false)
static let hideWatched = Key<Bool>("hideWatched", default: false) static let hideWatched = Key<Bool>("hideWatched", default: false)
static let showInspector = Key<ShowInspectorSetting>("showInspector", default: .onlyLocal) static let showInspector = Key<ShowInspectorSetting>("showInspector", default: .onlyLocal)
static let showChapters = Key<Bool>("showChapters", default: true)
static let showRelated = Key<Bool>("showRelated", default: true)
static let widgetsSettings = Key<[WidgetSettings]>("widgetsSettings", default: []) static let widgetsSettings = Key<[WidgetSettings]>("widgetsSettings", default: [])
} }

View File

@ -184,6 +184,8 @@ struct VideoDetails: View {
@Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike @Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike
@Default(.playerSidebar) private var playerSidebar @Default(.playerSidebar) private var playerSidebar
@Default(.showInspector) private var showInspector @Default(.showInspector) private var showInspector
@Default(.showChapters) private var showChapters
@Default(.showRelated) private var showRelated
#if !os(tvOS) #if !os(tvOS)
@Default(.showScrollToTopInComments) private var showScrollToTopInComments @Default(.showScrollToTopInComments) private var showScrollToTopInComments
#endif #endif
@ -309,29 +311,29 @@ struct VideoDetails: View {
.padding(.horizontal) .padding(.horizontal)
} }
if player.videoBeingOpened.isNil, if player.videoBeingOpened.isNil {
!video.isLocal, if showChapters,
!video.chapters.isEmpty !video.isLocal,
{ !video.chapters.isEmpty
Section(header: chaptersHeader) { {
ChaptersView() Section(header: chaptersHeader) {
ChaptersView()
}
} }
}
if player.videoBeingOpened.isNil, if showInspector == .always || video.isLocal {
video.isLocal || showInspector == .always InspectorView(video: player.videoForDisplay)
{ .padding(.horizontal)
InspectorView(video: player.videoForDisplay) }
.padding(.horizontal)
}
if player.videoBeingOpened.isNil, if showRelated,
!sidebarQueue, !sidebarQueue,
!(player.videoForDisplay?.related.isEmpty ?? true) !(player.videoForDisplay?.related.isEmpty ?? true)
{ {
RelatedView() RelatedView()
.padding(.horizontal) .padding(.horizontal)
.padding(.top, 20) .padding(.top, 20)
}
} }
} }
} }

View File

@ -30,6 +30,8 @@ struct PlayerSettings: View {
@Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike @Default(.enableReturnYouTubeDislike) private var enableReturnYouTubeDislike
@Default(.showInspector) private var showInspector @Default(.showInspector) private var showInspector
@Default(.showChapters) private var showChapters
@Default(.showRelated) private var showRelated
@ObservedObject private var accounts = AccountsModel.shared @ObservedObject private var accounts = AccountsModel.shared
@ -73,8 +75,19 @@ struct PlayerSettings: View {
} }
#if !os(tvOS) #if !os(tvOS)
Section(header: SettingsHeader(text: "Inspector".localized())) { Section(header: SettingsHeader(text: "Info".localized())) {
inspectorVisibilityPicker expandVideoDescriptionToggle
showChaptersToggle
showRelatedToggle
#if os(macOS)
HStack {
Text("Inspector")
inspectorVisibilityPicker
}
.padding(.leading, 20)
#else
inspectorVisibilityPicker
#endif
} }
#endif #endif
@ -96,9 +109,6 @@ struct PlayerSettings: View {
showScrollToTopInCommentsToggle showScrollToTopInCommentsToggle
#endif #endif
#if !os(tvOS)
expandVideoDescriptionToggle
#endif
returnYouTubeDislikeToggle returnYouTubeDislikeToggle
} }
} }
@ -240,15 +250,25 @@ struct PlayerSettings: View {
} }
#endif #endif
private var inspectorVisibilityPicker: some View { #if !os(tvOS)
Picker("Visibility", selection: $showInspector) { private var inspectorVisibilityPicker: some View {
Text("Always").tag(ShowInspectorSetting.always) Picker("Inspector", selection: $showInspector) {
Text("Only for local files and URLs").tag(ShowInspectorSetting.onlyLocal) Text("Always").tag(ShowInspectorSetting.always)
Text("Only for local files and URLs").tag(ShowInspectorSetting.onlyLocal)
}
#if os(macOS)
.labelsHidden()
#endif
} }
#if os(macOS)
.labelsHidden() private var showChaptersToggle: some View {
#endif Toggle("Chapters", isOn: $showChapters)
} }
private var showRelatedToggle: some View {
Toggle("Related", isOn: $showRelated)
}
#endif
} }
struct PlayerSettings_Previews: PreviewProvider { struct PlayerSettings_Previews: PreviewProvider {

View File

@ -266,7 +266,7 @@ struct SettingsView: View {
case .browsing: case .browsing:
return 800 return 800
case .player: case .player:
return 480 return 500
case .controls: case .controls:
return 920 return 920
case .quality: case .quality: