Skip to content

Commit

Permalink
#32 Add shortcut key (esc) for hidden interface
Browse files Browse the repository at this point in the history
  • Loading branch information
lijy91 committed Nov 22, 2021
1 parent 70fd20b commit ce91414
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 11 deletions.
1 change: 1 addition & 0 deletions assets/translations/en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ page_setting_shortcuts:
title: Shortcuts
pref_section_title_extract_text: Screen / Clipboard extract text
pref_item_title_show_or_hide: Show/Hide
pref_item_title_hide: Hide
pref_item_title_extract_text_from_selection: Selection
pref_item_title_extract_text_from_capture: Capture Area
pref_item_title_extract_text_from_clipboard: Clipboard
Expand Down
1 change: 1 addition & 0 deletions assets/translations/zh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ page_setting_shortcuts:
title: 快捷键
pref_section_title_extract_text: 屏幕/剪切板取词
pref_item_title_show_or_hide: 显示/隐藏
pref_item_title_hide: 隐藏
pref_item_title_extract_text_from_selection: 选中文字
pref_item_title_extract_text_from_capture: 截取区域
pref_item_title_extract_text_from_clipboard: 剪切板
Expand Down
5 changes: 5 additions & 0 deletions lib/pages/home/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -835,6 +835,11 @@ class _HomePageState extends State<HomePage>
}
}

@override
void onShortcutKeyDownHide() async {
_windowHide();
}

