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 @@
+