From 319fc48cbbc460bdbde87ad398e66d452cddcbb4 Mon Sep 17 00:00:00 2001 From: Lava <34743145+CanglongCl@users.noreply.github.com> Date: Mon, 12 Feb 2024 23:50:38 -0800 Subject: [PATCH] Revert #395 and implement with alter method (#398) * fix: default value in short cut * refactor: delete unused file * Revert "refactor: delete unused file" This reverts commit 3a2d7344f2733af6f1b0b3fc336260a85858b205. * Revert "fix: default value in short cut" This reverts commit fdfe49574f9b8e5f9d88b35a0dae655268a2360e. * Add default shortcut * split `setDefaultForAppShortcut` into 2 method * fix: default value in short cut * refactor: delete unused file * Revert "refactor: delete unused file" This reverts commit 3a2d7344f2733af6f1b0b3fc336260a85858b205. * Revert "fix: default value in short cut" This reverts commit fdfe49574f9b8e5f9d88b35a0dae655268a2360e. * Add default shortcut * split `setDefaultForAppShortcut` into 2 method * Revert "chore: update issue templates" This reverts commit 033e391917820787a3108b1a01cdf291be0c197f. * fix: correct default global shortcut keys --------- Co-authored-by: tisfeng --- .github/ISSUE_TEMPLATE/cn_bug_report_zh.yml | 4 +- .github/ISSUE_TEMPLATE/en_bug_report.yml | 4 +- Easydict.xcodeproj/project.pbxproj | 4 ++ .../Configuration+Defaults.swift | 46 +++++++++++-------- .../Feature/Shortcut/Shortcut+Default.swift | 46 +++++++++++++++++++ .../NewApp/Feature/Shortcut/Shortcut.swift | 8 ++++ 6 files changed, 86 insertions(+), 26 deletions(-) create mode 100644 Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift diff --git a/.github/ISSUE_TEMPLATE/cn_bug_report_zh.yml b/.github/ISSUE_TEMPLATE/cn_bug_report_zh.yml index e3de84e43..c2d0f068a 100644 --- a/.github/ISSUE_TEMPLATE/cn_bug_report_zh.yml +++ b/.github/ISSUE_TEMPLATE/cn_bug_report_zh.yml @@ -1,6 +1,6 @@ name: 反馈问题 description: 反馈问题 -title: "🐞 反馈问题:请填写标题,不要留空" +title: "🐞 反馈问题:{{请填写标题,不要留空}}" labels: ["bug"] body: @@ -9,8 +9,6 @@ body: attributes: label: 请先确认以下事项: options: - - label: 请务必查看 [常见问题](https://github.com/tisfeng/Easydict/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) - required: true - label: 已仔细阅读了 [README](https://github.com/tisfeng/Easydict#readme) required: true - label: 在 [issues](https://github.com/tisfeng/Easydict/issues) 页面搜索过问题(包括已关闭的 issue),但未能找到解决方法 diff --git a/.github/ISSUE_TEMPLATE/en_bug_report.yml b/.github/ISSUE_TEMPLATE/en_bug_report.yml index 5b51b73a6..2f87973a8 100644 --- a/.github/ISSUE_TEMPLATE/en_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/en_bug_report.yml @@ -1,6 +1,6 @@ name: Bug report description: Report an issue -title: "🐞 Bug Report: Please fill in the title, don't leave it blank" +title: "🐞 Bug Report: {{Please fill in the title, don't leave it blank}} " labels: ["bug"] body: @@ -9,8 +9,6 @@ body: attributes: label: "Please confirm the following:" options: - - label: Be sure to check out [FAQ](https://github.com/tisfeng/Easydict/wiki/FAQ) - required: true - label: I have carefully read the [README](https://github.com/tisfeng/Easydict#readme) required: true - label: I have searched through the [issues](https://github.com/tisfeng/Easydict/issues) page but couldn't find a solution.(Including issue that has been closed) diff --git a/Easydict.xcodeproj/project.pbxproj b/Easydict.xcodeproj/project.pbxproj index 4c142dfe5..a56b655cb 100644 --- a/Easydict.xcodeproj/project.pbxproj +++ b/Easydict.xcodeproj/project.pbxproj @@ -279,6 +279,7 @@ 9643D93D2B6F829C000FBEA6 /* MainMenuCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D93C2B6F829C000FBEA6 /* MainMenuCommand.swift */; }; 9643D9402B6FC426000FBEA6 /* MainMenuShortcutCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D93F2B6FC426000FBEA6 /* MainMenuShortcutCommand.swift */; }; 9643D9422B6FE4AF000FBEA6 /* Shortcut+Bind.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D9412B6FE4AF000FBEA6 /* Shortcut+Bind.swift */; }; + 9643D9442B6FEF5F000FBEA6 /* Shortcut+Default.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D9432B6FEF5F000FBEA6 /* Shortcut+Default.swift */; }; 9643D9462B71D103000FBEA6 /* KeyHolderRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D9452B71D103000FBEA6 /* KeyHolderRowView.swift */; }; 9643D94A2B71EABE000FBEA6 /* KeyHolderAlterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D9492B71EABE000FBEA6 /* KeyHolderAlterView.swift */; }; 9643D94C2B71F74D000FBEA6 /* MainMenuShortcutCommandItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9643D94B2B71F74D000FBEA6 /* MainMenuShortcutCommandItem.swift */; }; @@ -802,6 +803,7 @@ 9643D93C2B6F829C000FBEA6 /* MainMenuCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuCommand.swift; sourceTree = ""; }; 9643D93F2B6FC426000FBEA6 /* MainMenuShortcutCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuShortcutCommand.swift; sourceTree = ""; }; 9643D9412B6FE4AF000FBEA6 /* Shortcut+Bind.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Shortcut+Bind.swift"; sourceTree = ""; }; + 9643D9432B6FEF5F000FBEA6 /* Shortcut+Default.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Shortcut+Default.swift"; sourceTree = ""; }; 9643D9452B71D103000FBEA6 /* KeyHolderRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyHolderRowView.swift; sourceTree = ""; }; 9643D9492B71EABE000FBEA6 /* KeyHolderAlterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyHolderAlterView.swift; sourceTree = ""; }; 9643D94B2B71F74D000FBEA6 /* MainMenuShortcutCommandItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuShortcutCommandItem.swift; sourceTree = ""; }; @@ -2270,6 +2272,7 @@ isa = PBXGroup; children = ( 967712ED2B5B943400105E0F /* Shortcut.swift */, + 9643D9432B6FEF5F000FBEA6 /* Shortcut+Default.swift */, 9643D9412B6FE4AF000FBEA6 /* Shortcut+Bind.swift */, 9608354F2B6791F200C6A931 /* Shortcut+Validator.swift */, 9643D9552B73B3CD000FBEA6 /* Shortcut+Menu.swift */, @@ -3000,6 +3003,7 @@ 03BDA7B92A26DA280079D04F /* NSProcessInfo+XPMArgumentParser.m in Sources */, 03542A4F2937B64B00C34C33 /* EZYoudaoOCRResponse.m in Sources */, 03B0233929231FA6001C7E63 /* MMTool.m in Sources */, + 9643D9442B6FEF5F000FBEA6 /* Shortcut+Default.swift in Sources */, 03542A552937B7DE00C34C33 /* EZError.m in Sources */, 17BCAEF72B0DFF9000A7D372 /* EZNiuTransTranslateResponse.m in Sources */, 03BDA7B82A26DA280079D04F /* XPMValuedArgument.m in Sources */, diff --git a/Easydict/NewApp/Configuration/Configuration+Defaults.swift b/Easydict/NewApp/Configuration/Configuration+Defaults.swift index ea4839965..240aed001 100644 --- a/Easydict/NewApp/Configuration/Configuration+Defaults.swift +++ b/Easydict/NewApp/Configuration/Configuration+Defaults.swift @@ -10,6 +10,12 @@ import Defaults import Foundation import Magnet +/// Utils +extension Defaults.Keys { + /// is first launch + static let firstLaunch = Key("EZConfiguration_kFirstLaunch", default: true) +} + // Setting extension Defaults.Keys { // rename `from` @@ -172,26 +178,26 @@ extension Defaults.Keys { /// shortcut extension Defaults.Keys { // Global - static let selectionShortcut = Key("EZSelectionShortcutKey_keyHolder", default: KeyCombo(key: .d, cocoaModifiers: .option)) - static let snipShortcut = Key("EZSnipShortcutKey_keyHolder", default: KeyCombo(key: .s, cocoaModifiers: .option)) - static let inputShortcut = Key("EZInputShortcutKey_keyHolder", default: KeyCombo(key: .a, cocoaModifiers: .option)) - static let screenshotOCRShortcut = Key("EZScreenshotOCRShortcutKey_keyHolder", default: KeyCombo(key: .f, cocoaModifiers: [.option, .shift])) - static let showMiniWindowShortcut = Key("EZShowMiniShortcutKey_keyHolder", default: KeyCombo(key: .s, cocoaModifiers: .option)) + static let selectionShortcut = Key("EZSelectionShortcutKey_keyHolder") + static let snipShortcut = Key("EZSnipShortcutKey_keyHolder") + static let inputShortcut = Key("EZInputShortcutKey_keyHolder") + static let screenshotOCRShortcut = Key("EZScreenshotOCRShortcutKey_keyHolder") + static let showMiniWindowShortcut = Key("EZShowMiniShortcutKey_keyHolder") // App - static let clearInputShortcut = Key("EZClearInputShortcutKey_keyHolder", default: KeyCombo(key: .k, cocoaModifiers: .command)) - static let clearAllShortcut = Key("EZClearAllShortcutKey_keyHolder", default: KeyCombo(key: .k, cocoaModifiers: [.command, .shift])) - static let copyShortcut = Key("EZCopyShortcutKey_keyHolder", default: KeyCombo(key: .c, cocoaModifiers: [.command, .shift])) - static let copyFirstResultShortcut = Key("EZCopyFirstResultShortcutKey_keyHolder", default: KeyCombo(key: .j, cocoaModifiers: [.command, .shift])) - static let focusShortcut = Key("EZFocusShortcutKey_keyHolder", default: KeyCombo(key: .i, cocoaModifiers: .command)) - static let playShortcut = Key("EZPlayShortcutKey_keyHolder", default: KeyCombo(key: .s, cocoaModifiers: .command)) - static let retryShortcut = Key("EZRetryShortcutKey_keyHolder", default: KeyCombo(key: .r, cocoaModifiers: .command)) - static let toggleShortcut = Key("EZToggleShortcutKey_keyHolder", default: KeyCombo(key: .t, cocoaModifiers: .command)) - static let pinShortcut = Key("EZPinShortcutKey_keyHolder", default: KeyCombo(key: .p, cocoaModifiers: .command)) - static let hideShortcut = Key("EZHideShortcutKey_keyHolder", default: KeyCombo(key: .y, cocoaModifiers: .command)) - static let increaseFontSize = Key("EZIncreaseFontSizeShortcutKey_keyHolder", default: KeyCombo(key: .keypadPlus, cocoaModifiers: .command)) - static let decreaseFontSize = Key("EZDecreaseFontSizeShortcutKey_keyHolder", default: KeyCombo(key: .keypadMinus, cocoaModifiers: .command)) - static let googleShortcut = Key("EZGoogleShortcutKey_keyHolder", default: KeyCombo(key: .return, cocoaModifiers: .command)) - static let eudicShortcut = Key("EZEudicShortcutKey_keyHolder", default: KeyCombo(key: .return, cocoaModifiers: [.command, .shift])) - static let appleDictionaryShortcut = Key("EZAppleDictionaryShortcutKey_keyHolder", default: KeyCombo(key: .d, cocoaModifiers: [.command, .shift])) + static let clearInputShortcut = Key("EZClearInputShortcutKey_keyHolder") + static let clearAllShortcut = Key("EZClearAllShortcutKey_keyHolder") + static let copyShortcut = Key("EZCopyShortcutKey_keyHolder") + static let copyFirstResultShortcut = Key("EZCopyFirstResultShortcutKey_keyHolder") + static let focusShortcut = Key("EZFocusShortcutKey_keyHolder") + static let playShortcut = Key("EZPlayShortcutKey_keyHolder") + static let retryShortcut = Key("EZRetryShortcutKey_keyHolder") + static let toggleShortcut = Key("EZToggleShortcutKey_keyHolder") + static let pinShortcut = Key("EZPinShortcutKey_keyHolder") + static let hideShortcut = Key("EZHideShortcutKey_keyHolder") + static let increaseFontSize = Key("EZIncreaseFontSizeShortcutKey_keyHolder") + static let decreaseFontSize = Key("EZDecreaseFontSizeShortcutKey_keyHolder") + static let googleShortcut = Key("EZGoogleShortcutKey_keyHolder") + static let eudicShortcut = Key("EZEudicShortcutKey_keyHolder") + static let appleDictionaryShortcut = Key("EZAppleDictionaryShortcutKey_keyHolder") } diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift b/Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift new file mode 100644 index 000000000..685cfa026 --- /dev/null +++ b/Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift @@ -0,0 +1,46 @@ +// +// Shortcut+Default.swift +// Easydict +// +// Created by Sharker on 2024/2/5. +// Copyright © 2024 izual. All rights reserved. +// + +import Defaults +import Magnet + +extension Shortcut { + // set defalut for app shortcut + func setDefaultForShortcut() { + setDefaultForGlobalShortcut() + setDefaultForAppShortcut() + } + + private func setDefaultForGlobalShortcut() { + Defaults[.inputShortcut] = KeyCombo(key: .a, cocoaModifiers: .option) + Defaults[.snipShortcut] = KeyCombo(key: .s, cocoaModifiers: .option) + Defaults[.selectionShortcut] = KeyCombo(key: .d, cocoaModifiers: .option) + Defaults[.showMiniWindowShortcut] = KeyCombo(key: .f, cocoaModifiers: .option) + Defaults[.screenshotOCRShortcut] = KeyCombo(key: .s, cocoaModifiers: [.option, .shift]) + } + + private func setDefaultForAppShortcut() { + setDefaultForGlobalShortcut() + + Defaults[.clearInputShortcut] = KeyCombo(key: .k, cocoaModifiers: .command) + Defaults[.clearAllShortcut] = KeyCombo(key: .k, cocoaModifiers: [.command, .shift]) + Defaults[.copyShortcut] = KeyCombo(key: .c, cocoaModifiers: [.command, .shift]) + Defaults[.copyFirstResultShortcut] = KeyCombo(key: .j, cocoaModifiers: [.command, .shift]) + Defaults[.focusShortcut] = KeyCombo(key: .i, cocoaModifiers: .command) + Defaults[.playShortcut] = KeyCombo(key: .s, cocoaModifiers: .command) + Defaults[.retryShortcut] = KeyCombo(key: .r, cocoaModifiers: .command) + Defaults[.toggleShortcut] = KeyCombo(key: .t, cocoaModifiers: .command) + Defaults[.pinShortcut] = KeyCombo(key: .p, cocoaModifiers: .command) + Defaults[.hideShortcut] = KeyCombo(key: .y, cocoaModifiers: .command) + Defaults[.increaseFontSize] = KeyCombo(key: .keypadPlus, cocoaModifiers: .command) + Defaults[.decreaseFontSize] = KeyCombo(key: .keypadMinus, cocoaModifiers: .command) + Defaults[.googleShortcut] = KeyCombo(key: .return, cocoaModifiers: .command) + Defaults[.eudicShortcut] = KeyCombo(key: .return, cocoaModifiers: [.command, .shift]) + Defaults[.appleDictionaryShortcut] = KeyCombo(key: .d, cocoaModifiers: [.command, .shift]) + } +} diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut.swift b/Easydict/NewApp/Feature/Shortcut/Shortcut.swift index d4be0b625..78b54d58f 100644 --- a/Easydict/NewApp/Feature/Shortcut/Shortcut.swift +++ b/Easydict/NewApp/Feature/Shortcut/Shortcut.swift @@ -99,6 +99,14 @@ class Shortcut: NSObject { @objc static func setupShortcut() { let shortcut = Shortcut.shared shortcut.restoreShortcut() + + if Defaults[.firstLaunch] { + Defaults[.firstLaunch] = false + // set defalut for app shortcut + shortcut.setDefaultForShortcut() + } else { + // do nothing + } } // Make sure the class has only one instance