mirror of
https://github.com/yattee/yattee.git
synced 2024-12-22 21:43:41 +00:00
add stepper for previewed line (broken on macOS)
This commit is contained in:
parent
84fdc22861
commit
5d78946320
@ -147,6 +147,7 @@ extension Defaults.Keys {
|
||||
static let expandVideoDescriptionDefault = true
|
||||
#endif
|
||||
static let expandVideoDescription = Key<Bool>("expandVideoDescription", default: expandVideoDescriptionDefault)
|
||||
static let collapsedLinesDescription = Key<Int>("collapsedLinesDescription", default: 5)
|
||||
|
||||
static let showChannelAvatarInChannelsLists = Key<Bool>("showChannelAvatarInChannelsLists", default: true)
|
||||
static let showChannelAvatarInVideosListing = Key<Bool>("showChannelAvatarInVideosListing", default: true)
|
||||
|
@ -6,11 +6,10 @@ import Foundation
|
||||
import SwiftUI
|
||||
|
||||
struct VideoDescription: View {
|
||||
static let collapsedLines = 5
|
||||
|
||||
private var search: SearchModel { .shared }
|
||||
@Default(.showKeywords) private var showKeywords
|
||||
@Default(.expandVideoDescription) private var expandVideoDescription
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
|
||||
var video: Video
|
||||
var detailsSize: CGSize?
|
||||
@ -51,14 +50,14 @@ struct VideoDescription: View {
|
||||
if #available(macOS 12, *) {
|
||||
DescriptionWithLinks(description: description, detailsSize: detailsSize)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.lineLimit(shouldExpand ? 500 : Self.collapsedLines)
|
||||
.lineLimit(shouldExpand ? 500 : collapsedLinesDescription)
|
||||
#if !os(tvOS)
|
||||
.textSelection(.enabled)
|
||||
#endif
|
||||
} else {
|
||||
Text(description)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.lineLimit(shouldExpand ? 500 : Self.collapsedLines)
|
||||
.lineLimit(shouldExpand ? 500 : collapsedLinesDescription)
|
||||
}
|
||||
}
|
||||
.multilineTextAlignment(.leading)
|
||||
@ -142,6 +141,8 @@ struct VideoDescription: View {
|
||||
|
||||
@Environment(\.openURL) private var openURL
|
||||
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
|
||||
var player = PlayerModel.shared
|
||||
|
||||
func makeUIView(context _: Context) -> some UIView {
|
||||
@ -175,7 +176,7 @@ struct VideoDescription: View {
|
||||
}
|
||||
|
||||
func updateNumberOfLines() {
|
||||
label.numberOfLines = expand ? 0 : VideoDescription.collapsedLines
|
||||
label.numberOfLines = expand ? 0 : collapsedLinesDescription
|
||||
}
|
||||
|
||||
func urlTapHandler(_ url: URL) {
|
||||
|
@ -12,6 +12,7 @@ struct PlayerSettings: View {
|
||||
@Default(.showScrollToTopInComments) private var showScrollToTopInComments
|
||||
#endif
|
||||
@Default(.expandVideoDescription) private var expandVideoDescription
|
||||
@Default(.collapsedLinesDescription) private var collapsedLinesDescription
|
||||
@Default(.pauseOnHidingPlayer) private var pauseOnHidingPlayer
|
||||
@Default(.closeVideoOnEOF) private var closeVideoOnEOF
|
||||
#if os(iOS)
|
||||
@ -77,6 +78,7 @@ struct PlayerSettings: View {
|
||||
#if !os(tvOS)
|
||||
Section(header: SettingsHeader(text: "Info".localized())) {
|
||||
expandVideoDescriptionToggle
|
||||
collapsedLineDescriptionStepper
|
||||
showChaptersToggle
|
||||
showRelatedToggle
|
||||
#if os(macOS)
|
||||
@ -194,6 +196,19 @@ struct PlayerSettings: View {
|
||||
Toggle("Open video description expanded", isOn: $expandVideoDescription)
|
||||
}
|
||||
|
||||
private var collapsedLineDescriptionStepper: some View {
|
||||
Stepper(value: $collapsedLinesDescription, in: 0 ... 10) {
|
||||
Text("Description preview")
|
||||
if collapsedLinesDescription == 0 {
|
||||
Text("No preview")
|
||||
} else if collapsedLinesDescription == 1 {
|
||||
Text("\(collapsedLinesDescription) line")
|
||||
} else {
|
||||
Text("\(collapsedLinesDescription) lines")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var returnYouTubeDislikeToggle: some View {
|
||||
Toggle("Enable Return YouTube Dislike", isOn: $enableReturnYouTubeDislike)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user