aboutsummaryrefslogtreecommitdiff
path: root/Map/Presentation
diff options
context:
space:
mode:
Diffstat (limited to 'Map/Presentation')
-rw-r--r--Map/Presentation/Base Components/MapTextEditor.swift16
-rw-r--r--Map/Presentation/MapEditor.swift4
-rw-r--r--Map/Presentation/Preferences/EditorPreferencesView.swift9
3 files changed, 24 insertions, 5 deletions
diff --git a/Map/Presentation/Base Components/MapTextEditor.swift b/Map/Presentation/Base Components/MapTextEditor.swift
index c4ac561..4295918 100644
--- a/Map/Presentation/Base Components/MapTextEditor.swift
+++ b/Map/Presentation/Base Components/MapTextEditor.swift
@@ -82,12 +82,20 @@ class MapTextEditorController: NSViewController {
textView.font = NSFont.Theme.Editor.regular
textView.textContainerInset = NSSize(width: 0, height: Dimensions.Spacing.coziest)
- // Disable word wrapping to prevent flashing on soft-wrapped lines
- textView.textContainer?.widthTracksTextView = false
- textView.textContainer?.containerSize = NSSize(
- width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
+ // Configure text wrapping based on user preference
+ let softWrapLines = UserDefaults.standard.bool(forKey: "softWrapLines")
+ if !softWrapLines {
+ // Disable word wrapping to prevent flashing on soft-wrapped lines
+ textView.textContainer?.widthTracksTextView = false
+ textView.textContainer?.containerSize = NSSize(
+ width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
+ } else {
+ textView.textContainer?.widthTracksTextView = true
+ }
+
textView.isHorizontallyResizable = true
textView.isVerticallyResizable = true
+
self.view = scrollView
}
diff --git a/Map/Presentation/MapEditor.swift b/Map/Presentation/MapEditor.swift
index 0f8f24e..c8ce5cd 100644
--- a/Map/Presentation/MapEditor.swift
+++ b/Map/Presentation/MapEditor.swift
@@ -32,6 +32,8 @@ struct MapEditor: View {
@AppStorage("customEditorFontName") var customEditorFontName: String = UserPreferences.Defaults
.customEditorFontName
@AppStorage("editorFontSize") var editorFontSize: Double = UserPreferences.Defaults.editorFontSize
+ @AppStorage("softWrapLines") var softWrapLines: Bool = UserPreferences.Defaults
+ .softWrapLines
let zoomRange = Constants.kMinZoom...Constants.kMaxZoom
@AppStorage("zoom") var zoom = UserPreferences.Defaults.zoom
@@ -110,7 +112,7 @@ struct MapEditor: View {
highlightRanges: results,
selectedRange: selectedTerm
)
- .id("\(useCustomEditorFont)-\(customEditorFontName)-\(editorFontSize)")
+ .id("\(useCustomEditorFont)-\(customEditorFontName)-\(editorFontSize)-\(softWrapLines)")
.background(Color.Theme.UI.background)
.foregroundColor(Color.Theme.UI.foreground)
.frame(minHeight: 96.0)
diff --git a/Map/Presentation/Preferences/EditorPreferencesView.swift b/Map/Presentation/Preferences/EditorPreferencesView.swift
index 23359b2..c08b03e 100644
--- a/Map/Presentation/Preferences/EditorPreferencesView.swift
+++ b/Map/Presentation/Preferences/EditorPreferencesView.swift
@@ -24,6 +24,8 @@ struct EditorPreferencesView: View {
.customEditorFontName
@AppStorage("editorFontSize") private var editorFontSize: Double = UserPreferences.Defaults
.editorFontSize
+ @AppStorage("softWrapLines") private var softWrapLines: Bool = UserPreferences.Defaults
+ .softWrapLines
var monospacedFonts: [String] {
let fontManager = NSFontManager.shared
@@ -79,6 +81,13 @@ struct EditorPreferencesView: View {
VStack(alignment: .leading, spacing: Dimensions.Spacing.cozy) {
Toggle(
+ isOn: $softWrapLines,
+ label: {
+ Text("preferences.editor.editor_style.soft_wrap_lines")
+ .font(.Theme.Body.regular)
+ })
+
+ Toggle(
isOn: $useCustomEditorFont,
label: {
Text("preferences.editor.editor_style.use_custom_font")