@override
void onShortcutKeyDownExtractFromScreenSelection() {
_handleExtractTextFromScreenSelection();
Expand Down
14 changes: 14 additions & 0 deletions lib/pages/setting_shortcuts/setting_shortcuts.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import 'package:hotkey_manager/hotkey_manager.dart';
import '../../../includes.dart';

class SettingShortcutsPage extends StatefulWidget {
const SettingShortcutsPage({Key key}) : super(key: key);

@override
State<StatefulWidget> createState() => _SettingShortcutsPageState();
}
Expand Down Expand Up @@ -70,6 +72,18 @@ class _SettingShortcutsPageState extends State<SettingShortcutsPage> {
);
},
),
PreferenceListItem(
title: Text(t('pref_item_title_hide')),
detailText: HotKeyVirtualView(
hotKey: _config.shortcutHide,
),
onTap: () {
_handleClickRegisterNewHotKey(
context,
shortcutKey: kShortcutHide,
);
},
),
],
),
PreferenceListSection(
Expand Down
7 changes: 7 additions & 0 deletions lib/services/shortcut_service/shortcut_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import '../../includes.dart';

abstract class ShortcutListener {
void onShortcutKeyDownShowOrHide();
void onShortcutKeyDownHide();
void onShortcutKeyDownExtractFromScreenSelection();
void onShortcutKeyDownExtractFromScreenCapture();
void onShortcutKeyDownExtractFromClipboard();
Expand Down Expand Up @@ -36,6 +37,12 @@ class ShortcutService {
_listener.onShortcutKeyDownShowOrHide();
},
);
await hotKeyManager.register(
sharedConfig.shortcutHide,
keyDownHandler: (_) {
_listener.onShortcutKeyDownHide();
},
);
await hotKeyManager.register(
sharedConfig.shortcutExtractFromScreenSelection,
keyDownHandler: (_) {
Expand Down
10 changes: 10 additions & 0 deletions lib/utilities/config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:hotkey_manager/hotkey_manager.dart';
import '../includes.dart';

const kShortcutShowOrHide = 'shortcut_show_or_hide';
const kShortcutHide = 'shortcut_hide';
const kShortcutExtractFromScreenSelection =
'shortcut_extract_from_screen_selection';
const kShortcutExtractFromScreenCapture =
Expand Down Expand Up @@ -109,6 +110,7 @@ class Config {
ThemeMode themeMode;
String inputSetting;
HotKey shortcutShowOrHide;
HotKey shortcutHide;
HotKey shortcutExtractFromScreenSelection;
HotKey shortcutExtractFromScreenCapture;
HotKey shortcutExtractFromClipboard;
Expand Down Expand Up @@ -172,6 +174,14 @@ class ConfigManager extends _ConfigChangeNotifier {
kPrefInputSetting,
defaultValue: kInputSettingSubmitWithEnter,
);
Config.instance.shortcutHide = await getShortcut(
kShortcutHide,
defaultValue: HotKey(
KeyCode.escape,
modifiers: [],
identifier: kShortcutHide,
),
);
Config.instance.shortcutShowOrHide = await getShortcut(
kShortcutShowOrHide,
defaultValue: HotKey(
Expand Down
4 changes: 2 additions & 2 deletions macos/Flutter/GeneratedPluginRegistrant.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import Foundation
import audioplayers
import device_info_plus_macos
import hotkey_manager
import launch_at_startup
import network_info_plus_macos
import package_info_plus_macos
import path_provider_macos
import screen_capturer
import screen_retriever
import screen_text_extractor
import shared_preferences_macos
Expand All @@ -24,10 +24,10 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioplayersPlugin.register(with: registry.registrar(forPlugin: "AudioplayersPlugin"))
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
HotkeyManagerPlugin.register(with: registry.registrar(forPlugin: "HotkeyManagerPlugin"))
LaunchAtStartupPlugin.register(with: registry.registrar(forPlugin: "LaunchAtStartupPlugin"))
NetworkInfoPlusPlugin.register(with: registry.registrar(forPlugin: "NetworkInfoPlusPlugin"))
FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
ScreenCapturerPlugin.register(with: registry.registrar(forPlugin: "ScreenCapturerPlugin"))
ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin"))
ScreenTextExtractorPlugin.register(with: registry.registrar(forPlugin: "ScreenTextExtractorPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
Expand Down
12 changes: 6 additions & 6 deletions macos/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ PODS:
- hotkey_manager (0.0.1):
- FlutterMacOS
- HotKey
- launch_at_startup (0.0.1):
- FlutterMacOS
- network_info_plus_macos (0.0.1):
- FlutterMacOS
- package_info_plus_macos (0.0.1):
- FlutterMacOS
- path_provider_macos (0.0.1):
- FlutterMacOS
- screen_capturer (0.1.0):
- FlutterMacOS
- screen_retriever (0.0.1):
- FlutterMacOS
- screen_text_extractor (0.0.1):
Expand All @@ -36,10 +36,10 @@ DEPENDENCIES:
- device_info_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- hotkey_manager (from `Flutter/ephemeral/.symlinks/plugins/hotkey_manager/macos`)
- launch_at_startup (from `Flutter/ephemeral/.symlinks/plugins/launch_at_startup/macos`)
- network_info_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/network_info_plus_macos/macos`)
- package_info_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos`)
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
- screen_capturer (from `Flutter/ephemeral/.symlinks/plugins/screen_capturer/macos`)
- screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`)
- screen_text_extractor (from `Flutter/ephemeral/.symlinks/plugins/screen_text_extractor/macos`)
- shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`)
Expand All @@ -61,14 +61,14 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral
hotkey_manager:
:path: Flutter/ephemeral/.symlinks/plugins/hotkey_manager/macos
launch_at_startup:
:path: Flutter/ephemeral/.symlinks/plugins/launch_at_startup/macos
network_info_plus_macos:
:path: Flutter/ephemeral/.symlinks/plugins/network_info_plus_macos/macos
package_info_plus_macos:
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos
path_provider_macos:
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
screen_capturer:
:path: Flutter/ephemeral/.symlinks/plugins/screen_capturer/macos
screen_retriever:
:path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos
screen_text_extractor:
Expand All @@ -90,10 +90,10 @@ SPEC CHECKSUMS:
FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
HotKey: ad59450195936c10992438c4210f673de5aee43e
hotkey_manager: ad673457691f4d39e481be04a61da2ae07d81c62
launch_at_startup: f6d29e6019ad0dbee68c83432764bfa5deb999b4
network_info_plus_macos: d2b9e6c01c291449b91a584217aa53b113847dbd
package_info_plus_macos: f010621b07802a241d96d01876d6705f15e77c1c
path_provider_macos: 160cab0d5461f0c0e02995469a98f24bdb9a3f1f
screen_capturer: 696de78ce7beff63eecf8aa709f839985a7836d7
screen_retriever: d6f298ba1597d1afe486277b4068cd46045339ed
screen_text_extractor: b144efcf2e445a5892d540c5b8b83d5039994957
shared_preferences_macos: 480ce071d0666e37cef23fe6c702293a3d21799e
Expand Down
4 changes: 2 additions & 2 deletions macos/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,10 @@
"${BUILT_PRODUCTS_DIR}/audioplayers/audioplayers.framework",
"${BUILT_PRODUCTS_DIR}/device_info_plus_macos/device_info_plus_macos.framework",
"${BUILT_PRODUCTS_DIR}/hotkey_manager/hotkey_manager.framework",
"${BUILT_PRODUCTS_DIR}/launch_at_startup/launch_at_startup.framework",
"${BUILT_PRODUCTS_DIR}/network_info_plus_macos/network_info_plus_macos.framework",
"${BUILT_PRODUCTS_DIR}/package_info_plus_macos/package_info_plus_macos.framework",
"${BUILT_PRODUCTS_DIR}/path_provider_macos/path_provider_macos.framework",
"${BUILT_PRODUCTS_DIR}/screen_capturer/screen_capturer.framework",
"${BUILT_PRODUCTS_DIR}/screen_retriever/screen_retriever.framework",
"${BUILT_PRODUCTS_DIR}/screen_text_extractor/screen_text_extractor.framework",
"${BUILT_PRODUCTS_DIR}/shared_preferences_macos/shared_preferences_macos.framework",
Expand All @@ -288,10 +288,10 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/audioplayers.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hotkey_manager.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/launch_at_startup.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/network_info_plus_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info_plus_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_macos.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/screen_capturer.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/screen_retriever.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/screen_text_extractor.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences_macos.framework",
Expand Down
2 changes: 1 addition & 1 deletion pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ packages:
name: launch_at_startup
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
version: "0.1.1"
libwinmedia:
dependency: "direct main"
description:
Expand Down

0 comments on commit ce91414

Please sign in to comment.