diff --git a/publish/changeLog.md b/publish/changeLog.md index 7a6b8e92..d0167d76 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -24,6 +24,7 @@ - 修复备份文件无法导入json格式的问题 - Windows、MacOS平台下的字体列表取消使用原生方式获取以修复某些字体应用后无效的问题(#1596) - 修复亮暗主题自动切换功能无效的问题(#1697) +- 修复 MacOS 平台在 Finder 打开文件或目录时应用卡死的问题(#1684) ### 其他 diff --git a/src/common/ipcNames.ts b/src/common/ipcNames.ts index 80a7fda2..0a23c158 100644 --- a/src/common/ipcNames.ts +++ b/src/common/ipcNames.ts @@ -55,6 +55,7 @@ const modules = { show_save_dialog: 'show_save_dialog', show_select_dialog: 'show_select_dialog', show_dialog: 'show_dialog', + open_dir_in_explorer: 'open_dir_in_explorer', open_dev_tools: 'open_dev_tools', progress: 'progress', diff --git a/src/main/modules/winMain/rendererEvent/app.ts b/src/main/modules/winMain/rendererEvent/app.ts index 17c06a29..bcf13882 100644 --- a/src/main/modules/winMain/rendererEvent/app.ts +++ b/src/main/modules/winMain/rendererEvent/app.ts @@ -26,6 +26,7 @@ import { } from '@main/modules/winMain' import { quitApp } from '@main/app' import { getAllThemes, removeTheme, saveTheme } from '@main/utils' +import { openDirInExplorer } from '@common/utils/electron' export default () => { // 设置应用名称 @@ -80,6 +81,10 @@ export default () => { mainHandle(WIN_MAIN_RENDERER_EVENT_NAME.show_save_dialog, async({ params }) => { return showSaveDialog(params) }) + // 在资源管理器中定位文件 + mainOn(WIN_MAIN_RENDERER_EVENT_NAME.open_dir_in_explorer, async({ params }) => { + return openDirInExplorer(params) + }) mainHandle(WIN_MAIN_RENDERER_EVENT_NAME.clear_cache, async() => { diff --git a/src/renderer/utils/ipc.ts b/src/renderer/utils/ipc.ts index 711df288..a7b1b40a 100644 --- a/src/renderer/utils/ipc.ts +++ b/src/renderer/utils/ipc.ts @@ -494,6 +494,12 @@ export const openSaveDir = async(options: Electron.SaveDialogOptions) => { return rendererInvoke(WIN_MAIN_RENDERER_EVENT_NAME.show_save_dialog, options) } +/** + * 在资源管理器中定位文件 + */ +export const openDirInExplorer = async(path: string) => { + return rendererSend(WIN_MAIN_RENDERER_EVENT_NAME.open_dir_in_explorer, path) +} /** * 获取缓存大小 diff --git a/src/renderer/views/Download/useTaskActions.js b/src/renderer/views/Download/useTaskActions.js index b8efa6b9..ce8925b4 100644 --- a/src/renderer/views/Download/useTaskActions.js +++ b/src/renderer/views/Download/useTaskActions.js @@ -1,12 +1,13 @@ import { useRouter } from '@common/utils/vueRouter' import musicSdk from '@renderer/utils/musicSdk' -import { openUrl, openDirInExplorer } from '@common/utils/electron' +import { openUrl } from '@common/utils/electron' import { checkPath } from '@common/utils/nodejs' // import { dialog } from '@renderer/plugins/Dialog' // import { useI18n } from '@renderer/plugins/i18n' // import { appSetting } from '@renderer/store/setting' import { toOldMusicInfo } from '@renderer/utils/index' import { startDownloadTasks, pauseDownloadTasks, removeDownloadTasks } from '@renderer/store/download/action' +import { openDirInExplorer } from '@renderer/utils/ipc' export default ({ list, selectedList, removeAllSelect }) => { const router = useRouter() diff --git a/src/renderer/views/Setting/components/SettingDownload.vue b/src/renderer/views/Setting/components/SettingDownload.vue index fb048804..013224d5 100644 --- a/src/renderer/views/Setting/components/SettingDownload.vue +++ b/src/renderer/views/Setting/components/SettingDownload.vue @@ -56,8 +56,7 @@ dd