Skip to content

Commit 9e907a6

Browse files
committed
The gridMode is now updating UserDefaults as in the UIKit code
1 parent 15da42f commit 9e907a6

4 files changed

Lines changed: 18 additions & 7 deletions

File tree

Source/TriangleDrawMain/Canvas/CanvasViewController.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,8 @@ extension CanvasViewController: HCMenuViewControllerDelegate {
530530
self.subdivide(n: n)
531531
}
532532

533-
func hcMenuViewController_canvasGridModeDidChange() {
533+
func hcMenuViewController_canvasGridModeDidChange(gridMode: CanvasGridMode) {
534+
CanvasGridModeController().changeCanvasGridMode(to: gridMode)
534535
hcView?.canvasGridModeDidChange()
535536
}
536537
}

Source/TriangleDrawMain/Canvas/Menu/HCMenuView.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import TriangleDrawLibrary
55
struct HCMenuView: View {
66
@ObservedObject var model: HCMenuViewModel
77
@Environment(\.dismiss) var dismiss
8-
@State private var gridMode: CanvasGridMode = CanvasGridMode.smallFixedSizeDots
8+
@State private var gridMode: CanvasGridMode
99
@State private var symmetryMode: SymmetryMode
1010

1111
init(model: HCMenuViewModel, symmetryMode: SymmetryMode) {
1212
self.model = model
13+
self._gridMode = State(initialValue: model.initialGridMode)
1314
self._symmetryMode = State(initialValue: symmetryMode)
1415
}
1516

@@ -21,13 +22,15 @@ struct HCMenuView: View {
2122
ForEach(CanvasGridMode.allCases, id: \.self) { value in
2223
Text(value.localizedDisplayName).tag(value)
2324
}
25+
}.onChange(of: gridMode) { newValue in
26+
self.model.delegate?.hcMenuViewController_canvasGridModeDidChange(gridMode: newValue)
2427
}
2528
Picker("Symmetry", selection: $symmetryMode) {
2629
ForEach(SymmetryMode.allCases, id: \.self) { value in
2730
Text(value.localizedDisplayName).tag(value)
2831
}
29-
}.onChange(of: symmetryMode) { tag in
30-
globalSymmetryMode = tag
32+
}.onChange(of: symmetryMode) { newValue in
33+
globalSymmetryMode = newValue
3134
}
3235
NavigationLink("Subdivide") {
3336
HCMenuSubdivideView() { n in

Source/TriangleDrawMain/Canvas/Menu/HCMenuViewController.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import SwiftUI
88

99
protocol HCMenuViewControllerDelegate: AnyObject {
1010
func hcMenuViewController_applySubdivide(n: UInt8)
11-
func hcMenuViewController_canvasGridModeDidChange()
11+
func hcMenuViewController_canvasGridModeDidChange(gridMode: CanvasGridMode)
1212
}
1313

1414
enum HexagonCanvasMenuDocument {
@@ -88,8 +88,7 @@ class HCMenuViewController: RFFormViewController {
8888
instance.selected = CanvasGridMode.allCases.firstIndex(of: currentGridMode) ?? 0
8989
instance.valueDidChangeBlock = { [weak self] value in
9090
let gridMode: CanvasGridMode = CanvasGridMode.allCases[value]
91-
CanvasGridModeController().changeCanvasGridMode(to: gridMode)
92-
self?.delegate?.hcMenuViewController_canvasGridModeDidChange()
91+
self?.delegate?.hcMenuViewController_canvasGridModeDidChange(gridMode: gridMode)
9392
}
9493
return instance
9594
}()

Source/TriangleDrawMain/Canvas/Menu/HCMenuViewModel.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@
22
import Foundation
33
import Combine
44
import SwiftUI
5+
import TriangleDrawLibrary
56

67
public class HCMenuViewModel: ObservableObject {
78
weak var delegate: HCMenuViewControllerDelegate?
9+
var initialGridMode: CanvasGridMode
10+
11+
init() {
12+
self.delegate = nil
13+
self.initialGridMode = CanvasGridMode.smallFixedSizeDots
14+
}
815

916
static func create() -> HCMenuViewModel {
1017
let instance = HCMenuViewModel()
18+
instance.initialGridMode = CanvasGridModeController().currentCanvasGridMode
1119
return instance
1220
}
1321
}

0 commit comments

Comments
 (0)