From f7e2d9d7e878f9b9b6ba1c9198b9cc8523d4d819 Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Thu, 18 Jul 2024 00:54:56 +0700 Subject: [PATCH] chore: remove shortcut --- Memola.xcodeproj/project.pbxproj | 38 +------------------ Memola/App/Application.swift | 2 + .../{Shortcut => }/Commands/AppCommands.swift | 0 .../Commands/EditCommands.swift | 0 .../Commands/FileCommands.swift | 3 +- .../Commands/ViewCommands.swift | 0 .../Dashboard/Details/Memos/MemosView.swift | 18 ++------- .../Dashboard/Details/Trash/TrashView.swift | 1 - Memola/Shortcut/Core/Shortcut.swift | 25 ------------ Memola/Shortcut/Core/Shortcuts.swift | 14 ------- .../EnvironmentValues/ShortcutKey.swift | 18 --------- Memola/Utilies/Extensions/Color++.swift | 2 - 12 files changed, 8 insertions(+), 113 deletions(-) rename Memola/{Shortcut => }/Commands/AppCommands.swift (100%) rename Memola/{Shortcut => }/Commands/EditCommands.swift (100%) rename Memola/{Shortcut => }/Commands/FileCommands.swift (90%) rename Memola/{Shortcut => }/Commands/ViewCommands.swift (100%) delete mode 100644 Memola/Shortcut/Core/Shortcut.swift delete mode 100644 Memola/Shortcut/Core/Shortcuts.swift delete mode 100644 Memola/Shortcut/EnvironmentValues/ShortcutKey.swift diff --git a/Memola.xcodeproj/project.pbxproj b/Memola.xcodeproj/project.pbxproj index 3811361..86c305c 100644 --- a/Memola.xcodeproj/project.pbxproj +++ b/Memola.xcodeproj/project.pbxproj @@ -26,9 +26,6 @@ EC2002D72C4160EF002EBD5F /* EditCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002D62C4160EF002EBD5F /* EditCommands.swift */; }; EC2002D92C4161ED002EBD5F /* ViewCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002D82C4161ED002EBD5F /* ViewCommands.swift */; }; EC2002DD2C4163E8002EBD5F /* AppCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002DC2C4163E8002EBD5F /* AppCommands.swift */; }; - EC2002E12C416470002EBD5F /* Shortcut.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002E02C416470002EBD5F /* Shortcut.swift */; }; - EC2002E52C416551002EBD5F /* Shortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002E42C416551002EBD5F /* Shortcuts.swift */; }; - EC2002E92C4167C5002EBD5F /* ShortcutKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002E82C4167C5002EBD5F /* ShortcutKey.swift */; }; EC2002ED2C417B68002EBD5F /* AppScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002EC2C417B68002EBD5F /* AppScene.swift */; }; EC2002F02C417BF1002EBD5F /* ActiveSceneKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2002EF2C417BF1002EBD5F /* ActiveSceneKey.swift */; }; EC2106AD2C10C2A700FBE27C /* AnyStroke.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC2106AC2C10C2A700FBE27C /* AnyStroke.swift */; }; @@ -167,9 +164,6 @@ EC2002D62C4160EF002EBD5F /* EditCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditCommands.swift; sourceTree = ""; }; EC2002D82C4161ED002EBD5F /* ViewCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewCommands.swift; sourceTree = ""; }; EC2002DC2C4163E8002EBD5F /* AppCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCommands.swift; sourceTree = ""; }; - EC2002E02C416470002EBD5F /* Shortcut.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shortcut.swift; sourceTree = ""; }; - EC2002E42C416551002EBD5F /* Shortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shortcuts.swift; sourceTree = ""; }; - EC2002E82C4167C5002EBD5F /* ShortcutKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShortcutKey.swift; sourceTree = ""; }; EC2002EC2C417B68002EBD5F /* AppScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppScene.swift; sourceTree = ""; }; EC2002EF2C417BF1002EBD5F /* ActiveSceneKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActiveSceneKey.swift; sourceTree = ""; }; EC2106AC2C10C2A700FBE27C /* AnyStroke.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnyStroke.swift; sourceTree = ""; }; @@ -411,33 +405,6 @@ path = Commands; sourceTree = ""; }; - EC2002DE2C41645A002EBD5F /* Shortcut */ = { - isa = PBXGroup; - children = ( - EC2002D32C416002002EBD5F /* Commands */, - EC2002DF2C416466002EBD5F /* Core */, - EC2002E72C4167B1002EBD5F /* EnvironmentValues */, - ); - path = Shortcut; - sourceTree = ""; - }; - EC2002DF2C416466002EBD5F /* Core */ = { - isa = PBXGroup; - children = ( - EC2002E02C416470002EBD5F /* Shortcut.swift */, - EC2002E42C416551002EBD5F /* Shortcuts.swift */, - ); - path = Core; - sourceTree = ""; - }; - EC2002E72C4167B1002EBD5F /* EnvironmentValues */ = { - isa = PBXGroup; - children = ( - EC2002E82C4167C5002EBD5F /* ShortcutKey.swift */, - ); - path = EnvironmentValues; - sourceTree = ""; - }; EC2002EE2C417BBF002EBD5F /* AppScene */ = { isa = PBXGroup; children = ( @@ -587,7 +554,7 @@ isa = PBXGroup; children = ( ECA738762BE5EE4E00A4542E /* App */, - EC2002DE2C41645A002EBD5F /* Shortcut */, + EC2002D32C416002002EBD5F /* Commands */, ECA7387E2BE5FE4200A4542E /* Canvas */, EC50500A2BF6672000B4D86E /* Components */, EC5050102BF670EE00B4D86E /* Config */, @@ -1164,7 +1131,6 @@ EC01511E2C305CA9008A115E /* DashboardView.swift in Sources */, EC8F54AE2C2AF5A4001C7C74 /* LineGridVertex.swift in Sources */, EC2002F02C417BF1002EBD5F /* ActiveSceneKey.swift in Sources */, - EC2002E12C416470002EBD5F /* Shortcut.swift in Sources */, EC5E83902BFDB69C00261D9C /* MovingAverage.swift in Sources */, ECFA15262BEF224900455818 /* StrokeObject.swift in Sources */, ECA738FC2BE61C5200A4542E /* Persistence.swift in Sources */, @@ -1174,7 +1140,6 @@ ECFA15222BEF21F500455818 /* CanvasObject.swift in Sources */, ECA738AA2BE6026D00A4542E /* Uniforms.swift in Sources */, ECF7B2D12C39169C004D2C57 /* CGAffineTransform++.swift in Sources */, - EC2002E52C416551002EBD5F /* Shortcuts.swift in Sources */, EC2002DD2C4163E8002EBD5F /* AppCommands.swift in Sources */, EC1815082C2D980B00541369 /* Sort.swift in Sources */, EC6E3BD92C43C6C000DD20F3 /* OnDismissSearchViewModifier.swift in Sources */, @@ -1238,7 +1203,6 @@ ECA7388F2BE600DA00A4542E /* Grid.metal in Sources */, EC2BEBF42C0F5FF7005DB0AF /* RTree.swift in Sources */, ECA738C92BE60EF700A4542E /* GraphicContext.swift in Sources */, - EC2002E92C4167C5002EBD5F /* ShortcutKey.swift in Sources */, EC0D14212BF79C73009BFE5F /* ToolObject.swift in Sources */, ECDAC07B2C318DBC0000ED77 /* ElementToolbar.swift in Sources */, EC50500D2BF6674400B4D86E /* OnDragViewModifier.swift in Sources */, diff --git a/Memola/App/Application.swift b/Memola/App/Application.swift index 5a04751..23e2572 100644 --- a/Memola/App/Application.swift +++ b/Memola/App/Application.swift @@ -11,6 +11,8 @@ import SwiftUI final class Application: NSObject, ObservableObject { @Published var memoObject: MemoObject? @Published private(set) var sidebarVisibility: SidebarVisibility = .shown + + lazy var newMemoPublisher = PassthroughSubject() } extension Application { diff --git a/Memola/Shortcut/Commands/AppCommands.swift b/Memola/Commands/AppCommands.swift similarity index 100% rename from Memola/Shortcut/Commands/AppCommands.swift rename to Memola/Commands/AppCommands.swift diff --git a/Memola/Shortcut/Commands/EditCommands.swift b/Memola/Commands/EditCommands.swift similarity index 100% rename from Memola/Shortcut/Commands/EditCommands.swift rename to Memola/Commands/EditCommands.swift diff --git a/Memola/Shortcut/Commands/FileCommands.swift b/Memola/Commands/FileCommands.swift similarity index 90% rename from Memola/Shortcut/Commands/FileCommands.swift rename to Memola/Commands/FileCommands.swift index a848a70..51533e3 100644 --- a/Memola/Shortcut/Commands/FileCommands.swift +++ b/Memola/Commands/FileCommands.swift @@ -8,7 +8,6 @@ import SwiftUI struct FileCommands: Commands { - @Environment(\.shortcut) private var shortcut @FocusedValue(\.activeSceneKey) private var appScene @ObservedObject private var application: Application @@ -31,7 +30,7 @@ struct FileCommands: Commands { #endif if appScene == .memos { Button { - shortcut.trigger(.newMemo) + application.newMemoPublisher.send() } label: { Text("New Memo") } diff --git a/Memola/Shortcut/Commands/ViewCommands.swift b/Memola/Commands/ViewCommands.swift similarity index 100% rename from Memola/Shortcut/Commands/ViewCommands.swift rename to Memola/Commands/ViewCommands.swift diff --git a/Memola/Features/Dashboard/Details/Memos/MemosView.swift b/Memola/Features/Dashboard/Details/Memos/MemosView.swift index d40aa0e..95935d8 100644 --- a/Memola/Features/Dashboard/Details/Memos/MemosView.swift +++ b/Memola/Features/Dashboard/Details/Memos/MemosView.swift @@ -8,7 +8,6 @@ import SwiftUI struct MemosView: View { - @Environment(\.shortcut) private var shortcut @Environment(\.horizontalSizeClass) private var horizontalSizeClass @EnvironmentObject private var application: Application @@ -159,8 +158,10 @@ struct MemosView: View { .onReceive(timer) { date in currentDate = date } - .onReceive(shortcut.publisher) { shortcut in - handleShortcut(for: shortcut) + .onReceive(application.newMemoPublisher) { shortcut in + if application.memoObject == nil { + createMemo(title: "Untitled") + } } } @@ -289,15 +290,4 @@ struct MemosView: View { try context.saveIfNeeded() } } - - private func handleShortcut(for shortcut: Shortcuts) { - switch shortcut { - case .newMemo: - if application.memoObject == nil { - createMemo(title: "Untitled") - } - default: - break - } - } } diff --git a/Memola/Features/Dashboard/Details/Trash/TrashView.swift b/Memola/Features/Dashboard/Details/Trash/TrashView.swift index a3f9f8d..aa567bc 100644 --- a/Memola/Features/Dashboard/Details/Trash/TrashView.swift +++ b/Memola/Features/Dashboard/Details/Trash/TrashView.swift @@ -8,7 +8,6 @@ import SwiftUI struct TrashView: View { - @Environment(\.shortcut) private var shortcut @Environment(\.horizontalSizeClass) private var horizontalSizeClass @EnvironmentObject private var application: Application diff --git a/Memola/Shortcut/Core/Shortcut.swift b/Memola/Shortcut/Core/Shortcut.swift deleted file mode 100644 index 24c00ef..0000000 --- a/Memola/Shortcut/Core/Shortcut.swift +++ /dev/null @@ -1,25 +0,0 @@ -// -// Shortcut.swift -// Memola -// -// Created by Dscyre Scotti on 7/12/24. -// - -import Combine -import Foundation - -final class Shortcut { - static let shared: Shortcut = .init() - - private let _publisher = PassthroughSubject() - - lazy var publisher: AnyPublisher = { - _publisher.eraseToAnyPublisher() - }() - - private init() { } - - func trigger(_ shortcut: Shortcuts) { - _publisher.send(shortcut) - } -} diff --git a/Memola/Shortcut/Core/Shortcuts.swift b/Memola/Shortcut/Core/Shortcuts.swift deleted file mode 100644 index 438600e..0000000 --- a/Memola/Shortcut/Core/Shortcuts.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Shortcuts.swift -// Memola -// -// Created by Dscyre Scotti on 7/12/24. -// - -import Foundation - -enum Shortcuts { - // MARK: - Memos - case newMemo - case findMemo -} diff --git a/Memola/Shortcut/EnvironmentValues/ShortcutKey.swift b/Memola/Shortcut/EnvironmentValues/ShortcutKey.swift deleted file mode 100644 index 4d1f1ab..0000000 --- a/Memola/Shortcut/EnvironmentValues/ShortcutKey.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// ShortcutKey.swift -// Memola -// -// Created by Dscyre Scotti on 7/12/24. -// - -import SwiftUI - -private struct ShortcutKey: EnvironmentKey { - static var defaultValue: Shortcut = .shared -} - -extension EnvironmentValues { - var shortcut: Shortcut { - get { self[ShortcutKey.self] } - } -} diff --git a/Memola/Utilies/Extensions/Color++.swift b/Memola/Utilies/Extensions/Color++.swift index 493769c..baddd22 100644 --- a/Memola/Utilies/Extensions/Color++.swift +++ b/Memola/Utilies/Extensions/Color++.swift @@ -29,7 +29,6 @@ extension Color { extension Color { var hsba: (hue: Double, saturation: Double, brightness: Double, alpha: Double) { #if os(macOS) - #warning("TODO: need double check") let nsColor = NSColor(self) var hue: CGFloat = 0 var saturation: CGFloat = 0 @@ -52,7 +51,6 @@ extension Color { extension Platform.Color { var components: [CGFloat] { #if os(macOS) - #warning("TODO: need double check") let nsColor: NSColor = self let ciColor: CIColor = .init(color: nsColor) ?? CIColor(red: 0, green: 0, blue: 0) return [ciColor.red, ciColor.green, ciColor.blue, ciColor.alpha]