aboutsummaryrefslogtreecommitdiff
path: root/Map/Data
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-07-11 14:55:46 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2025-07-11 14:55:46 +0200
commit49766f0c78015831f8be57349317f0d1c8228327 (patch)
tree47ceb138008134dc83ad8432c744e3174854cb2c /Map/Data
parentf8c877e01e6517b13ec085d9d79bf316c7637344 (diff)
Add QuickLook settings
Diffstat (limited to 'Map/Data')
-rw-r--r--Map/Data/UserPreferences.swift43
1 files changed, 42 insertions, 1 deletions
diff --git a/Map/Data/UserPreferences.swift b/Map/Data/UserPreferences.swift
index 56582e3..01c4f37 100644
--- a/Map/Data/UserPreferences.swift
+++ b/Map/Data/UserPreferences.swift
@@ -15,6 +15,24 @@
import Foundation
+// MARK: - Enums
+enum QuickLookPreviewStyle: String, CaseIterable, Codable {
+ case map = "map"
+ case highlightedText = "highlighted_text"
+ case plainText = "plain_text"
+
+ var localizedName: String {
+ switch self {
+ case .map:
+ return String(localized: "preferences.quick_look.preview_style.map")
+ case .highlightedText:
+ return String(localized: "preferences.quick_look.preview_style.highlighted_text")
+ case .plainText:
+ return String(localized: "preferences.quick_look.preview_style.plain_text")
+ }
+ }
+}
+
// MARK: - JSON Export/Import Structures
struct UserPreferencesJSON: Codable {
// MARK: - Map Preferences
@@ -41,6 +59,9 @@ struct UserPreferencesJSON: Codable {
// MARK: - UI Preferences
var viewStyle: String?
var zoom: Double?
+
+ // MARK: - QuickLook Preferences
+ var quickLookPreviewStyle: String?
}
struct UserPreferences: Codable {
@@ -70,6 +91,9 @@ struct UserPreferences: Codable {
var viewStyle: String
var zoom: Double
+ // MARK: - QuickLook Preferences
+ var quickLookPreviewStyle: String
+
// MARK: - Default Values
struct Defaults {
static let showMapBackground = true
@@ -88,6 +112,8 @@ struct UserPreferences: Codable {
static let viewStyle = "horizontal"
static let zoom = 1.0
+ static let quickLookPreviewStyle = QuickLookPreviewStyle.map.rawValue
+
// Computed properties for complex defaults
static var mapTemplates: Data {
let defaultTemplate = Template(
@@ -133,6 +159,8 @@ struct UserPreferences: Codable {
self.viewStyle = Defaults.viewStyle
self.zoom = Defaults.zoom
+
+ self.quickLookPreviewStyle = Defaults.quickLookPreviewStyle
}
// MARK: - JSON Methods
@@ -157,7 +185,8 @@ struct UserPreferences: Codable {
mapTemplates: templatesFromData(mapTemplates),
customStages: stagesFromData(customStages),
viewStyle: viewStyle,
- zoom: zoom
+ zoom: zoom,
+ quickLookPreviewStyle: quickLookPreviewStyle
)
let data = try encoder.encode(jsonPrefs)
@@ -220,6 +249,9 @@ struct UserPreferences: Codable {
if let value = jsonPrefs.zoom {
self.zoom = value
}
+ if let value = jsonPrefs.quickLookPreviewStyle {
+ self.quickLookPreviewStyle = value
+ }
apply()
return true
@@ -267,6 +299,7 @@ struct UserPreferences: Codable {
// MARK: - Apply to UserDefaults
private func apply() {
let defaults = UserDefaults.standard
+ let sharedDefaults = UserDefaults(suiteName: "group.systems.tranquil.Map")
// Map Preferences
defaults.set(showMapBackground, forKey: "showMapBackground")
@@ -292,6 +325,10 @@ struct UserPreferences: Codable {
// UI Preferences
defaults.set(viewStyle, forKey: "viewStyle")
defaults.set(zoom, forKey: "zoom")
+
+ // QuickLook Preferences - write to both standard and shared UserDefaults
+ defaults.set(quickLookPreviewStyle, forKey: "quickLookPreviewStyle")
+ sharedDefaults?.set(quickLookPreviewStyle, forKey: "quickLookPreviewStyle")
}
// MARK: - Load from UserDefaults
@@ -340,6 +377,10 @@ struct UserPreferences: Codable {
preferences.viewStyle = defaults.object(forKey: "viewStyle") as? String ?? Defaults.viewStyle
preferences.zoom = defaults.object(forKey: "zoom") as? Double ?? Defaults.zoom
+ // QuickLook Preferences
+ preferences.quickLookPreviewStyle =
+ defaults.object(forKey: "quickLookPreviewStyle") as? String ?? Defaults.quickLookPreviewStyle
+
return preferences
}
}