]> git.r.bdr.sh - rbdr/captura/blobdiff - Captura/Presentation/Settings/OutputSettings.swift
Format the code
[rbdr/captura] / Captura / Presentation / Settings / OutputSettings.swift
index 3b8e01cee8118f12d7a5f3ae2c26832e90893f35..9dc5be96f05aaa06bd739530cbe0ba57445c0978 100644 (file)
@@ -1,20 +1,38 @@
+/*
+ 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: .leading) {
+      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")
           } maximumValueLabel: {
-            Text("12")
+            Text("10")
           }
         }.font(.headline)
         Picker(selection: $outputFormats, label: Text("Output Formats").font(.headline)) {
@@ -26,13 +44,17 @@ struct OutputSettings: View {
             .tag(OutputFormatSetting.gifOnly)
             .padding(.horizontal, 4.0)
             .padding(.vertical, 2.0)
-          
+
           Text("Only MP4")
             .tag(OutputFormatSetting.mp4Only)
             .padding(.horizontal, 4.0)
             .padding(.vertical, 2.0)
         }.pickerStyle(.radioGroup)
       }
+      Spacer()
+    }
+    .onChange(of: anyState) { _ in
+      NotificationCenter.default.post(name: .reloadConfiguration, object: nil, userInfo: nil)
     }
   }
 }