1
0
mirror of https://github.com/yattee/yattee.git synced 2025-04-27 07:20:32 +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 hideWatched = Key<Bool>("hideWatched", default: false)
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: [])
}

View File

@ -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)
}
}
}
}

View File

@ -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 {

View File

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