X-Git-Url: https://git.r.bdr.sh/rbdr/captura/blobdiff_plain/c9b9e1d654ea697afad9f6427d94623bfdf55cce..47eb1128eb930279d0fcf2e836d78372ac7ef5c3:/Captura/Presentation/Settings/OutputSettings.swift?ds=sidebyside diff --git a/Captura/Presentation/Settings/OutputSettings.swift b/Captura/Presentation/Settings/OutputSettings.swift index df12541..9dc5be9 100644 --- a/Captura/Presentation/Settings/OutputSettings.swift +++ b/Captura/Presentation/Settings/OutputSettings.swift @@ -1,15 +1,33 @@ +/* + Copyright (C) 2024 Rubén Beltrán del Río + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see https://captura.tranquil.systems. + */ import SwiftUI struct OutputSettings: View { - + @AppStorage("outputFormats") var outputFormats: OutputFormatSetting = .all @AppStorage("frameRate") var frameRate = 10.0 - + + private var anyState: String { "\(outputFormats), \(frameRate)" } + var body: some View { Form { - VStack (alignment: .center) { + VStack(alignment: .center) { LabeledContent("GIF Framerate") { - Slider(value: $frameRate, in: 4...10, step: 1) { + Slider(value: $frameRate, in: 4...10, step: 1) { Text("\(Int(frameRate))").font(.body).frame(width: 24) } minimumValueLabel: { Text("4") @@ -26,7 +44,7 @@ struct OutputSettings: View { .tag(OutputFormatSetting.gifOnly) .padding(.horizontal, 4.0) .padding(.vertical, 2.0) - + Text("Only MP4") .tag(OutputFormatSetting.mp4Only) .padding(.horizontal, 4.0) @@ -35,6 +53,9 @@ struct OutputSettings: View { } Spacer() } + .onChange(of: anyState) { _ in + NotificationCenter.default.post(name: .reloadConfiguration, object: nil, userInfo: nil) + } } }