diff --git a/Memola/Canvas/Tool/Core/Tool.swift b/Memola/Canvas/Tool/Core/Tool.swift index a7641a4..c68c7c3 100644 --- a/Memola/Canvas/Tool/Core/Tool.swift +++ b/Memola/Canvas/Tool/Core/Tool.swift @@ -31,10 +31,15 @@ public class Tool: NSObject, ObservableObject { init(object: ToolObject) { self.object = object + selection = ToolSelection(rawValue: object.selection) ?? .hand } func selectTool(_ selection: ToolSelection) { self.selection = selection + withPersistence(\.viewContext) { [weak object] context in + object?.selection = selection.rawValue + try context.saveIfNeeded() + } } func load() { diff --git a/Memola/Canvas/Tool/Core/ToolSelection.swift b/Memola/Canvas/Tool/Core/ToolSelection.swift index ed3fc26..8ab5d25 100644 --- a/Memola/Canvas/Tool/Core/ToolSelection.swift +++ b/Memola/Canvas/Tool/Core/ToolSelection.swift @@ -7,7 +7,7 @@ import Foundation -enum ToolSelection: Equatable { +enum ToolSelection: Int16, Equatable { case hand case pen case photo diff --git a/Memola/Features/Memos/MemosView.swift b/Memola/Features/Memos/MemosView.swift index 1e721da..7e5de48 100644 --- a/Memola/Features/Memos/MemosView.swift +++ b/Memola/Features/Memos/MemosView.swift @@ -73,6 +73,7 @@ struct MemosView: View { canvasObject.height = 8_000 let toolObject = ToolObject(\.viewContext) + toolObject.selection = 0 toolObject.pens = [] let eraserPenObject = PenObject.createObject(\.viewContext, penStyle: .eraser) diff --git a/Memola/Persistence/Objects/ToolObject.swift b/Memola/Persistence/Objects/ToolObject.swift index fb26c1a..757d4c2 100644 --- a/Memola/Persistence/Objects/ToolObject.swift +++ b/Memola/Persistence/Objects/ToolObject.swift @@ -10,6 +10,7 @@ import Foundation @objc(ToolObject) class ToolObject: NSManagedObject { + @NSManaged var selection: Int16 @NSManaged var pens: NSMutableSet @NSManaged var memo: MemoObject? } diff --git a/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents b/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents index 0388678..3dddb53 100644 --- a/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents +++ b/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents @@ -73,6 +73,7 @@ +