]> git.r.bdr.sh - rbdr/captura/blobdiff - Captura/Presentation/Settings/AdvancedSettings.swift
Complete initial release
[rbdr/captura] / Captura / Presentation / Settings / AdvancedSettings.swift
index 7ed78d967e2acd01951581f407901661d503a11d..872d0c0fa4c698899a3b5b64d9692d47ac5c540c 100644 (file)
@@ -3,25 +3,46 @@ import SwiftUI
 struct AdvancedSettings: View {
   
   @AppStorage("backendUrl") var backendUrl: String = ""
+  @AppStorage("backendFormat") var outputFormats: OutputFormatSetting = .gifOnly
   @AppStorage("keepFiles") var keepFiles = true
   
+  var parsedBackendUrl: URL? {
+    URL(string: backendUrl)
+  }
+  
   var body: some View {
     Form {
-      VStack (alignment: .leading) {
+      VStack (alignment: .center) {
         LabeledContent("Backend URL") {
-          TextField("", text: $backendUrl)
-        }.font(.headline)
-        LabeledContent("Keep files after remote upload") {
-          Toggle("", isOn: $keepFiles)
+          TextField("", text: $backendUrl).font(.body)
         }.font(.headline)
+          .help("The Backend URL to use. If this is empty, no backend will be used and the options below won't have an effect.")
+        Picker(selection: $outputFormats, label: Text("Backend Format").font(.headline)) {
+          Text("GIF")
+            .tag(OutputFormatSetting.gifOnly)
+            .padding(.horizontal, 4.0)
+            .padding(.vertical, 2.0)
+          Text("MP4")
+            .tag(OutputFormatSetting.mp4Only)
+            .padding(.horizontal, 4.0)
+            .padding(.vertical, 2.0)
+        }
+          .pickerStyle(.radioGroup)
+          .disabled(parsedBackendUrl == nil)
+          .help("The format picked here will be generated regardless of what option you pick in the output settings. It doesn't prevent files from being rendered.")
+        Toggle("Keep Local Files", isOn: $keepFiles)
+          .font(.headline)
+          .disabled(parsedBackendUrl == nil)
+          .padding(.vertical, 8.0)
+          .help("If this is off, locally generated recordings will be deleted immediately after a successful upload.")
         HStack {
-          Text("These settings can break things!")
-          Button {
-            print("Not yet!")
-          } label: {
+          Text("These settings can break things! Please make sure you understand how to use them before enabling.")
+            .lineLimit(3...10)
+          Link(destination: URL(string: "https://captura.tranquil.systems")!) {
             Image(systemName: "info.circle")
           }.buttonStyle(.borderless)
         }
+        Spacer()
       }
     }
   }