]> git.r.bdr.sh - rbdr/captura/blobdiff - Captura/Presentation/Settings/AdvancedSettings.swift
Add AppleScript support
[rbdr/captura] / Captura / Presentation / Settings / AdvancedSettings.swift
index 8799436781ff8a7a4e86bcde88b5a0faf12feecc..66314b481582ced4359fa2a2e8b2bc1f39c92a91 100644 (file)
@@ -1,13 +1,16 @@
 import SwiftUI
+import CloudStorage
 
 struct AdvancedSettings: View {
   
-  @AppStorage("backendUrl") var backendUrl: String = ""
-  @AppStorage("backendFormat") var outputFormats: OutputFormatSetting = .gifOnly
-  @AppStorage("keepFiles") var keepFiles = true
-  @AppStorage("allowURLAutomation") var allowURLAutomation = false
+  @CloudStorage("backendUrl") var backendUrl: String = ""
+  @CloudStorage("backendFormat") var backendFormat: OutputFormatSetting = .gifOnly
+  @CloudStorage("keepFiles") var keepFiles = true
+  @CloudStorage("allowURLAutomation") var allowURLAutomation = false
   @State var showConfirmation = false
   
+  private var anyState: String { "\(backendUrl), \(backendFormat), \(keepFiles), \(allowURLAutomation)" }
+  
   var parsedBackendUrl: URL? {
     URL(string: backendUrl)
   }
@@ -21,7 +24,7 @@ struct AdvancedSettings: View {
               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)) {
+            Picker(selection: $backendFormat, label: Text("Backend Format").font(.headline)) {
               Text("GIF")
                 .tag(OutputFormatSetting.gifOnly)
                 .padding(.horizontal, 4.0)
@@ -72,6 +75,9 @@ struct AdvancedSettings: View {
         Spacer()
       }
     }
+    .onChange(of: anyState) { _ in
+      NotificationCenter.default.post(name: .reloadConfiguration, object: nil, userInfo: nil)
+    }
   }
 }